| 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 #