compdata-param-0.9: Parametric Compositional Data Types

Copyright(c) 2011 Patrick Bahr, Tom Hvitved
LicenseBSD3
MaintainerTom Hvitved <hvitved@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellNone
LanguageHaskell98

Data.Comp.Param.Multi.Desugar

Description

This modules defines the Desugar type class for desugaring of terms.

Synopsis

Documentation

class (HDifunctor f, HDifunctor g) => Desugar f g where Source

The desugaring term homomorphism.

Minimal complete definition

Nothing

Methods

desugHom :: Hom f g Source

desugHom' :: f a (Cxt h g a b) :-> Cxt h g a b Source

Instances

(HDifunctor f, HDifunctor g, (:<:) f g) => Desugar f g

Default desugaring instance.

(Desugar f h, Desugar g h) => Desugar ((:+:) f g) h 

desugar :: Desugar f g => Term f :-> Term g Source

Desugar a term.

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.