syntax-tree-0.1.0.0: Typed ASTs

Safe HaskellSafe
LanguageHaskell2010

AST.Class.Pointed

Description

A variant of Pointed for Knots

Synopsis

Documentation

class KNodes k => KPointed k where Source #

A variant of Pointed for Knots

Methods

pureK :: (forall n. KWitness k n -> Tree p n) -> Tree k p Source #

Construct a value from a generator of k's nodes (a generator which can generate a tree of any type given a witness that it is a node of k)

Instances
KPointed Pure Source # 
Instance details

Defined in AST.Knot.Pure

Methods

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

KPointed Prune Source # 
Instance details

Defined in AST.Knot.Prune

Methods

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

KPointed (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (ANode c) n -> Tree p n) -> Tree (ANode c) p Source #

Applicative f => KPointed (F f) Source # 
Instance details

Defined in AST.Knot.Functor

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (F f) n -> Tree p n) -> Tree (F f) p Source #

Monoid a => KPointed (Ann a) Source # 
Instance details

Defined in AST.Knot.Ann

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Ann a) n -> Tree p n) -> Tree (Ann a) p Source #

KPointed (FuncType typ) Source # 
Instance details

Defined in AST.Term.FuncType

Methods

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

KPointed (App expr) Source # 
Instance details

Defined in AST.Term.App

Methods

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

KPointed (ScopeTypes t) Source # 
Instance details

Defined in AST.Term.NamelessScope

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (ScopeTypes t) n -> Tree p n) -> Tree (ScopeTypes t) p Source #

Monoid a => KPointed (Const a :: Knot -> Type) Source # 
Instance details

Defined in AST.Class.Pointed

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Const a) n -> Tree p n) -> Tree (Const a) p Source #

(KNodes a, KPointed a, KPointed b) => KPointed (Compose a b) Source # 
Instance details

Defined in AST.Combinator.Compose

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Compose a b) n -> Tree p n) -> Tree (Compose a b) p Source #

Applicative (Map k) => KPointed (TermMap k expr) Source # 
Instance details

Defined in AST.Term.Map

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (TermMap k expr) n -> Tree p n) -> Tree (TermMap k expr) p Source #

Monoid v => KPointed (Var v expr) Source # 
Instance details

Defined in AST.Term.Var

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Var v expr) n -> Tree p n) -> Tree (Var v expr) p Source #

Monoid (Tree varTypes QVars) => KPointed (Scheme varTypes typ) Source # 
Instance details

Defined in AST.Term.Scheme

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Scheme varTypes typ) n -> Tree p n) -> Tree (Scheme varTypes typ) p 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 #

Monoid nomId => KPointed (FromNom nomId term) Source # 
Instance details

Defined in AST.Term.Nominal

Methods

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

Monoid nomId => KPointed (ToNom nomId term) Source # 
Instance details

Defined in AST.Term.Nominal

Methods

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

Monoid v => KPointed (Let v expr) Source # 
Instance details

Defined in AST.Term.Let

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Let v expr) n -> Tree p n) -> Tree (Let v expr) p Source #

Monoid v => KPointed (Lam v expr) Source # 
Instance details

Defined in AST.Term.Lam

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Lam v expr) n -> Tree p n) -> Tree (Lam v expr) p Source #

KPointed (Scope expr a) Source # 
Instance details

Defined in AST.Term.NamelessScope

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Scope expr a) n -> Tree p n) -> Tree (Scope expr a) p Source #

Monoid a => KPointed (ScopeVar expr a) Source # 
Instance details

Defined in AST.Term.NamelessScope

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (ScopeVar expr a) n -> Tree p n) -> Tree (ScopeVar expr a) p Source #

(KPointed a, KPointed b) => KPointed (Product a b) Source # 
Instance details

Defined in AST.Class.Pointed

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (Product a b) n -> Tree p n) -> Tree (Product a b) p Source #

Applicative (Map key) => KPointed (FlatRowExtends key val rest) Source # 
Instance details

Defined in AST.Term.Row

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (FlatRowExtends key val rest) n -> Tree p n) -> Tree (FlatRowExtends key val rest) p Source #

Monoid key => KPointed (RowExtend key val rest) Source # 
Instance details

Defined in AST.Term.Row

Methods

pureK :: (forall (n :: Knot -> Type). KWitness (RowExtend key val rest) n -> Tree p n) -> Tree (RowExtend key val rest) p 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 #