Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Hyper.Syntax.Let
Synopsis
- data Let v expr h = Let {
- _letVar :: v
- _letEquals :: h :# expr
- _letIn :: h :# expr
- letVar :: forall v expr h v. Lens (Let v expr h) (Let v expr h) v v
- letEquals :: forall v expr h. Lens' (Let v expr h) ((:#) h expr)
- letIn :: forall v expr h. Lens' (Let v expr h) ((:#) h expr)
- data W_Let (v :: Type) (expr :: HyperType) node where
- W_Let_expr :: W_Let v expr expr
- data family MorphWitness s t :: HyperType -> HyperType -> Type
Documentation
A term for let-expressions with let-generalization.
Let v expr
s express let-expressions with v
s as variable names and expr
s for terms.
Apart from the data type, an Infer
instance is also provided.
Instances
(MonadScopeLevel m, LocalScopeType v (GTerm (UVarOf m) # TypeOf expr) m, UnifyGen m (TypeOf expr), HasInferredType expr, HNodesConstraint (InferOf expr) (UnifyGen m), HTraversable (InferOf expr), Infer m expr) => Infer m (Let v expr) Source # | |
Defined in Hyper.Syntax.Let Methods inferBody :: forall (h :: AHyperType -> Type). (Let v expr # InferChild m h) -> m (Let v expr # h, InferOf (Let v expr) # UVarOf m) Source # inferContext :: proxy0 m -> proxy1 (Let v expr) -> Dict (HNodesConstraint (Let v expr) (Infer m), HNodesConstraint (InferOf (Let v expr)) (UnifyGen m)) Source # | |
Semigroup v => HApply (Let v expr) Source # | |
HContext (Let v expr) Source # | |
HFoldable (Let v expr) Source # | |
HFunctor (Let v expr) Source # | |
HNodes (Let v expr) Source # | |
Defined in Hyper.Syntax.Let Associated Types type HNodesConstraint (Let v expr) c Source # type HWitnessType (Let v expr) :: HyperType -> Type Source # Methods hLiftConstraint :: forall c (n :: HyperType) r. HNodesConstraint (Let v expr) c => HWitness (Let v expr) n -> Proxy c -> (c n => r) -> r Source # | |
Monoid v => HPointed (Let v expr) Source # | |
HTraversable (Let v expr) Source # | |
Defined in Hyper.Syntax.Let Methods hsequence :: forall f (p :: AHyperType -> Type). Applicative f => (Let v expr # ContainedH f p) -> f (Let v expr # p) Source # | |
Eq v => ZipMatch (Let v expr) Source # | |
HMorph (Let v expr0) (Let v expr1) Source # | |
Defined in Hyper.Syntax.Let Associated Types type MorphConstraint (Let v expr0) (Let v expr1) c Source # data MorphWitness (Let v expr0) (Let v expr1) :: HyperType -> HyperType -> Type Source # Methods morphMap :: (forall (a :: HyperType) (b :: HyperType). MorphWitness (Let v expr0) (Let v expr1) a b -> (p # a) -> q # b) -> (Let v expr0 # p) -> Let v expr1 # q Source # morphLiftConstraint :: forall c (a :: HyperType) (b :: HyperType) r. MorphConstraint (Let v expr0) (Let v expr1) c => MorphWitness (Let v expr0) (Let v expr1) a b -> Proxy c -> (c a b => r) -> r Source # | |
Generic (Let v expr h) Source # | |
Constraints (Let v expr h) Show => Show (Let v expr h) Source # | |
Constraints (Let v expr h) Binary => Binary (Let v expr h) Source # | |
Constraints (Let v expr h) NFData => NFData (Let v expr h) Source # | |
Defined in Hyper.Syntax.Let | |
Constraints (Let v expr h) Eq => Eq (Let v expr h) Source # | |
Constraints (Let v expr h) Ord => Ord (Let v expr h) Source # | |
Defined in Hyper.Syntax.Let | |
Constraints (Let v expr h) Pretty => Pretty (Let v expr h) Source # | |
Defined in Hyper.Syntax.Let Methods pPrintPrec :: PrettyLevel -> Rational -> Let v expr h -> Doc # pPrint :: Let v expr h -> Doc # pPrintList :: PrettyLevel -> [Let v expr h] -> Doc # | |
type InferOf (Let _1 e) Source # | |
Defined in Hyper.Syntax.Let | |
type HWitnessType (Let v expr) Source # | |
Defined in Hyper.Syntax.Let | |
type HNodesConstraint (Let v expr) constraint Source # | |
Defined in Hyper.Syntax.Let | |
data MorphWitness (Let v expr0) (Let v expr1) _ _1 Source # | |
Defined in Hyper.Syntax.Let data MorphWitness (Let v expr0) (Let v expr1) _ _1 where
| |
type MorphConstraint (Let v expr0) (Let v expr1) constraint Source # | |
Defined in Hyper.Syntax.Let | |
type Rep (Let v expr h) Source # | |
Defined in Hyper.Syntax.Let type Rep (Let v expr h) = D1 ('MetaData "Let" "Hyper.Syntax.Let" "hypertypes-0.2.2-9g9pX7Hb2mGI4yyssTDpOd" 'False) (C1 ('MetaCons "Let" 'PrefixI 'True) (S1 ('MetaSel ('Just "_letVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 v) :*: (S1 ('MetaSel ('Just "_letEquals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# expr)) :*: S1 ('MetaSel ('Just "_letIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (h :# expr))))) |
data W_Let (v :: Type) (expr :: HyperType) node where Source #
Constructors
W_Let_expr :: W_Let v expr expr |
data family MorphWitness s t :: HyperType -> HyperType -> Type Source #
Instances
data MorphWitness (ANode a) (ANode b) _ _1 Source # | |
Defined in Hyper.Combinator.ANode | |
data MorphWitness (App expr0) (App expr1) _ _1 Source # | |
Defined in Hyper.Syntax.App data MorphWitness (App expr0) (App expr1) _ _1 where
| |
data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 Source # | |
Defined in Hyper.Syntax.FuncType data MorphWitness (FuncType typ0) (FuncType typ1) _ _1 where
| |
data MorphWitness (Lam v expr0) (Lam v expr1) _ _1 Source # | |
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 # | |
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 # | |
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 # | |
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 # | |
Defined in Hyper.Syntax.Var | |
data MorphWitness (RowExtend key val0 rest0) (RowExtend key val1 rest1) _ _1 Source # | |
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 # | |
Defined in Hyper.Syntax.TypedLam data MorphWitness (TypedLam var typ0 expr0) (TypedLam var typ1 expr1) _ _1 where
|