hypertypes-0.2.2: Typed ASTs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hyper.Syntax.FuncType

Synopsis

Documentation

data FuncType typ h Source #

A term for the types of functions. Analogues to (->) in Haskell.

FuncType typs express types of functions of typ.

Constructors

FuncType 

Fields

Instances

Instances details
HApply (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (FuncType typ # p) -> (FuncType typ # q) -> FuncType typ # (p :*: q) Source #

HContext (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

hcontext :: forall (p :: HyperType). (FuncType typ # p) -> FuncType typ # (HFunc p (Const (FuncType typ # p)) :*: p) Source #

HFoldable (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

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

HFunctor (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

hmap :: (forall (n :: HyperType). HWitness (FuncType typ) n -> (p # n) -> q # n) -> (FuncType typ # p) -> FuncType typ # q Source #

HNodes (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Associated Types

type HNodesConstraint (FuncType typ) c Source #

type HWitnessType (FuncType typ) :: HyperType -> Type Source #

Methods

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

HPointed (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

hpure :: (forall (n :: HyperType). HWitness (FuncType typ) n -> p # n) -> FuncType typ # p Source #

HTraversable (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

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

ZipMatch (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

zipMatch :: forall (p :: HyperType) (q :: HyperType). (FuncType typ # p) -> (FuncType typ # q) -> Maybe (FuncType typ # (p :*: q)) Source #

HMorph (FuncType typ0) (FuncType typ1) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Associated Types

type MorphConstraint (FuncType typ0) (FuncType typ1) c Source #

data MorphWitness (FuncType typ0) (FuncType typ1) :: HyperType -> HyperType -> Type Source #

Methods

morphMap :: (forall (a :: HyperType) (b :: HyperType). MorphWitness (FuncType typ0) (FuncType typ1) a b -> (p # a) -> q # b) -> (FuncType typ0 # p) -> FuncType typ1 # q Source #

morphLiftConstraint :: forall c (a :: HyperType) (b :: HyperType) r. MorphConstraint (FuncType typ0) (FuncType typ1) c => MorphWitness (FuncType typ0) (FuncType typ1) a b -> Proxy c -> (c a b => r) -> r Source #

Generic (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Associated Types

type Rep (FuncType typ h) :: Type -> Type #

Methods

from :: FuncType typ h -> Rep (FuncType typ h) x #

to :: Rep (FuncType typ h) x -> FuncType typ h #

Show (h :# typ) => Show (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

showsPrec :: Int -> FuncType typ h -> ShowS #

show :: FuncType typ h -> String #

showList :: [FuncType typ h] -> ShowS #

Constraints (FuncType typ h) Binary => Binary (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

put :: FuncType typ h -> Put #

get :: Get (FuncType typ h) #

putList :: [FuncType typ h] -> Put #

Constraints (FuncType typ h) NFData => NFData (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

rnf :: FuncType typ h -> () #

Constraints (FuncType typ h) Eq => Eq (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

(==) :: FuncType typ h -> FuncType typ h -> Bool #

(/=) :: FuncType typ h -> FuncType typ h -> Bool #

Constraints (FuncType typ h) Ord => Ord (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

compare :: FuncType typ h -> FuncType typ h -> Ordering #

(<) :: FuncType typ h -> FuncType typ h -> Bool #

(<=) :: FuncType typ h -> FuncType typ h -> Bool #

(>) :: FuncType typ h -> FuncType typ h -> Bool #

(>=) :: FuncType typ h -> FuncType typ h -> Bool #

max :: FuncType typ h -> FuncType typ h -> FuncType typ h #

min :: FuncType typ h -> FuncType typ h -> FuncType typ h #

Pretty (h :# typ) => Pretty (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

Methods

pPrintPrec :: PrettyLevel -> Rational -> FuncType typ h -> Doc #

pPrint :: FuncType typ h -> Doc #

pPrintList :: PrettyLevel -> [FuncType typ h] -> Doc #

type HWitnessType (FuncType typ) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

type HNodesConstraint (FuncType typ) constraint Source # 
Instance details

Defined in Hyper.Syntax.FuncType

type HNodesConstraint (FuncType typ) constraint = constraint typ
data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 Source # 
Instance details

Defined in Hyper.Syntax.FuncType

data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 where
type MorphConstraint (FuncType typ0) (FuncType typ1) constraint Source # 
Instance details

Defined in Hyper.Syntax.FuncType

type MorphConstraint (FuncType typ0) (FuncType typ1) constraint = constraint typ0 typ1
type Rep (FuncType typ h) Source # 
Instance details

Defined in Hyper.Syntax.FuncType

type Rep (FuncType typ h) = D1 ('MetaData "FuncType" "Hyper.Syntax.FuncType" "hypertypes-0.2.2-9g9pX7Hb2mGI4yyssTDpOd" 'False) (C1 ('MetaCons "FuncType" 'PrefixI 'True) (S1 ('MetaSel ('Just "_funcIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# typ)) :*: S1 ('MetaSel ('Just "_funcOut") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# typ))))

funcIn :: forall typ h. Lens' (FuncType typ h) ((:#) h typ) Source #

funcOut :: forall typ h. Lens' (FuncType typ h) ((:#) h typ) Source #

data W_FuncType (typ :: HyperType) node where Source #

Constructors

W_FuncType_typ :: W_FuncType typ typ 

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