syntax-tree-0.1.0.0: Typed ASTs

Safe HaskellNone
LanguageHaskell2010

AST.Combinator.ANode

Description

A simple Knot with a single child node

Synopsis

Documentation

newtype ANode c k Source #

ANode c is a Knot with a single child node of type c

Constructors

MkANode (k # c) 
Instances
KNodes (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Associated Types

type KNodesConstraint (ANode c) c :: Constraint Source #

data KWitness (ANode c) a :: Type Source #

Methods

kLiftConstraint :: KNodesConstraint (ANode c) c0 => KWitness (ANode c) n -> Proxy c0 -> (c0 n -> r) -> r 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 #

KFunctor (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

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

KApply (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

zipK :: Tree (ANode c) p -> Tree (ANode c) q -> Tree (ANode c) (Product p q) Source #

KFoldable (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

foldMapK :: Monoid a => (forall (n :: Knot -> Type). KWitness (ANode c) n -> Tree p n -> a) -> Tree (ANode c) p -> a Source #

KTraversable (ANode c) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

sequenceK :: Applicative f => Tree (ANode c) (ContainedK f p) -> f (Tree (ANode c) p) Source #

HasChild (ANode c) c Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

getChild :: Lens' (Tree (ANode c) k) (Tree k c) Source #

Constraints (ANode c k) Eq => Eq (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

(==) :: ANode c k -> ANode c k -> Bool #

(/=) :: ANode c k -> ANode c k -> Bool #

Constraints (ANode c k) Ord => Ord (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

compare :: ANode c k -> ANode c k -> Ordering #

(<) :: ANode c k -> ANode c k -> Bool #

(<=) :: ANode c k -> ANode c k -> Bool #

(>) :: ANode c k -> ANode c k -> Bool #

(>=) :: ANode c k -> ANode c k -> Bool #

max :: ANode c k -> ANode c k -> ANode c k #

min :: ANode c k -> ANode c k -> ANode c k #

Constraints (ANode c k) Show => Show (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

showsPrec :: Int -> ANode c k -> ShowS #

show :: ANode c k -> String #

showList :: [ANode c k] -> ShowS #

Generic (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Associated Types

type Rep (ANode c k) :: Type -> Type #

Methods

from :: ANode c k -> Rep (ANode c k) x #

to :: Rep (ANode c k) x -> ANode c k #

Constraints (ANode c k) Binary => Binary (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

put :: ANode c k -> Put #

get :: Get (ANode c k) #

putList :: [ANode c k] -> Put #

Constraints (ANode c k) NFData => NFData (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

Methods

rnf :: ANode c k -> () #

data KWitness (ANode c) node Source # 
Instance details

Defined in AST.Combinator.ANode

data KWitness (ANode c) node where
type KNodesConstraint (ANode c) constraint Source # 
Instance details

Defined in AST.Combinator.ANode

type KNodesConstraint (ANode c) constraint = constraint c
type Rep (ANode c k) Source # 
Instance details

Defined in AST.Combinator.ANode

type Rep (ANode c k) = D1 (MetaData "ANode" "AST.Combinator.ANode" "syntax-tree-0.1.0.0-8tfou50n4eQ4Iq1dis9DWN" True) (C1 (MetaCons "MkANode" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (k # c))))

_ANode :: Iso (Tree (ANode c0) k0) (Tree (ANode c1) k1) (Tree k0 c0) (Tree k1 c1) Source #

An Iso from ANode its child node.

Using _ANode rather than the MkANode data constructor is recommended, because it helps the type inference know that ANode c is parameterized with a Knot.