syntax-tree-0.1.0.0: Typed ASTs

Safe HaskellNone
LanguageHaskell2010

AST.Term.TypeSig

Description

Type signatures

Synopsis

Documentation

data TypeSig vars term k Source #

Constructors

TypeSig 

Fields

Instances
(MonadScopeLevel m, HasInferredType term, HasInferredValue (TypeOf term), KTraversable vars, KTraversable (InferOf term), KNodesConstraint (InferOf term) (Unify m), KNodesConstraint vars (MonadInstantiate m), Unify m (TypeOf term), Infer m (TypeOf term), Infer m term) => Infer m (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

inferBody :: Tree (TypeSig vars term) (InferChild m k) -> m (Tree (TypeSig vars term) k, Tree (InferOf (TypeSig vars term)) (UVarOf m)) Source #

inferContext :: Proxy m -> Proxy (TypeSig vars term) -> Dict (KNodesConstraint (TypeSig vars term) (Infer m), KNodesConstraint (InferOf (TypeSig vars term)) (Unify m)) Source #

KNodes (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Associated Types

type KNodesConstraint (TypeSig vars term) c :: Constraint Source #

data KWitness (TypeSig vars term) a :: Type Source #

Methods

kLiftConstraint :: KNodesConstraint (TypeSig vars term) c => KWitness (TypeSig vars term) n -> Proxy c -> (c n -> r) -> r Source #

KPointed (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (TypeSig vars term) n -> Tree p n) -> Tree (TypeSig vars term) p Source #

KFunctor (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

mapK :: (forall (n :: Knot -> Type). KWitness (TypeSig vars term) n -> Tree p n -> Tree q n) -> Tree (TypeSig vars term) p -> Tree (TypeSig vars term) q Source #

KApply (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

zipK :: Tree (TypeSig vars term) p -> Tree (TypeSig vars term) q -> Tree (TypeSig vars term) (Product p q) Source #

KFoldable (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

foldMapK :: Monoid a => (forall (n :: Knot -> Type). KWitness (TypeSig vars term) n -> Tree p n -> a) -> Tree (TypeSig vars term) p -> a Source #

KTraversable (TypeSig vars term) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

sequenceK :: Applicative f => Tree (TypeSig vars term) (ContainedK f p) -> f (Tree (TypeSig vars term) p) Source #

Constraints (TypeSig vars term k) Eq => Eq (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

(==) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

(/=) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

Constraints (TypeSig vars term k) Ord => Ord (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

compare :: TypeSig vars term k -> TypeSig vars term k -> Ordering #

(<) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

(<=) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

(>) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

(>=) :: TypeSig vars term k -> TypeSig vars term k -> Bool #

max :: TypeSig vars term k -> TypeSig vars term k -> TypeSig vars term k #

min :: TypeSig vars term k -> TypeSig vars term k -> TypeSig vars term k #

Constraints (TypeSig vars term k) Show => Show (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

showsPrec :: Int -> TypeSig vars term k -> ShowS #

show :: TypeSig vars term k -> String #

showList :: [TypeSig vars term k] -> ShowS #

Generic (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Associated Types

type Rep (TypeSig vars term k) :: Type -> Type #

Methods

from :: TypeSig vars term k -> Rep (TypeSig vars term k) x #

to :: Rep (TypeSig vars term k) x -> TypeSig vars term k #

Constraints (TypeSig vars term k) Binary => Binary (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

put :: TypeSig vars term k -> Put #

get :: Get (TypeSig vars term k) #

putList :: [TypeSig vars term k] -> Put #

Constraints (TypeSig vars term k) NFData => NFData (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

rnf :: TypeSig vars term k -> () #

Constraints (TypeSig vars term k) Pretty => Pretty (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

Methods

pPrintPrec :: PrettyLevel -> Rational -> TypeSig vars term k -> Doc #

pPrint :: TypeSig vars term k -> Doc #

pPrintList :: PrettyLevel -> [TypeSig vars term k] -> Doc #

data KWitness (TypeSig vars term) node Source # 
Instance details

Defined in AST.Term.TypeSig

data KWitness (TypeSig vars term) node where
type InferOf (TypeSig v t) Source # 
Instance details

Defined in AST.Term.TypeSig

type InferOf (TypeSig v t) = InferOf t
type KNodesConstraint (TypeSig vars term) constraint Source # 
Instance details

Defined in AST.Term.TypeSig

type KNodesConstraint (TypeSig vars term) constraint = (constraint (Scheme vars (TypeOf term)), constraint term)
type Rep (TypeSig vars term k) Source # 
Instance details

Defined in AST.Term.TypeSig

type Rep (TypeSig vars term k) = D1 (MetaData "TypeSig" "AST.Term.TypeSig" "syntax-tree-0.1.0.0-8tfou50n4eQ4Iq1dis9DWN" False) (C1 (MetaCons "TypeSig" PrefixI True) (S1 (MetaSel (Just "_tsTerm") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (k # term)) :*: S1 (MetaSel (Just "_tsType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (k # Scheme vars (TypeOf term)))))

tsType :: forall vars term k vars. Lens (TypeSig vars term k) (TypeSig vars term k) ((#) k (Scheme vars (TypeOf term))) ((#) k (Scheme vars (TypeOf term))) Source #

tsTerm :: forall vars term k. Lens' (TypeSig vars term k) ((#) k term) Source #

data family KWitness k :: (Knot -> Type) -> Type Source #

KWitness k n is a witness that n is a node of k

Instances
data KWitness Pure node Source # 
Instance details

Defined in AST.Knot.Pure

data KWitness Pure node where
data KWitness Prune node Source # 
Instance details

Defined in AST.Knot.Prune

data KWitness Prune node where
data KWitness (ANode c) node Source # 
Instance details

Defined in AST.Combinator.ANode

data KWitness (ANode c) node where
data KWitness (F f) node Source # 
Instance details

Defined in AST.Knot.Functor

data KWitness (F f) node where
data KWitness (Ann a) node Source # 
Instance details

Defined in AST.Knot.Ann

data KWitness (Ann a) node where
data KWitness (UnifyError t) n Source # 
Instance details

Defined in AST.Unify.Error

data KWitness (UnifyError t) n where
data KWitness (FuncType typ) node Source # 
Instance details

Defined in AST.Term.FuncType

data KWitness (FuncType typ) node where
data KWitness (LoadedNominalDecl t) n Source # 
Instance details

Defined in AST.Term.Nominal

data KWitness (NominalDecl typ) node Source # 
Instance details

Defined in AST.Term.Nominal

data KWitness (App expr) node Source # 
Instance details

Defined in AST.Term.App

data KWitness (App expr) node where
data KWitness (ScopeTypes t) node Source # 
Instance details

Defined in AST.Term.NamelessScope

data KWitness (ScopeTypes t) node where
data KWitness (Const a :: Knot -> Type) i Source # 
Instance details

Defined in AST.Class.Nodes

data KWitness (Const a :: Knot -> Type) i
data KWitness (Flip GTerm a) n Source # 
Instance details

Defined in AST.Unify.Generalize

data KWitness (Flip (ITerm a) e) n Source # 
Instance details

Defined in AST.Infer.Term

data KWitness (Flip (ITerm a) e) n where
data KWitness (Flip (BTerm a) e) n Source # 
Instance details

Defined in AST.Infer.Blame

data KWitness (Flip (BTerm a) e) n where
data KWitness (Compose a b) n Source # 
Instance details

Defined in AST.Combinator.Compose

data KWitness (Compose a b) n where
data KWitness (TermMap k expr) node Source # 
Instance details

Defined in AST.Term.Map

data KWitness (TermMap k expr) node where
data KWitness (Var v expr) node Source # 
Instance details

Defined in AST.Term.Var

data KWitness (Var v expr) node
data KWitness (Scheme varTypes typ) node Source # 
Instance details

Defined in AST.Term.Scheme

data KWitness (Scheme varTypes typ) node where
data KWitness (TypeSig vars term) node Source # 
Instance details

Defined in AST.Term.TypeSig

data KWitness (TypeSig vars term) node where
data KWitness (FromNom nomId term) node Source # 
Instance details

Defined in AST.Term.Nominal

data KWitness (FromNom nomId term) node
data KWitness (ToNom nomId term) node Source # 
Instance details

Defined in AST.Term.Nominal

data KWitness (ToNom nomId term) node where
data KWitness (NominalInst n v) c Source # 
Instance details

Defined in AST.Term.Nominal

data KWitness (Let v expr) node Source # 
Instance details

Defined in AST.Term.Let

data KWitness (Let v expr) node where
data KWitness (Lam v expr) node Source # 
Instance details

Defined in AST.Term.Lam

data KWitness (Lam v expr) node where
data KWitness (Scope expr a) node Source # 
Instance details

Defined in AST.Term.NamelessScope

data KWitness (Scope expr a) node where
data KWitness (ScopeVar expr a) node Source # 
Instance details

Defined in AST.Term.NamelessScope

data KWitness (ScopeVar expr a) node
data KWitness (Product a b) n Source # 
Instance details

Defined in AST.Class.Nodes

data KWitness (Sum a b) n Source # 
Instance details

Defined in AST.Class.Nodes

data KWitness (Sum a b) n
data KWitness (FlatRowExtends key val rest) node Source # 
Instance details

Defined in AST.Term.Row

data KWitness (FlatRowExtends key val rest) node where
data KWitness (RowExtend key val rest) node Source # 
Instance details

Defined in AST.Term.Row

data KWitness (RowExtend key val rest) node where
data KWitness (TypedLam var typ expr) node Source # 
Instance details

Defined in AST.Term.TypedLam

data KWitness (TypedLam var typ expr) node where