* Heinrich Apfelmus <apfel...@quantentunnel.de> [2013-10-02 11:24:39+0200]
> In other words, equality of abstract data types is different from
> equality of algebraic data types (constructors). I don't think you'll
> ever be able to avoid this proof obligation that the public API of an
> abstract data type preserves equivalence, so that LVish will yield
> "results that are deterministic up to equivalence".

It still seems to fit nicely into Safe Haskell. If you are the
implementor of an abstract type, you can do whatever you want in the Eq
instance, declare your module as Trustworthy, and thus take the
responsibility for soundness of that instance w.r.t. your public API.


Attachment: signature.asc
Description: Digital signature

Haskell-Cafe mailing list

Reply via email to