Hoogle Search

Within LTS Haskell 24.6 (ghc-9.10.2)

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

  1. deriveListable :: Name -> DecsQ

    extrapolate Test.Extrapolate.Core

    Derives a Listable instance for a given type Name. Consider the following Stack datatype:

    data Stack a  =  Stack a (Stack a) | Empty
    
    Writing
    deriveListable ''Stack
    
    will automatically derive the following Listable instance:
    instance Listable a => Listable (Stack a) where
    tiers  =  cons2 Stack \/ cons0 Empty
    
    Warning: if the values in your type need to follow a data invariant, the derived instance won't respect it. Use this only on "free" datatypes. Needs the TemplateHaskell extension.

  2. deriveListableCascading :: Name -> DecsQ

    extrapolate Test.Extrapolate.Core

    Derives a Listable instance for a given type Name cascading derivation of type arguments as well. Consider the following series of datatypes:

    data Position  =  CEO | Manager | Programmer
    
    data Person  =  Person
    {  name :: String
    ,  age :: Int
    ,  position :: Position
    }
    
    data Company  =  Company
    {  name :: String
    ,  employees :: [Person]
    }
    
    Writing
    deriveListableCascading ''Company
    
    will automatically derive the following three Listable instances:
    instance Listable Position where
    tiers  =  cons0 CEO \/ cons0 Manager \/ cons0 Programmer
    
    instance Listable Person where
    tiers  =  cons3 Person
    
    instance Listable Company where
    tiers  =  cons2 Company
    

  3. deriveGeneralizable :: Name -> DecsQ

    extrapolate Test.Extrapolate.Generalizable.Derive

    Derives a Generalizable instance for a given type Name. If needed, this function also automatically derivates Listable, Express and Name instances using respectively deriveListable, deriveExpress and deriveName. Consider the following Stack datatype:

    data Stack a = Stack a (Stack a) | Empty
    
    Writing
    deriveGeneralizable ''Stack
    
    will automatically derive the following Generalizable instance:
    instance Generalizable a => Generalizable (Stack a) where
    instances s = this "s" s
    $ let Stack x y = Stack undefined undefined `asTypeOf` s
    in instances x
    . instances y
    
    This function needs the TemplateHaskell extension.

  4. deriveGeneralizableCascading :: Name -> DecsQ

    extrapolate Test.Extrapolate.Generalizable.Derive

    Derives a Generalizable instance for a given type Name cascading derivation of type arguments as well.

  5. deriveGeneralizableIfNeeded :: Name -> DecsQ

    extrapolate Test.Extrapolate.Generalizable.Derive

    Same as deriveGeneralizable but does not warn when instance already exists (deriveGeneralizable is preferable).

  6. deriveMutable :: Name -> DecsQ

    fitspec Test.FitSpec

    Derives Mutable, ShowMutable and (optionally) Listable instances for a given type Name. Consider the following Stack datatype:

    data Stack a = Stack a (Stack a) | Empty
    
    Writing
    deriveMutable ''Stack
    
    will automatically derive the following Listable, Mutable and ShowMutable instances:
    instance Listable a => Listable (Stack a) where
    tiers = cons2 Stack \/ cons0 Empty
    
    instance (Eq a, Listable a) => Mutable a
    where mutiers = mutiersEq
    
    instance (Eq a, Show a) => ShowMutable a
    where mutantS = mutantSEq
    
    If a Listable instance already exists, it is not derived. (cf.: deriveListable) Needs the TemplateHaskell extension.

  7. deriveMutableCascading :: Name -> DecsQ

    fitspec Test.FitSpec

    No documentation available.

  8. deriveMutableCascadingE :: [Name] -> Name -> DecsQ

    fitspec Test.FitSpec

    No documentation available.

  9. deriveMutableE :: [Name] -> Name -> DecsQ

    fitspec Test.FitSpec

    Derives a Mutable instance for a given type Name using a given context for all type variables.

  10. deriveMutable :: Name -> DecsQ

    fitspec Test.FitSpec.Derive

    Derives Mutable, ShowMutable and (optionally) Listable instances for a given type Name. Consider the following Stack datatype:

    data Stack a = Stack a (Stack a) | Empty
    
    Writing
    deriveMutable ''Stack
    
    will automatically derive the following Listable, Mutable and ShowMutable instances:
    instance Listable a => Listable (Stack a) where
    tiers = cons2 Stack \/ cons0 Empty
    
    instance (Eq a, Listable a) => Mutable a
    where mutiers = mutiersEq
    
    instance (Eq a, Show a) => ShowMutable a
    where mutantS = mutantSEq
    
    If a Listable instance already exists, it is not derived. (cf.: deriveListable) Needs the TemplateHaskell extension.

Page 39 of many | Previous | Next