ajhc-0.8.0.5: Haskell compiler that produce binary through C language

Safe HaskellNone

E.Type

Contents

Description

The definitions related to jhc core

Synopsis

Documentation

data Comb Source

Constructors

Comb 

Fields

combHead :: TVr
 
combBody :: E
 
combRules :: [Rule]
 

Instances

combBody_u :: (E -> E) -> Comb -> CombSource

combRules_u :: ([Rule] -> [Rule]) -> Comb -> CombSource

data Rule Source

Constructors

Rule 

Instances

data ARules Source

Constructors

ARules 

Instances

Show ARules

ARules contains a set of rules for a single id, optimized for fast application

invarients for ARules sorted by number of arguments rule takes all hidden rule fields filled in free variables are up to date

Monoid ARules 
Binary ARules 

data Lit e t Source

Constructors

LitInt 

Fields

litNumber :: Number
 
litType :: t
 
LitCons 

Fields

litName :: Name
 
litArgs :: [e]
 
litType :: t
 
litAliasFor :: Maybe E
 

Instances

Functor (Lit e) 
Foldable (Lit e) 
Traversable (Lit e) 
(Eq e, Eq t) => Eq (Lit e t) 
(Ord e, Ord t) => Ord (Lit e t) 
(Show e, Show t) => Show (Lit e t) 
(Binary e, Binary t) => Binary (Lit e t) 

data ESort Source

Constructors

EStar

the sort of boxed lazy types

EBang

the sort of boxed strict types

EHash

the sort of unboxed types

ETuple

the sort of unboxed tuples

EHashHash

the supersort of unboxed types

EStarStar

the supersort of boxed types

ESortNamed Name

user defined sorts

data TVr' e Source

Constructors

TVr 

Fields

tvrIdent :: !Id
 
tvrType :: e
 
tvrInfo :: Info
 

data Alt e Source

Constructors

Alt (Lit TVr e) e 

Instances

Eq e => Eq (Alt e) 
Ord e => Ord (Alt e) 
Show e => Show (Alt e) 
Binary e => Binary (Alt e) 

altHead :: Alt E -> Lit () ()Source

litHead :: Lit a b -> Lit () ()Source

litBinds :: Lit t t1 -> [t]Source

fromAp :: E -> (E, [E])Source

extract out EAp nodes a value and the arguments it is applied to.

fromPi :: E -> (E, [TVr])Source

deconstruct EPi terms, getting function argument types.

fromLam :: E -> (E, [TVr])Source

deconstruct ELam term.

tVr :: Id -> e -> TVr' eSource

Generated by DrIFT : Look, but Don't Touch. *

fromEAp :: Monad m => E -> m (E, E)Source

fromELam :: Monad m => E -> m (TVr, E)Source

fromEPi :: Monad m => E -> m (TVr, E)Source

fromEVar :: Monad m => E -> m TVrSource

fromUnknown :: Monad m => E -> m ()Source

fromELit :: Monad m => E -> m (Lit E E)Source

fromELetRec :: Monad m => E -> m ([(TVr, E)], E)Source

fromEPrim :: Monad m => E -> m (Prim, [E], E)Source

fromEError :: Monad m => E -> m (String, E)Source

fromECase :: Monad m => E -> m (E, E, TVr, [Alt E], Maybe E, IdSet)Source

tvrIdent_u :: (Id -> Id) -> TVr' e -> TVr' eSource

tvrInfo_u :: (Info -> Info) -> TVr' e -> TVr' eSource

tvrType_u :: (t -> e) -> TVr' t -> TVr' eSource

tvrType_s :: e -> TVr' t -> TVr' eSource