Copyright | (c) 2011 Patrick Bahr, Tom Hvitved |
---|---|
License | BSD3 |
Maintainer | Tom Hvitved <hvitved@diku.dk> |
Stability | experimental |
Portability | non-portable (GHC Extensions) |
Safe Haskell | None |
Language | Haskell98 |
This modules defines the Desugar
type class for desugaring of terms.
Documentation
class (HDifunctor f, HDifunctor g) => Desugar f g where Source
The desugaring term homomorphism.
Nothing
(HDifunctor f, HDifunctor g, (:<:) f g) => Desugar f g | Default desugaring instance. |
(Desugar f h, Desugar g h) => Desugar ((:+:) f g) h |
desugarA :: (HDifunctor f', HDifunctor g', DistAnn f p f', DistAnn g p g', Desugar f g) => Term f' :-> Term g' Source
Lift desugaring to annotated terms.