Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- seqA ∷ (MonadQuote m, Monoid a, ToBuiltinMeaning uni fun) ⇒ BuiltinsInfo uni fun → VarsInfo tyname Name uni a → (Type tyname uni a, Term tyname Name uni fun a) → m (Term tyname Name uni fun a) → m (Term tyname Name uni fun a)
- seqP ∷ (MonadQuote m, Monoid a, ToBuiltinMeaning uni fun) ⇒ BuiltinsInfo uni fun → VarsInfo tyname Name uni a → (Type tyname uni a, Term tyname Name uni fun a) → Term tyname Name uni fun a → m (Term tyname Name uni fun a)
- mkFreshTermLet ∷ ∀ m t tyname (uni ∷ Type → Type) fun a. (MonadQuote m, TermLike t tyname Name uni fun, Monoid a) ⇒ Type tyname uni a → t a → m (t a, t a → t a)
- pattern A ∷ Term tyname name uni fun a → Term tyname name uni fun a → Term tyname name uni fun a
- pattern B ∷ fun → Term tyname name uni fun a
- pattern I ∷ Term tyname name uni fun a → Type tyname uni a → Term tyname name uni fun a
Documentation
seqA ∷ (MonadQuote m, Monoid a, ToBuiltinMeaning uni fun) ⇒ BuiltinsInfo uni fun → VarsInfo tyname Name uni a → (Type tyname uni a, Term tyname Name uni fun a) → m (Term tyname Name uni fun a) → m (Term tyname Name uni fun a) Source #
A wrapper that can be more easily turned into an infix operator.
e.g. `infixr 5 (***) = seqA binfo vInfo`
seqP ∷ (MonadQuote m, Monoid a, ToBuiltinMeaning uni fun) ⇒ BuiltinsInfo uni fun → VarsInfo tyname Name uni a → (Type tyname uni a, Term tyname Name uni fun a) → Term tyname Name uni fun a → m (Term tyname Name uni fun a) Source #
Another "infix" wrapper where second operand is a Haskell pure value.
e.g. `infixr 5 (***) = seqP binfo vInfo`
∷ ∀ m t tyname (uni ∷ Type → Type) fun a. (MonadQuote m, TermLike t tyname Name uni fun, Monoid a) | |
⇒ Type tyname uni a | the type of binding |
→ t a | the term bound to the fresh variable |
→ m (t a, t a → t a) | the fresh Var and a function that takes an "in" term to construct the Let |
A helper to create a single, fresh strict binding; It returns the fresh bound Var
iable and
a function `Term -> Term`, expecting an "in-Term" to form a let-expression.