You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 17, 2020. It is now read-only.
The background is that Haskell allows a pattern match to be non-exhaustive, while Coq requires all pattern matches to be exhaustive. The way we deal with that is by adding a catch-all case that returns a GHC.Err.patternFailure.
More information regarding how we handle Haskell partial functions in general can be found in Section 5.4 in our paper.
Suppose you have a Haskell function f that contains an absent case, and a function g that calls f. If the use case of f in g ensures that the absent case would never happen, you should be able to prove whatever correct specifications you have of f, even though f is not exhaustive. However, if f's call site cannot guarantee that, you will not be able to prove anything specific about f's result---and that is still what you want because you will not be able to prove anything wrong.
Is this effectively an error message or something else? I can't find it it in the docs!
The text was updated successfully, but these errors were encountered: