| Safe Haskell | None |
|---|
Language.Syntactic.Constructs.Binding.HigherOrder
Description
- 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
Instances
| Equality Variable |
|
| ToTree Variable | |
| Render Variable | |
| Constrained Variable | |
| EvalBind Variable | |
| Optimize Variable | |
| (AlphaEq dom dom dom env, VarEqEnv env) => AlphaEq Variable Variable dom env | |
| (Syntactic a (HODomain dom p), Syntactic b (HODomain dom p), p (Internal a), p (Internal a -> Internal b)) => Syntactic (a -> b) (HODomain dom p) | |
| (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
Constructors
| HOLambda :: p a => (ASTF (HODomain dom p) a -> ASTF (HODomain dom p) b) -> HOLambda dom p (Full (a -> b)) |
Instances
| Constrained (HOLambda dom p) | |
| (Syntactic a (HODomain dom p), Syntactic b (HODomain dom p), p (Internal a), p (Internal a -> Internal b)) => Syntactic (a -> b) (HODomain dom p) | |
| (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