Safe Haskell | None |
---|---|
Language | Haskell2010 |
Classes applying on Knot
s recursively
Synopsis
- class Recursive c where
- recurse :: (KNodes k, c k) => Proxy (c k) -> Dict (KNodesConstraint k c)
- class RNodes k => Recursively c k where
- recursively :: Proxy (c k) -> Dict (c k, KNodesConstraint k (Recursively c))
- class KNodes k => RNodes k
- class (KTraversable k, Recursively KFunctor k, Recursively KFoldable k) => RTraversable k
Documentation
class Recursive c where Source #
A class of constraint constructors that apply to all recursive child nodes
recurse :: (KNodes k, c k) => Proxy (c k) -> Dict (KNodesConstraint k c) Source #
Lift a recursive constraint to the next layer
Instances
Recursive RTraversable Source # | |
Defined in AST.Class.Recursive recurse :: (KNodes k, RTraversable k) => Proxy (RTraversable k) -> Dict (KNodesConstraint k RTraversable) Source # | |
Recursive RNodes Source # | |
Recursive RTraversableInferOf Source # | |
Defined in AST.Class.Infer.InferOf recurse :: (KNodes k, RTraversableInferOf k) => Proxy (RTraversableInferOf k) -> Dict (KNodesConstraint k RTraversableInferOf) Source # | |
Recursive (Recursively c) Source # | |
Defined in AST.Class.Recursive recurse :: (KNodes k, Recursively c k) => Proxy (Recursively c k) -> Dict (KNodesConstraint k (Recursively c)) Source # | |
Recursive (Unify m) Source # | |
Recursive (Infer m) Source # | |
Recursive (ITermVarsConstraint c) Source # | |
Defined in AST.Infer.Term recurse :: (KNodes k, ITermVarsConstraint c k) => Proxy (ITermVarsConstraint c k) -> Dict (KNodesConstraint k (ITermVarsConstraint c)) Source # | |
Recursive (Blame m) Source # | |
Recursive (HasScheme varTypes m) Source # | |
class RNodes k => Recursively c k where Source #
A constraint lifted to apply recursively.
Note that in cases where a constraint has dependencies other than RNodes
,
one will want to create a class such as RTraversable to capture the dependencies,
otherwise using it in class contexts will be quite unergonomic.
Nothing
recursively :: Proxy (c k) -> Dict (c k, KNodesConstraint k (Recursively c)) Source #
recursively :: (c k, KNodesConstraint k (Recursively c)) => Proxy (c k) -> Dict (c k, KNodesConstraint k (Recursively c)) Source #
Instances
class KNodes k => RNodes k Source #
Instances
RNodes Pure Source # | |
Defined in AST.Class.Recursive recursiveKNodes :: Proxy Pure -> Dict (KNodesConstraint Pure RNodes) | |
RNodes Prune Source # | |
Defined in AST.Knot.Prune recursiveKNodes :: Proxy Prune -> Dict (KNodesConstraint Prune RNodes) | |
Recursive RNodes Source # | |
RNodes (F f) Source # | |
Defined in AST.Knot.Functor recursiveKNodes :: Proxy (F f) -> Dict (KNodesConstraint (F f) RNodes) | |
RNodes (Ann a) Source # | |
Defined in AST.Knot.Ann recursiveKNodes :: Proxy (Ann a) -> Dict (KNodesConstraint (Ann a) RNodes) | |
RNodes (Const a :: Knot -> Type) Source # | |
Defined in AST.Class.Recursive recursiveKNodes :: Proxy (Const a) -> Dict (KNodesConstraint (Const a) RNodes) | |
RNodes t => RNodes (Scheme v t) Source # | |
Defined in AST.Term.Scheme recursiveKNodes :: Proxy (Scheme v t) -> Dict (KNodesConstraint (Scheme v t) RNodes) |
class (KTraversable k, Recursively KFunctor k, Recursively KFoldable k) => RTraversable k Source #
A class of Knot
s which recursively implement KTraversable
Instances
RTraversable Pure Source # | |
Defined in AST.Class.Recursive | |
RTraversable Prune Source # | |
Defined in AST.Knot.Prune | |
Recursive RTraversable Source # | |
Defined in AST.Class.Recursive recurse :: (KNodes k, RTraversable k) => Proxy (RTraversable k) -> Dict (KNodesConstraint k RTraversable) Source # | |
Traversable f => RTraversable (F f) Source # | |
Defined in AST.Knot.Functor recursiveKTraversable :: Proxy (F f) -> Dict (KNodesConstraint (F f) RTraversable) | |
RTraversable (Ann a) Source # | |
Defined in AST.Knot.Ann recursiveKTraversable :: Proxy (Ann a) -> Dict (KNodesConstraint (Ann a) RTraversable) | |
RTraversable (Const a :: Knot -> Type) Source # | |
Defined in AST.Class.Recursive recursiveKTraversable :: Proxy (Const a) -> Dict (KNodesConstraint (Const a) RTraversable) | |
(KTraversable (Scheme v t), RTraversable t) => RTraversable (Scheme v t) Source # | |
Defined in AST.Term.Scheme recursiveKTraversable :: Proxy (Scheme v t) -> Dict (KNodesConstraint (Scheme v t) RTraversable) |