Hoogle Search

Within LTS Haskell 24.40 (ghc-9.10.3)

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

  1. fromMany' :: forall (xs :: [Type]) a . IsMany (Tagged :: [Type] -> Type -> Type) xs a => Many xs -> a

    data-diverse Data.Diverse.Many

    Converts from a Many to a value (eg a tuple), via a Tagged wrapper

  2. snocMany :: forall (xs :: [Type]) y . Many xs -> y -> Many (Append xs '[y])

    data-diverse Data.Diverse.Many

    Add an element to the right of a Many Not named snoc to avoid conflict with snoc

  3. snocMany' :: forall y (xs :: [Type]) . MaybeUniqueMember y xs => Many xs -> y -> Many (SnocUnique xs y)

    data-diverse Data.Diverse.Many

    Add an element to the right of a Many iff the field doesn't already exist.

  4. toMany :: IsMany t xs a => t xs a -> Many xs

    data-diverse Data.Diverse.Many

    No documentation available.

  5. toMany' :: forall (xs :: [Type]) a . IsMany (Tagged :: [Type] -> Type -> Type) xs a => a -> Many xs

    data-diverse Data.Diverse.Many

    Converts from a value (eg a tuple) to a Many, via a Tagged wrapper

  6. class IsMany (t :: [Type] -> k -> Type) (xs :: [Type]) (a :: k)

    data-diverse Data.Diverse.Many.Internal

    This instance allows converting to and from Many There are instances for converting tuples of up to size 15.

  7. newtype Many (xs :: [Type])

    data-diverse Data.Diverse.Many.Internal

    A Many is an anonymous product type (also know as polymorphic record), with no limit on the number of fields. The following functions are available can be used to manipulate unique fields

    These functions are type specified. This means labels are not required because the types themselves can be used to access the 'Many. It is a compile error to use those functions for duplicate fields. For duplicate fields, Nat-indexed versions of the functions are available: Encoding: The record is encoded as (S.Seq Any). This encoding should reasonabily efficient for any number of fields. The map Key is index + offset of the type in the typelist. The Offset is used to allow efficient cons consMany.
    Key = Index of type in typelist + Offset
    
    The constructor will guarantee the correct number and types of the elements. The constructor is only exported in the Data.Diverse.Many.Internal module

  8. Many :: Seq (Any :: Type) -> Many (xs :: [Type])

    data-diverse Data.Diverse.Many.Internal

    No documentation available.

  9. consMany :: forall x (xs :: [Type]) . x -> Many xs -> Many (x ': xs)

    data-diverse Data.Diverse.Many.Internal

    Add an element to the left of a Many. Not named cons to avoid conflict with cons

  10. forMany :: forall c r (xs :: [Type]) . Collect c r xs => c r xs -> Many xs -> Collector c xs r

    data-diverse Data.Diverse.Many.Internal

    Folds any Many, even with indistinct types. Given distinct handlers for the fields in Many, create AFoldable of the results of running the handlers over the fields in Many.

    let x = (5 :: Int) ./ False ./ 'X' ./ Just 'O' ./ (6 :: Int) ./ Just 'A' ./ nil
    y = show @Int ./ show @Char ./ show @(Maybe Char) ./ show @Bool ./ nil
    afoldr (:) [] (forMany (cases y) x) `shouldBe`
    ["5", "False", "'X'", "Just 'O'", "6", "Just 'A'"]
    

Page 189 of many | Previous | Next