Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data TypedLam var typ expr h Source #
Instances
(c (TypedLam v t e), Recursively c t, Recursively c e) => Recursively c (TypedLam v t e) Source # | |
Defined in Hyper.Type.AST.TypedLam recursively :: proxy (c (TypedLam v t e)) -> Dict (c (TypedLam v t e), HNodesConstraint (TypedLam v t e) (Recursively c)) Source # | |
(Infer m t, Infer m e, HasInferredType e, UnifyGen m (TypeOf e), HSubset' (TypeOf e) (FuncType (TypeOf e)), HNodeLens (InferOf t) (TypeOf e), LocalScopeType v (UVarOf m # TypeOf e) m) => Infer m (TypedLam v t e) Source # | |
Defined in Hyper.Type.AST.TypedLam inferBody :: forall (h :: AHyperType -> Type). (TypedLam v t e # InferChild m h) -> m (TypedLam v t e # h, InferOf (TypedLam v t e) # UVarOf m) Source # inferContext :: proxy0 m -> proxy1 (TypedLam v t e) -> Dict (HNodesConstraint (TypedLam v t e) (Infer m), HNodesConstraint (InferOf (TypedLam v t e)) (UnifyGen m)) Source # | |
HNodes (TypedLam var typ expr) Source # | |
Defined in Hyper.Type.AST.TypedLam type HNodesConstraint (TypedLam var typ expr) c Source # type HWitnessType (TypedLam var typ expr) :: HyperType -> Type Source # hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TypedLam var typ expr) c => HWitness (TypedLam var typ expr) n -> Proxy c -> (c n => r) -> r Source # | |
Monoid var => HPointed (TypedLam var typ expr) Source # | |
HFunctor (TypedLam var typ expr) Source # | |
HFoldable (TypedLam var typ expr) Source # | |
HTraversable (TypedLam var typ expr) Source # | |
Defined in Hyper.Type.AST.TypedLam hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TypedLam var typ expr # ContainedH f p) -> f (TypedLam var typ expr # p) Source # | |
Semigroup var => HApply (TypedLam var typ expr) Source # | |
Eq var => ZipMatch (TypedLam var typ expr) Source # | |
(RTraversable t, RTraversable e) => RTraversable (TypedLam v t e) Source # | |
Defined in Hyper.Type.AST.TypedLam recursiveHTraversable :: proxy (TypedLam v t e) -> Dict (HNodesConstraint (TypedLam v t e) RTraversable) Source # | |
(RNodes t, RNodes e) => RNodes (TypedLam v t e) Source # | |
Defined in Hyper.Type.AST.TypedLam recursiveHNodes :: proxy (TypedLam v t e) -> Dict (HNodesConstraint (TypedLam v t e) RNodes) Source # | |
HContext (TypedLam var typ expr) Source # | |
HMorph (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) Source # | |
Defined in Hyper.Type.AST.TypedLam type MorphConstraint (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) c Source # data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) :: HyperType -> HyperType -> Type Source # morphMap :: (forall (a :: HyperType) (b :: HyperType). MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) a b -> (p # a) -> q # b) -> (TypedLam var typ0 expr0 # p) -> TypedLam var typ1 expr1 # q Source # morphLiftConstraint :: forall c (a :: HyperType) (b :: HyperType) r. MorphConstraint (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) c => MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) a b -> Proxy c -> (c a b => r) -> r Source # | |
Constraints (TypedLam var typ expr h) Eq => Eq (TypedLam var typ expr h) Source # | |
Constraints (TypedLam var typ expr h) Ord => Ord (TypedLam var typ expr h) Source # | |
Defined in Hyper.Type.AST.TypedLam compare :: TypedLam var typ expr h -> TypedLam var typ expr h -> Ordering # (<) :: TypedLam var typ expr h -> TypedLam var typ expr h -> Bool # (<=) :: TypedLam var typ expr h -> TypedLam var typ expr h -> Bool # (>) :: TypedLam var typ expr h -> TypedLam var typ expr h -> Bool # (>=) :: TypedLam var typ expr h -> TypedLam var typ expr h -> Bool # max :: TypedLam var typ expr h -> TypedLam var typ expr h -> TypedLam var typ expr h # min :: TypedLam var typ expr h -> TypedLam var typ expr h -> TypedLam var typ expr h # | |
Constraints (TypedLam var typ expr h) Show => Show (TypedLam var typ expr h) Source # | |
Generic (TypedLam var typ expr h) Source # | |
Constraints (TypedLam var typ expr h) Binary => Binary (TypedLam var typ expr h) Source # | |
Constraints (TypedLam var typ expr h) NFData => NFData (TypedLam var typ expr h) Source # | |
Defined in Hyper.Type.AST.TypedLam | |
Constraints (TypedLam var typ expr h) Pretty => Pretty (TypedLam var typ expr h) Source # | |
Defined in Hyper.Type.AST.TypedLam pPrintPrec :: PrettyLevel -> Rational -> TypedLam var typ expr h -> Doc # pPrint :: TypedLam var typ expr h -> Doc # pPrintList :: PrettyLevel -> [TypedLam var typ expr h] -> Doc # | |
type HWitnessType (TypedLam var typ expr) Source # | |
Defined in Hyper.Type.AST.TypedLam | |
type InferOf (TypedLam _1 _2 e) Source # | |
Defined in Hyper.Type.AST.TypedLam | |
type HNodesConstraint (TypedLam var typ expr) constraint Source # | |
Defined in Hyper.Type.AST.TypedLam | |
data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ Source # | |
Defined in Hyper.Type.AST.TypedLam data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ where
| |
type MorphConstraint (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) constraint Source # | |
Defined in Hyper.Type.AST.TypedLam type MorphConstraint (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) constraint = (constraint expr0 expr1, constraint typ0 typ1) | |
type Rep (TypedLam var typ expr h) Source # | |
Defined in Hyper.Type.AST.TypedLam type Rep (TypedLam var typ expr h) = D1 ('MetaData "TypedLam" "Hyper.Type.AST.TypedLam" "hypertypes-0.1.0.1-4X1Tc9rEIqlHUnBsnc5Qh2" 'False) (C1 ('MetaCons "TypedLam" 'PrefixI 'True) (S1 ('MetaSel ('Just "_tlIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 var) :*: (S1 ('MetaSel ('Just "_tlInType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# typ)) :*: S1 ('MetaSel ('Just "_tlOut") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# expr))))) |
tlIn :: forall var typ expr h var. Lens (TypedLam var typ expr h) (TypedLam var typ expr h) var var Source #
tlInType :: forall var typ expr h typ. Lens (TypedLam var typ expr h) (TypedLam var typ expr h) ((:#) h typ) ((:#) h typ) Source #
tlOut :: forall var typ expr h expr. Lens (TypedLam var typ expr h) (TypedLam var typ expr h) ((:#) h expr) ((:#) h expr) Source #
data W_TypedLam (var :: Type) (typ :: HyperType) (expr :: HyperType) node where Source #
W_TypedLam_typ :: W_TypedLam var typ expr typ | |
W_TypedLam_expr :: W_TypedLam var typ expr expr |
data family MorphWitness s t :: HyperType -> HyperType -> Type Source #
Instances
data MorphWitness (ANode a) (ANode b) _ _ Source # | |
Defined in Hyper.Combinator.ANode | |
data MorphWitness (FuncType typ0) (FuncType typ1) _ _ Source # | |
Defined in Hyper.Type.AST.FuncType data MorphWitness (FuncType typ0) (FuncType typ1) _ _ where
| |
data MorphWitness (App expr0) (App expr1) _ _ Source # | |
Defined in Hyper.Type.AST.App data MorphWitness (App expr0) (App expr1) _ _ where
| |
data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ Source # | |
Defined in Hyper.Type.AST.Map data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ where
| |
data MorphWitness (Var v expr0) (Var v expr1) _ _ Source # | |
Defined in Hyper.Type.AST.Var | |
data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _ Source # | |
Defined in Hyper.Type.AST.Nominal data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _ where
| |
data MorphWitness (Let v expr0) (Let v expr1) _ _ Source # | |
Defined in Hyper.Type.AST.Let data MorphWitness (Let v expr0) (Let v expr1) _ _ where
| |
data MorphWitness (Lam v expr0) (Lam v expr1) _ _ Source # | |
Defined in Hyper.Type.AST.Lam data MorphWitness (Lam v expr0) (Lam v expr1) _ _ where
| |
data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _ Source # | |
Defined in Hyper.Type.AST.Row data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _ where
| |
data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ Source # | |
Defined in Hyper.Type.AST.TypedLam data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _ where
|