hypertypes-0.2.2: Typed ASTs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Hyper.Syntax.TypeSig

Description

Type signatures

Documentation

data TypeSig vars term h Source #

Constructors

TypeSig 

Fields

Instances

Instances details
(MonadScopeLevel m, HasInferredType term, HasInferredValue (TypeOf term), HTraversable vars, HTraversable (InferOf term), HNodesConstraint (InferOf term) (UnifyGen m), HNodesConstraint vars (MonadInstantiate m), UnifyGen m (TypeOf term), Infer m (TypeOf term), Infer m term) => Infer m (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

inferBody :: forall (h :: AHyperType -> Type). (TypeSig vars term # InferChild m h) -> m (TypeSig vars term # h, InferOf (TypeSig vars term) # UVarOf m) Source #

inferContext :: proxy0 m -> proxy1 (TypeSig vars term) -> Dict (HNodesConstraint (TypeSig vars term) (Infer m), HNodesConstraint (InferOf (TypeSig vars term)) (UnifyGen m)) Source #

HApply (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

hzip :: forall (p :: HyperType) (q :: HyperType). (TypeSig vars term # p) -> (TypeSig vars term # q) -> TypeSig vars term # (p :*: q) Source #

HFoldable (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

hfoldMap :: Monoid a => (forall (n :: HyperType). HWitness (TypeSig vars term) n -> (p # n) -> a) -> (TypeSig vars term # p) -> a Source #

HFunctor (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

hmap :: (forall (n :: HyperType). HWitness (TypeSig vars term) n -> (p # n) -> q # n) -> (TypeSig vars term # p) -> TypeSig vars term # q Source #

HNodes (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Associated Types

type HNodesConstraint (TypeSig vars term) c Source #

type HWitnessType (TypeSig vars term) :: HyperType -> Type Source #

Methods

hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (TypeSig vars term) c => HWitness (TypeSig vars term) n -> Proxy c -> (c n => r) -> r Source #

HPointed (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

hpure :: (forall (n :: HyperType). HWitness (TypeSig vars term) n -> p # n) -> TypeSig vars term # p Source #

HTraversable (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (TypeSig vars term # ContainedH f p) -> f (TypeSig vars term # p) Source #

Generic (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Associated Types

type Rep (TypeSig vars term h) :: Type -> Type #

Methods

from :: TypeSig vars term h -> Rep (TypeSig vars term h) x #

to :: Rep (TypeSig vars term h) x -> TypeSig vars term h #

Constraints (TypeSig vars term h) Show => Show (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

showsPrec :: Int -> TypeSig vars term h -> ShowS #

show :: TypeSig vars term h -> String #

showList :: [TypeSig vars term h] -> ShowS #

Constraints (TypeSig vars term h) Binary => Binary (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

put :: TypeSig vars term h -> Put #

get :: Get (TypeSig vars term h) #

putList :: [TypeSig vars term h] -> Put #

Constraints (TypeSig vars term h) NFData => NFData (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

rnf :: TypeSig vars term h -> () #

Constraints (TypeSig vars term h) Eq => Eq (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

(==) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

(/=) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

Constraints (TypeSig vars term h) Ord => Ord (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

compare :: TypeSig vars term h -> TypeSig vars term h -> Ordering #

(<) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

(<=) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

(>) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

(>=) :: TypeSig vars term h -> TypeSig vars term h -> Bool #

max :: TypeSig vars term h -> TypeSig vars term h -> TypeSig vars term h #

min :: TypeSig vars term h -> TypeSig vars term h -> TypeSig vars term h #

Constraints (TypeSig vars term h) Pretty => Pretty (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

Methods

pPrintPrec :: PrettyLevel -> Rational -> TypeSig vars term h -> Doc #

pPrint :: TypeSig vars term h -> Doc #

pPrintList :: PrettyLevel -> [TypeSig vars term h] -> Doc #

type InferOf (TypeSig _1 t) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

type InferOf (TypeSig _1 t) = InferOf t
type HWitnessType (TypeSig vars term) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

type HWitnessType (TypeSig vars term) = W_TypeSig vars term
type HNodesConstraint (TypeSig vars term) constraint Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

type HNodesConstraint (TypeSig vars term) constraint = (constraint (Scheme vars (TypeOf term)), constraint term)
type Rep (TypeSig vars term h) Source # 
Instance details

Defined in Hyper.Syntax.TypeSig

type Rep (TypeSig vars term h) = D1 ('MetaData "TypeSig" "Hyper.Syntax.TypeSig" "hypertypes-0.2.2-9g9pX7Hb2mGI4yyssTDpOd" 'False) (C1 ('MetaCons "TypeSig" 'PrefixI 'True) (S1 ('MetaSel ('Just "_tsTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# term)) :*: S1 ('MetaSel ('Just "_tsType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# Scheme vars (TypeOf term)))))

tsType :: forall vars term h vars. Lens (TypeSig vars term h) (TypeSig vars term h) ((:#) h (Scheme vars (TypeOf term))) ((:#) h (Scheme vars (TypeOf term))) Source #

tsTerm :: forall vars term h. Lens' (TypeSig vars term h) ((:#) h term) Source #

data W_TypeSig (vars :: AHyperType -> Type) (term :: HyperType) node where Source #

Constructors

W_TypeSig_term :: W_TypeSig vars term term 
W_TypeSig_Scheme_vars_TypeOf_term :: W_TypeSig vars term (Scheme vars (TypeOf term))