hypertypes-0.1.0.2: Typed ASTs
Safe HaskellNone
LanguageHaskell2010

Hyper.Type.AST.Map

Synopsis

Documentation

newtype TermMap h expr f Source #

A mapping of keys to terms.

Apart from the data type, a ZipMatch instance is also provided.

Constructors

TermMap (Map h (f :# expr)) 

Instances

Instances details
HNodes (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Associated Types

type HNodesConstraint (TermMap h expr) c Source #

type HWitnessType (TermMap h expr) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TermMap h expr) c => HWitness (TermMap h expr) n -> Proxy c -> (c n => r) -> r Source #

Applicative (Map h) => HPointed (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hpure :: (forall (n :: HyperType). HWitness (TermMap h expr) n -> p # n) -> TermMap h expr # p Source #

HFunctor (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hmap :: (forall (n :: HyperType). HWitness (TermMap h expr) n -> (p # n) -> q # n) -> (TermMap h expr # p) -> TermMap h expr # q Source #

HFoldable (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (TermMap h expr) n -> (p # n) -> a) -> (TermMap h expr # p) -> a Source #

HTraversable (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TermMap h expr # ContainedH f p) -> f (TermMap h expr # p) Source #

Applicative (Map h) => HApply (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (TermMap h expr # p) -> (TermMap h expr # q) -> TermMap h expr # (p :*: q) Source #

Eq h => ZipMatch (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (TermMap h expr # p) -> (TermMap h expr # q) -> Maybe (TermMap h expr # (p :*: q)) Source #

HMorph (TermMap h expr0) (TermMap h expr1) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Associated Types

type MorphConstraint (TermMap h expr0) (TermMap h expr1) c Source #

data MorphWitness (TermMap h expr0) (TermMap h expr1) :: HyperType -> HyperType -> Type Source #

Methods

morphMap :: (forall (a :: HyperType) (b :: HyperType). MorphWitness (TermMap h expr0) (TermMap h expr1) a b -> (p # a) -> q # b) -> (TermMap h expr0 # p) -> TermMap h expr1 # q Source #

morphLiftConstraint :: forall c (a :: HyperType) (b :: HyperType) r. MorphConstraint (TermMap h expr0) (TermMap h expr1) c => MorphWitness (TermMap h expr0) (TermMap h expr1) a b -> Proxy c -> (c a b => r) -> r Source #

Constraints (TermMap h expr f) Eq => Eq (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

(==) :: TermMap h expr f -> TermMap h expr f -> Bool #

(/=) :: TermMap h expr f -> TermMap h expr f -> Bool #

Constraints (TermMap h expr f) Ord => Ord (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

compare :: TermMap h expr f -> TermMap h expr f -> Ordering #

(<) :: TermMap h expr f -> TermMap h expr f -> Bool #

(<=) :: TermMap h expr f -> TermMap h expr f -> Bool #

(>) :: TermMap h expr f -> TermMap h expr f -> Bool #

(>=) :: TermMap h expr f -> TermMap h expr f -> Bool #

max :: TermMap h expr f -> TermMap h expr f -> TermMap h expr f #

min :: TermMap h expr f -> TermMap h expr f -> TermMap h expr f #

Constraints (TermMap h expr f) Show => Show (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

showsPrec :: Int -> TermMap h expr f -> ShowS #

show :: TermMap h expr f -> String #

showList :: [TermMap h expr f] -> ShowS #

Generic (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Associated Types

type Rep (TermMap h expr f) :: Type -> Type #

Methods

from :: TermMap h expr f -> Rep (TermMap h expr f) x #

to :: Rep (TermMap h expr f) x -> TermMap h expr f #

Constraints (TermMap h expr f) Binary => Binary (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

put :: TermMap h expr f -> Put #

get :: Get (TermMap h expr f) #

putList :: [TermMap h expr f] -> Put #

Constraints (TermMap h expr f) NFData => NFData (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

Methods

rnf :: TermMap h expr f -> () #

type HWitnessType (TermMap h expr) Source # 
Instance details

Defined in Hyper.Type.AST.Map

type HWitnessType (TermMap h expr) = W_TermMap h expr
type HNodesConstraint (TermMap h expr) constraint Source # 
Instance details

Defined in Hyper.Type.AST.Map

type HNodesConstraint (TermMap h expr) constraint = constraint expr
data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Map

data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ where
type MorphConstraint (TermMap h expr0) (TermMap h expr1) constraint Source # 
Instance details

Defined in Hyper.Type.AST.Map

type MorphConstraint (TermMap h expr0) (TermMap h expr1) constraint = constraint expr0 expr1
type Rep (TermMap h expr f) Source # 
Instance details

Defined in Hyper.Type.AST.Map

type Rep (TermMap h expr f) = D1 ('MetaData "TermMap" "Hyper.Type.AST.Map" "hypertypes-0.1.0.2-GDiSRF0EwgQ6Mkx3yytlTL" 'True) (C1 ('MetaCons "TermMap" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map h (f :# expr)))))

_TermMap :: forall h expr f h expr f. Iso (TermMap h expr f) (TermMap h expr f) (Map h ((:#) f expr)) (Map h ((:#) f expr)) Source #

data W_TermMap (h :: Type) (expr :: HyperType) node where Source #

Constructors

W_TermMap_expr :: W_TermMap h expr expr 

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

Instances

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

Defined in Hyper.Combinator.ANode

data MorphWitness (ANode a) (ANode b) _ _ where
data MorphWitness (FuncType typ0) (FuncType typ1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.FuncType

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

Defined in Hyper.Type.AST.App

data MorphWitness (App expr0) (App expr1) _ _ where
data MorphWitness (TermMap h expr0) (TermMap h expr1) _ _ Source # 
Instance details

Defined in Hyper.Type.AST.Map

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

Defined in Hyper.Type.AST.Var

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

Defined in Hyper.Type.AST.Nominal

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

Defined in Hyper.Type.AST.Let

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

Defined in Hyper.Type.AST.Lam

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

Defined in Hyper.Type.AST.Row

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

Defined in Hyper.Type.AST.TypedLam

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