idris-0.9.15.1: Functional Programming Language with Dependent Types

Safe HaskellNone

IRTS.Defunctionalise

Documentation

data DExp Source

Instances

Eq DExp 
Show DExp 

data DAlt Source

Instances

Eq DAlt 
Show DAlt 

data DDecl Source

Constructors

DFun Name [Name] DExp 
DConstructor Name Int Int 

Instances

Eq DDecl 
Show DDecl 

getFn :: [(Name, LDecl)] -> [(Name, Int)]Source

addApps :: LDefs -> (Name, LDecl) -> State ([Name], [(Name, Int)]) (Name, DDecl)Source

data EvalApply a Source

Constructors

EvalCase (Name -> a) 
ApplyCase a 

toCons :: [Name] -> (Name, Int) -> [(Name, Int, EvalApply DAlt)]Source

toConsA :: [(Name, Int)] -> (Name, Int) -> [(Name, Int, EvalApply DAlt)]Source

mkApplyCase :: Name -> Int -> Int -> [(Name, Int, EvalApply DAlt)]Source

declare :: Int -> [(Name, Int, EvalApply DAlt)] -> [(Name, DDecl)]Source

genArgs :: Int -> [Name]Source

mkFnCon :: Show a => a -> NameSource

mkBigCase :: t -> Int -> DExp -> [DAlt] -> DExpSource

groupsOf :: Int -> [DAlt] -> [[DAlt]]Source

dumpDefuns :: DDefs -> StringSource

module IRTS.Lang