ddc-core-0.4.3.1: Disciplined Disciple Compiler core language and type checker.

Safe HaskellSafe
LanguageHaskell98

DDC.Core.Exp.Annot.Context

Synopsis

Documentation

data Context a n Source #

Constructors

Context 

Fields

enterLAM :: Ord n => Context a n -> a -> Bind n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the body of a type lambda.

enterLam :: Ord n => Context a n -> a -> Bind n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the body of a value lambda.

enterAppLeft :: Context a n -> a -> Exp a n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the left of an application.

enterAppRight :: Context a n -> a -> Exp a n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the right of an application.

enterLetBody :: Ord n => Context a n -> a -> Lets a n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the body of a let-expression.

enterLetLLet :: Context a n -> a -> Bind n -> Exp a n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the binding of a LLet

enterLetLRec :: Ord n => Context a n -> a -> [(Bind n, Exp a n)] -> Bind n -> Exp a n -> [(Bind n, Exp a n)] -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter a binding of a LRec group.

enterCaseScrut :: Context a n -> a -> Exp a n -> [Alt a n] -> (Context a n -> Exp a n -> b) -> b Source #

Enter the scrutinee of a case-expression.

enterCaseAlt :: Ord n => Context a n -> a -> Exp a n -> [Alt a n] -> Pat n -> Exp a n -> [Alt a n] -> (Context a n -> Exp a n -> b) -> b Source #

Enter the right of an alternative.

enterCastBody :: Context a n -> a -> Cast a n -> Exp a n -> (Context a n -> Exp a n -> b) -> b Source #

Enter the body of a cast