Running Daedalus show-types on the attached fragment reports a type error on line 73; in particular, it says that the parser Elf32ShdrTable is 32 bits wide when it expected 64. Except... it's a parser function. The actual problem is two functions down in ElfShdrTable where the 32-bit values passed in need to be widened to 64 to be used with Take/Drop and Many. Or alternatively it's one function down where the 32-bit values are passed to 64-bit arguments. But not at the call site reported...
This is not a super-critical problem but it's definitely a bug :-)
(The example is a cut-down fragment of part of an ELF file grammar)
Running
Daedalus show-types
on the attached fragment reports a type error on line 73; in particular, it says that the parserElf32ShdrTable
is 32 bits wide when it expected 64. Except... it's a parser function. The actual problem is two functions down in ElfShdrTable where the 32-bit values passed in need to be widened to 64 to be used with Take/Drop and Many. Or alternatively it's one function down where the 32-bit values are passed to 64-bit arguments. But not at the call site reported...This is not a super-critical problem but it's definitely a bug :-)
(The example is a cut-down fragment of part of an ELF file grammar)
bug2.ddl.txt