Safe Haskell | None |
---|---|
Language | Haskell2010 |
LambdaCube.Compiler.DeBruijn
Documentation
class Rearrange a where Source #
Minimal complete definition
Methods
rearrange :: Int -> RearrangeFun -> a -> a Source #
Instances
Rearrange Void Source # | |
Rearrange GuardTree Source # | |
Rearrange ParPat Source # | |
Rearrange Pat Source # | |
Rearrange ExpType Source # | |
Rearrange Neutral Source # | |
Rearrange Exp Source # | |
Rearrange a => Rearrange [a] Source # | |
Rearrange a => Rearrange (SExp' a) Source # | |
Rearrange a => Rearrange (Lets a) Source # | |
(Rearrange a, Rearrange b) => Rearrange (Either a b) Source # | |
(Rearrange a, Rearrange b) => Rearrange (a, b) Source # | |
data RearrangeFun Source #
Instances
rearrangeFun :: RearrangeFun -> Int -> Int Source #
lowerFreeVars :: FreeVars -> FreeVars Source #
rearrangeFreeVars :: RearrangeFun -> Int -> FreeVars -> FreeVars Source #
class HasFreeVars a where Source #
Minimal complete definition
Methods
getFreeVars :: a -> FreeVars Source #
Instances
class DeBruijnify n a where Source #
Minimal complete definition
Methods
deBruijnify_ :: Int -> [n] -> a -> a Source #
Instances
DeBruijnify SIName Stmt Source # | |
DeBruijnify SIName SExp Source # | |
DeBruijnify SIName GuardTree Source # | |
DeBruijnify SIName ParPat Source # | |
DeBruijnify SIName PreStmt Source # | |
DeBruijnify n a => DeBruijnify n [a] Source # | |
DeBruijnify SIName a => DeBruijnify SIName (Lets a) Source # | |
(DeBruijnify n a, DeBruijnify n b) => DeBruijnify n (Either a b) Source # | |
(DeBruijnify n a, DeBruijnify n b) => DeBruijnify n (a, b) Source # | |
deBruijnify :: DeBruijnify n a => [n] -> a -> a Source #