hypertypes-0.2.2: Typed ASTs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hyper.Combinator.ANode

Description

A simple HyperType with a single child node

Synopsis

Documentation

newtype ANode c h Source #

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

Constructors

MkANode (h :# c) 

Instances

Instances details
(c (ANode n), Recursively c n) => Recursively c (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

recursively :: proxy (c (ANode n)) -> Dict (c (ANode n), HNodesConstraint (ANode n) (Recursively c)) Source #

HApply (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (ANode c # p) -> (ANode c # q) -> ANode c # (p :*: q) Source #

HFoldable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> a) -> (ANode c # p) -> a Source #

HFunctor (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hmap :: (forall (n :: HyperType). HWitness (ANode c) n -> (p # n) -> q # n) -> (ANode c # p) -> ANode c # q Source #

HNodes (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type HNodesConstraint (ANode c) c Source #

type HWitnessType (ANode c) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c0 (n :: HyperType) r. HNodesConstraint (ANode c) c0 => HWitness (ANode c) n -> Proxy c0 -> (c0 n => r) -> r Source #

HPointed (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hpure :: (forall (n :: HyperType). HWitness (ANode c) n -> p # n) -> ANode c # p Source #

RNodes n => RNodes (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

RTraversable n => RTraversable (ANode n) Source # 
Instance details

Defined in Hyper.Combinator.ANode

HTraversable (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (ANode c # ContainedH f p) -> f (ANode c # p) Source #

HNodeLens (ANode c) c Source # 
Instance details

Defined in Hyper.Combinator.ANode

Methods

hNodeLens :: forall (h :: HyperType). Lens' (ANode c # h) (h # c) Source #

HMorph (ANode a) (ANode b) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

type MorphConstraint (ANode a) (ANode b) c Source #

data MorphWitness (ANode a) (ANode b) :: HyperType -> HyperType -> Type Source #

Methods

morphMap :: (forall (a0 :: HyperType) (b0 :: HyperType). MorphWitness (ANode a) (ANode b) a0 b0 -> (p # a0) -> q # b0) -> (ANode a # p) -> ANode b # q Source #

morphLiftConstraint :: forall c (a0 :: HyperType) (b0 :: HyperType) r. MorphConstraint (ANode a) (ANode b) c => MorphWitness (ANode a) (ANode b) a0 b0 -> Proxy c -> (c a0 b0 => r) -> r Source #

Generic (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

Associated Types

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

Methods

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

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

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

Defined in Hyper.Combinator.ANode

Methods

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

show :: ANode c h -> String #

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

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

Defined in Hyper.Combinator.ANode

Methods

put :: ANode c h -> Put #

get :: Get (ANode c h) #

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

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

Defined in Hyper.Combinator.ANode

Methods

rnf :: ANode c h -> () #

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

Defined in Hyper.Combinator.ANode

Methods

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

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

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

Defined in Hyper.Combinator.ANode

Methods

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

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

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

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

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

max :: ANode c h -> ANode c h -> ANode c h #

min :: ANode c h -> ANode c h -> ANode c h #

type HWitnessType (ANode c) Source # 
Instance details

Defined in Hyper.Combinator.ANode

type HNodesConstraint (ANode c) constraint Source # 
Instance details

Defined in Hyper.Combinator.ANode

type HNodesConstraint (ANode c) constraint = constraint c
data MorphWitness (ANode a) (ANode b) _ _1 Source # 
Instance details

Defined in Hyper.Combinator.ANode

data MorphWitness (ANode a) (ANode b) _ _1 where
type MorphConstraint (ANode a) (ANode b) c Source # 
Instance details

Defined in Hyper.Combinator.ANode

type MorphConstraint (ANode a) (ANode b) c = c a b
type Rep (ANode c h) Source # 
Instance details

Defined in Hyper.Combinator.ANode

type Rep (ANode c h) = D1 ('MetaData "ANode" "Hyper.Combinator.ANode" "hypertypes-0.2.2-9g9pX7Hb2mGI4yyssTDpOd" 'True) (C1 ('MetaCons "MkANode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# c))))

_ANode :: Iso (ANode c0 # k0) (ANode c1 # k1) (k0 # c0) (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 HyperType.

data W_ANode (c :: HyperType) node where Source #

Constructors

W_ANode_c :: W_ANode c c 

data family MorphWitness s t :: HyperType -> HyperType -> Type Source #

Instances

Instances details
data MorphWitness (ANode a) (ANode b) _ _1 Source # 
Instance details

Defined in Hyper.Combinator.ANode

data MorphWitness (ANode a) (ANode b) _ _1 where
data MorphWitness (App expr0) (App expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.App

data MorphWitness (App expr0) (App expr1) _ _1 where
data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.FuncType

data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 where
data MorphWitness (Lam v expr0) (Lam v expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Lam

data MorphWitness (Lam v expr0) (Lam v expr1) _ _1 where
data MorphWitness (Let v expr0) (Let v expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Let

data MorphWitness (Let v expr0) (Let v expr1) _ _1 where
data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Map

data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _1 where
data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Nominal

data MorphWitness (ToNom nomId term0) (ToNom nomId term1) _ _1 where
data MorphWitness (Var v expr0) (Var v expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Var

data MorphWitness (Var v expr0) (Var v expr1) _ _1
data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.Row

data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _1 where
data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.TypedLam

data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _1 where