syntax-tree-0.1.0.1: Typed ASTs

Safe HaskellNone
LanguageHaskell2010

AST.Term.TypedLam

Documentation

data TypedLam var typ expr k Source #

Constructors

TypedLam 

Fields

Instances
(Infer m t, Infer m e, HasInferredType e, Unify m (TypeOf e), HasChild (InferOf t) (TypeOf e), LocalScopeType v (Tree (UVarOf m) (TypeOf e)) m) => Infer m (TypedLam v t e) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

inferBody :: Tree (TypedLam v t e) (InferChild m k) -> m (Tree (TypedLam v t e) k, Tree (InferOf (TypedLam v t e)) (UVarOf m)) Source #

inferContext :: Proxy m -> Proxy (TypedLam v t e) -> Dict (KNodesConstraint (TypedLam v t e) (Infer m), KNodesConstraint (InferOf (TypedLam v t e)) (Unify m)) Source #

KNodes (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Associated Types

type KNodesConstraint (TypedLam var typ expr) c :: Constraint Source #

data KWitness (TypedLam var typ expr) a :: Type Source #

Methods

kLiftConstraint :: KNodesConstraint (TypedLam var typ expr) c => KWitness (TypedLam var typ expr) n -> Proxy c -> (c n -> r) -> r Source #

Monoid var => KPointed (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (TypedLam var typ expr) n -> Tree p n) -> Tree (TypedLam var typ expr) p Source #

KFunctor (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

mapK :: (forall (n :: Knot -> Type). KWitness (TypedLam var typ expr) n -> Tree p n -> Tree q n) -> Tree (TypedLam var typ expr) p -> Tree (TypedLam var typ expr) q Source #

Semigroup var => KApply (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

zipK :: Tree (TypedLam var typ expr) p -> Tree (TypedLam var typ expr) q -> Tree (TypedLam var typ expr) (Product p q) Source #

KFoldable (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

foldMapK :: Monoid a => (forall (n :: Knot -> Type). KWitness (TypedLam var typ expr) n -> Tree p n -> a) -> Tree (TypedLam var typ expr) p -> a Source #

KTraversable (TypedLam var typ expr) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

sequenceK :: Applicative f => Tree (TypedLam var typ expr) (ContainedK f p) -> f (Tree (TypedLam var typ expr) p) Source #

Constraints (TypedLam var typ expr k) Eq => Eq (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

(==) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

(/=) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

Constraints (TypedLam var typ expr k) Ord => Ord (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

compare :: TypedLam var typ expr k -> TypedLam var typ expr k -> Ordering #

(<) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

(<=) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

(>) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

(>=) :: TypedLam var typ expr k -> TypedLam var typ expr k -> Bool #

max :: TypedLam var typ expr k -> TypedLam var typ expr k -> TypedLam var typ expr k #

min :: TypedLam var typ expr k -> TypedLam var typ expr k -> TypedLam var typ expr k #

Constraints (TypedLam var typ expr k) Show => Show (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

showsPrec :: Int -> TypedLam var typ expr k -> ShowS #

show :: TypedLam var typ expr k -> String #

showList :: [TypedLam var typ expr k] -> ShowS #

Generic (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Associated Types

type Rep (TypedLam var typ expr k) :: Type -> Type #

Methods

from :: TypedLam var typ expr k -> Rep (TypedLam var typ expr k) x #

to :: Rep (TypedLam var typ expr k) x -> TypedLam var typ expr k #

Constraints (TypedLam var typ expr k) Binary => Binary (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

put :: TypedLam var typ expr k -> Put #

get :: Get (TypedLam var typ expr k) #

putList :: [TypedLam var typ expr k] -> Put #

Constraints (TypedLam var typ expr k) NFData => NFData (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

rnf :: TypedLam var typ expr k -> () #

Constraints (TypedLam var typ expr k) Pretty => Pretty (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

Methods

pPrintPrec :: PrettyLevel -> Rational -> TypedLam var typ expr k -> Doc #

pPrint :: TypedLam var typ expr k -> Doc #

pPrintList :: PrettyLevel -> [TypedLam var typ expr k] -> Doc #

data KWitness (TypedLam var typ expr) node Source # 
Instance details

Defined in AST.Term.TypedLam

data KWitness (TypedLam var typ expr) node where
type InferOf (TypedLam v t e) Source # 
Instance details

Defined in AST.Term.TypedLam

type InferOf (TypedLam v t e) = FuncType (TypeOf e)
type KNodesConstraint (TypedLam var typ expr) constraint Source # 
Instance details

Defined in AST.Term.TypedLam

type KNodesConstraint (TypedLam var typ expr) constraint = (constraint typ, constraint expr)
type Rep (TypedLam var typ expr k) Source # 
Instance details

Defined in AST.Term.TypedLam

type Rep (TypedLam var typ expr k) = D1 (MetaData "TypedLam" "AST.Term.TypedLam" "syntax-tree-0.1.0.1-5Y9WhklreXaDnL6Q9tTtln" False) (C1 (MetaCons "TypedLam" PrefixI True) (S1 (MetaSel (Just "_tlIn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 var) :*: (S1 (MetaSel (Just "_tlInType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (k # typ)) :*: S1 (MetaSel (Just "_tlOut") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (k # expr)))))

tlIn :: forall var typ expr k var. Lens (TypedLam var typ expr k) (TypedLam var typ expr k) var var Source #

tlInType :: forall var typ expr k typ. Lens (TypedLam var typ expr k) (TypedLam var typ expr k) ((#) k typ) ((#) k typ) Source #

tlOut :: forall var typ expr k expr. Lens (TypedLam var typ expr k) (TypedLam var typ expr k) ((#) k expr) ((#) k expr) Source #