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. package tree-fun

    Library for functions pertaining to tree exploration and manipulation Library for functions pertaining to tree exploration and manipulation

  2. package trivial-constraint

    Constraints that any type, resp. no type fulfills Since GHC 7.4, constraints are first-class: we have the constraint kind, and thus type-classes have a kind of form k -> Constraint, or k -> l -> m -> ... -> Constraint for a multi-param type class. Such type-level functions can be used as arguments to data types, or as instances for other type classes. For any given arity, the constraint-valued functions form a semigroup with respect to “constraint intersection”, which Haskell supports with tuple syntax, e.g.

    type NewCstrt¹ a = (Cstrt¹₀ a, Cstrt¹₁ a)
    
    means that NewCstrt¹ :: * -> Constraint requires that for any given parameter both Cstrt¹₀ and Cstrt¹₁ be fulfilled. It is intuitive enough that this type-level semigroup can be extended to a monoid, but out of the box this is only possible for arity 0, i.e. for Cstrt⁰ :: Constraint
    (Cstrt⁰, ()) ~ ((), Cstrt⁰) ~ Cstrt⁰
    
    For higher arity, this would require type-level lambdas, like for Cstrt² :: * -> * -> Constraint
    (Cstrt², \a b -> ()) ~ (\a b -> (), Cstrt²) ~ Cstrt²
    
    which is not valid Haskell syntax. It is easy enough to define the lambdas in an ad-hoc manner as
    type Unconstrained² a b = ()
    
    and then
    (Cstrt², Unconstrained²) ~ (Unconstrained², Cstrt²) ~ Cstrt²
    
    This library provides those trivial constraints in a single, documented place, and it uses classes instead of type-synonyms (which would be problematic when it comes to partial application). Arities 0-9 are provided. They can be useful in any construction that is parameterised over a constrainer-class, when you do not wish to actually constrain the domain with it. The other thing this library provides are the opposite classes, i.e. \a b ... -> Impossible, constraints which can never be fulfilled. They are essentially dual to the Unconstrained ones, and can likewise be useful as parameters that should completely “disable” a conditional feature.

  3. package tuples

    Small monomorphic tuples This library provides small tuples where all the elements are the same type. The elements always unpack into the data constructor. This can be helpful when the tuple type is itself nested inside of another data constructor.

  4. package twitter-types

    Twitter JSON parser and types Please see the README on Github at https://github.com/himura/twitter-types#readme

  5. package type-equality

    Data.Type.Equality compat package This library defines a propositional equality data type, shims Data.Type.Equality as well as possible for older GHCs (< 7.8).

    data a :~: b where
    Refl :: a :~: a
    
    The module Data.Type.Equality.Hetero shims :~~: equality, for compilers with PolyKinds

  6. package type-fun

    Collection of widely reimplemented type families Collection of widely reimplemented type families

  7. package type-hint

    Guide type inference with proxy values This package provides Proxy values for various types from the base library and functions to use these values as hints for type inference.

  8. package type-level-bytestrings

    Tools for manipulating type-level bytes and bytestrings Please see README.md.

  9. package type-level-show

    Utilities for writing Show-like type families Please see README.md.

  10. package type-natural

    Type-level natural and proofs of their properties. Type-level natural numbers and proofs of their properties.

Page 147 of many | Previous | Next