Hoogle Search

Within LTS Haskell 24.36 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. type PatSynType = Type

    template-haskell Language.Haskell.TH

    A pattern synonym's type. Note that a pattern synonym's fully specified type has a peculiar shape coming with two forall quantifiers and two constraint contexts. For example, consider the pattern synonym

    pattern P x1 x2 ... xn = <some-pattern>
    
    P's complete type is of the following form
    pattern P :: forall universals.   required constraints
    => forall existentials. provided constraints
    => t1 -> t2 -> ... -> tn -> t
    
    consisting of four parts:
    1. the (possibly empty lists of) universally quantified type variables and required constraints on them.
    2. the (possibly empty lists of) existentially quantified type variables and the provided constraints on them.
    3. the types t1, t2, .., tn of x1, x2, .., xn, respectively
    4. the type t of <some-pattern>, mentioning only universals.
    Pattern synonym types interact with TH when (a) reifying a pattern synonym, (b) pretty printing, or (c) specifying a pattern synonym's type signature explicitly:
    • Reification always returns a pattern synonym's fully specified type in abstract syntax.
    • Pretty printing via pprPatSynType abbreviates a pattern synonym's type unambiguously in concrete syntax: The rule of thumb is to print initial empty universals and the required context as () =>, if existentials and a provided context follow. If only universals and their required context, but no existentials are specified, only the universals and their required context are printed. If both or none are specified, so both (or none) are printed.
    • When specifying a pattern synonym's type explicitly with PatSynSigD either one of the universals, the existentials, or their contexts may be left empty.
    See the GHC user's guide for more information on pattern synonyms and their types: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#pattern-synonyms.

  2. PatternGuards :: Extension

    template-haskell Language.Haskell.TH

    No documentation available.

  3. PatternSynonyms :: Extension

    template-haskell Language.Haskell.TH

    No documentation available.

  4. PhantomR :: Role

    template-haskell Language.Haskell.TH

    phantom
    

  5. data Phases

    template-haskell Language.Haskell.TH

    No documentation available.

  6. PlainTV :: Name -> flag -> TyVarBndr flag

    template-haskell Language.Haskell.TH

    a
    

  7. PolyKinds :: Extension

    template-haskell Language.Haskell.TH

    No documentation available.

  8. PostfixOperators :: Extension

    template-haskell Language.Haskell.TH

    No documentation available.

  9. class Ppr a

    template-haskell Language.Haskell.TH

    No documentation available.

  10. data Pragma

    template-haskell Language.Haskell.TH

    No documentation available.

Page 26 of many | Previous | Next