Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Let v expr k = Let {
- _letVar :: v
- _letEquals :: k # expr
- _letIn :: k # expr
- letVar :: forall v expr k v. Lens (Let v expr k) (Let v expr k) v v
- letEquals :: forall v expr k. Lens' (Let v expr k) ((#) k expr)
- letIn :: forall v expr k. Lens' (Let v expr k) ((#) k expr)
- data family KWitness k :: (Knot -> Type) -> Type
Documentation
A term for let-expressions with let-generalization.
Let v expr
s express let-expressions with v
s as variable names and expr
s for terms.
Apart from the data type, an Infer
instance is also provided.
Instances
data family KWitness k :: (Knot -> Type) -> Type Source #
KWitness k n
is a witness that n
is a node of k