compdata-0.12.1: Compositional Data Types
Copyright(c) 2011 Patrick Bahr Tom Hvitved
LicenseBSD3
MaintainerTom Hvitved <hvitved@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellNone
LanguageHaskell2010

Data.Comp.Desugar

Description

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

Synopsis

Documentation

class (Functor f, Functor g) => Desugar f g where Source #

The desugaring term homomorphism.

Minimal complete definition

Nothing

Methods

desugHom :: Hom f g Source #

desugHom' :: Alg f (Context g a) Source #

Instances

Instances details
(Functor f, Functor g, f :<: g) => Desugar f g Source #

Default desugaring instance.

Instance details

Defined in Data.Comp.Desugar

Methods

desugHom :: Hom f g Source #

desugHom' :: Alg f (Context g a) Source #

(Desugar f h, Desugar g h) => Desugar (f :+: g) h Source # 
Instance details

Defined in Data.Comp.Desugar

Methods

desugHom :: Hom (f :+: g) h Source #

desugHom' :: Alg (f :+: g) (Context h a) Source #

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

Desugar a term.

desugarA :: (Functor f', Functor g', DistAnn f p f', DistAnn g p g', Desugar f g) => Term f' -> Term g' Source #

Lift desugaring to annotated terms.