ajhc- Haskell compiler that produce binary through C language

Safe HaskellNone




data Id Source


Eq Id 
Ord Id 
Show IdSet 
Show Id 
Binary IdSet 
Binary Id 
GenName Id 
Intjection Id 
FromAtom Id 
FreeVars TVr IdSet

determine free variables of a binding site

FreeVars E IdSet 
FreeVars ARules IdSet 
FreeVars Rule IdSet

we delete the free variables of the heads of a rule from the rule's free variables. the reason for doing this is that the rule cannot fire if all its heads are in scope, and if it were not done then many functions seem recursive when they arn't actually.

FreeVars Comb IdSet 
DocLike d => PPrint d Id 
Monad m => NameMonad Id (IdNameT m) 
FreeVars E [Id] 
FreeVars E (IdMap (Maybe E)) 
FreeVars E (IdMap TVr) 
FreeVars Rule [Id] 
FreeVars Comb [Id] 
Show v => Show (IdMap v) 
Binary a => Binary (IdMap a) 
FreeVars (Alt E) IdSet 
FreeVars (Alt E) (IdMap TVr) 

newIds :: IdSet -> [Id]Source

find some temporary ids that are not members of the set, useful for generating a small number of local unique names.

module E.Type

tFunc :: E -> E -> ESource

ePi :: TVr -> E -> ESource

eLam :: TVr -> E -> ESource

discardArgs :: Int -> E -> ESource

throw away first n EPi terms

caseBodiesMapM :: Monad m => (E -> m E) -> E -> m ESource

caseBodiesMap :: (E -> E) -> E -> ESource

eToList :: Monad m => E -> m [E]Source

toString :: Monad m => E -> m [Char]Source

ltTuple :: [E] -> ESource

module E.FreeVars