template-haskell-natural-1.0.0.0
Safe HaskellNone
LanguageHaskell2010

Language.Haskell.TH.Natural.Syntax.Expr.Typed.Class

Synopsis

Documentation

class IsTypedExprBuilder st where Source #

Methods

runTypedExprBuilder :: forall (args :: [Type]) a. TypedExprBuilder st ('[] :: [Type]) args (Returns a) () -> Q (TExp (args :~> Returns a)) Source #

Instances

Instances details
(IsExprBuilder st, Definition st ~ Q a, ExtractedConstructor a Exp) => IsTypedExprBuilder st Source # 
Instance details

Defined in Language.Haskell.TH.Natural.Syntax.Expr.Typed.Class

Methods

runTypedExprBuilder :: forall (args :: [Type]) a0. TypedExprBuilder st ('[] :: [Type]) args (Returns a0) () -> Q (TExp (args :~> Returns a0)) Source #

genExpr :: forall st a (args :: [Type]). (IsExprBuilder st, Definition st ~ Q a, ExtractedConstructor a Exp) => TypedExprBuilder st ('[] :: [Type]) args (Returns a) () -> Q (TExp (args :~> Returns a)) Source #

addDeconstruct :: forall {a} st (args :: [Type]). IsExprBuilder st => Deconstruct -> TypedExprBuilder st args args ('Unknown :: Returns a) () Source #

addLet :: forall {a} st (args :: [Type]). IsExprBuilder st => Binding -> TypedExprBuilder st args args ('Unknown :: Returns a) () Source #

letCount :: forall {k} st (args :: [Type]) (res :: k). IsExprBuilder st => TypedExprBuilder st args args res Int Source #

returns :: forall t b (args :: [Type]) st. (IsExprBuilder st, GenTExpr t b) => b -> TypedExprBuilder st args args (Returns t) () Source #

strictLetBind :: forall {a} st t b (args :: [Type]). (IsExprBuilder st, GenTExpr t b) => b -> TypedExprBuilder st args args ('Unknown :: Returns a) (TExp t) Source #

letBind :: forall {a} st t b (args :: [Type]). (IsExprBuilder st, GenTExpr t b) => b -> TypedExprBuilder st args args ('Unknown :: Returns a) (TExp t) Source #

letBind_ :: forall {a} t b st (args :: [Type]). (IsExprBuilder st, GenTExpr t b) => Bool -> b -> TypedExprBuilder st args args ('Unknown :: Returns a) (TExp t) Source #