Safe Haskell | Safe-Inferred |
---|
- crushSomeT :: Ord n => Type n -> Type n
- crushEffect :: Ord n => Effect n -> Effect n
Documentation
crushSomeT :: Ord n => Type n -> Type nSource
Crush compound effects and closure terms. We check for a crushable term before calling crushT because that function will recursively crush the components. As equivT is already recursive, we don't want a doubly-recursive function that tries to re-crush the same non-crushable type over and over.
crushEffect :: Ord n => Effect n -> Effect nSource
Crush compound effect terms into their components.
This is like trimClosure
but for effects instead of closures.
For example, crushing DeepRead (List r1 (Int r2))
yields (Read r1 + Read r2)
.