On a codebase that compiled correctly, pulling some functions in the scratch file leads UCM to prompt me to update, without having made any modifications to the function in question. Additionally, once I do attempt to update, the compiler fails to typecheck, with some cryptic error about ability constructors having multiple effects (when in fact it's just a polymorphic ability that has a higher-kinded type parameter)
Then save the file without touching it : UCM prompts me to update the terms, despite them having received no changes :
Loading changes detected in ~/scratch.u.
I found and typechecked these definitions in ~/scratch.u. If you do an `add`
or `update`, here's how your codebase would change:
⍟ These names already exist. You can `update` them to your new definition:
type schemas.Alts u a
type schemas.Fields s a
type schemas.Schema a
ability schemas.abilities.AltSchematic f r u
ability schemas.abilities.FieldSchematic f s
ability schemas.abilities.Schematic f
Describe and demonstrate the bug
On a codebase that compiled correctly, pulling some functions in the scratch file leads UCM to prompt me to update, without having made any modifications to the function in question. Additionally, once I do attempt to
update
, the compiler fails to typecheck, with some cryptic error about ability constructors having multiple effects (when in fact it's just a polymorphic ability that has a higher-kinded type parameter)Then save the file without touching it : UCM prompts me to update the terms, despite them having received no changes :
After that, run the update command.
UCM then fails typechecking :
I can then fix the typechecking error by removing the ability ascription on the RHS of handling functions :
Doing this everywhere until I don't get typechecking errors reverts to the original state of the codebase.
Environment (please complete the following information):