Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A trivial simplification that cancels unwrap/wrap pairs.
This can only occur if we've inlined both datatype constructors and destructors and we're deconstructing something we just constructed. This is probably rare, and should anyway better be handled by something like case-of-known constructor. But it's so simple we might as well include it just in case.
Synopsis
- unwrapCancel ∷ Term tyname name uni fun a → Term tyname name uni fun a
- unwrapCancelPass ∷ (Typecheckable uni fun, GEq uni, Applicative m) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a
Documentation
unwrapCancel ∷ Term tyname name uni fun a → Term tyname name uni fun a Source #
Recursively apply wrap/unwrap cancellation.
unwrapCancelPass ∷ (Typecheckable uni fun, GEq uni, Applicative m) ⇒ PirTCConfig uni fun → Pass m TyName Name uni fun a Source #