Safe Haskell | None |
---|
- data Variable a
- data Let a where
- data HOLambda dom p a where
- type HODomain dom p = (HOLambda dom p :+: (Variable :+: dom)) :|| p
- lambda :: (p a, p (a -> b)) => (ASTF (HODomain dom p) a -> ASTF (HODomain dom p) b) -> ASTF (HODomain dom p) (a -> b)
- reifyM :: AST (HODomain dom p) a -> State VarId (AST ((Lambda :+: (Variable :+: dom)) :|| p) a)
- reifyTop :: AST (HODomain dom p) a -> AST ((Lambda :+: (Variable :+: dom)) :|| p) a
- reify :: Syntactic a (HODomain dom p) => a -> ASTF ((Lambda :+: (Variable :+: dom)) :|| p) (Internal a)
Documentation
Variables
Equality Variable |
|
ToTree Variable | |
Render Variable | |
Constrained Variable | |
EvalBind Variable | |
Optimize Variable | |
(AlphaEq dom dom dom env, VarEqEnv env) => AlphaEq Variable Variable dom env | |
(Constrained (HODomain dom p), Sat (HODomain dom p) (Internal (a -> b)), Syntactic a (HODomain dom p), Syntactic b (HODomain dom p), p (Internal a), p (Internal a -> Internal b)) => Syntactic (a -> b) (HODomain dom p) | |
(Constrained (HODomain dom Typeable), Sat (HODomain dom Typeable) (Internal (Mon dom m a)), Syntactic a (HODomain dom Typeable), InjectC (MONAD m) dom (m (Internal a)), Monad m, Typeable1 m, Typeable (Internal a)) => Syntactic (Mon dom m a) (HODomain dom Typeable) |
data HOLambda dom p a whereSource
Higher-order lambda binding
HOLambda :: p a => (ASTF (HODomain dom p) a -> ASTF (HODomain dom p) b) -> HOLambda dom p (Full (a -> b)) |
Constrained (HOLambda dom p) | |
(Constrained (HODomain dom p), Sat (HODomain dom p) (Internal (a -> b)), Syntactic a (HODomain dom p), Syntactic b (HODomain dom p), p (Internal a), p (Internal a -> Internal b)) => Syntactic (a -> b) (HODomain dom p) | |
(Constrained (HODomain dom Typeable), Sat (HODomain dom Typeable) (Internal (Mon dom m a)), Syntactic a (HODomain dom Typeable), InjectC (MONAD m) dom (m (Internal a)), Monad m, Typeable1 m, Typeable (Internal a)) => Syntactic (Mon dom m a) (HODomain dom Typeable) |
lambda :: (p a, p (a -> b)) => (ASTF (HODomain dom p) a -> ASTF (HODomain dom p) b) -> ASTF (HODomain dom p) (a -> b)Source
Lambda binding
reifyM :: AST (HODomain dom p) a -> State VarId (AST ((Lambda :+: (Variable :+: dom)) :|| p) a)Source