Open stephen-smith opened 6 years ago
Attaching file as it exists today. Will work on min-repo.
Motivation. I'm trying to implement and prove correct the queue implementations in the Okasaki book. The Queue typeclass is mostly from them. However, I have an add-on VerifiedQueue typeclass, and one of the proofs in it need to mention the "queue-equivalence" of two values (Not value equality, that's too strong for all but a trvial implementation). I'm having trouble consistently referring to the same typeclass instance throughout QEqv and VerifiedQueue, and my latest attempt was to try and push QEqv into the Queue typeclass, resulting in this executable crash.
IsEmpty
entirely results in a correct error message.IsEmpty
to Bool
or something that doesn't refer to q
results in a correct error message.q
, letting Idris infer Type
, and correcting the IsEmpty
signature to be acceptable results in a correct error message.Correct error message: Data definitions not allowed in an interface declaration
.
@stephen-smith Thank you for reporting the error.
Please attach complete source files that exhibit the issue in addition to quoting from them here.
Steps to Reproduce
Expected Behavior
Observed Behavior