mono-traversable: Type classes for mapping, folding, and traversing monomorphic containers

[ data, library, mit ] [ Propose Tags ]
This version is deprecated.

Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. Contains even more experimental code for abstracting containers and sequences.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.1, 0.4.0, 0.4.0.1, 0.4.0.2, 0.4.0.3, 0.4.0.4, 0.5.0, 0.6.0, 0.6.0.1, 0.6.0.2, 0.6.0.3, 0.6.0.4, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.8.0, 0.8.0.1, 0.9.0, 0.9.0.1, 0.9.0.2, 0.9.1, 0.9.2, 0.9.2.1, 0.9.3, 0.10.0, 0.10.0.1, 0.10.1, 0.10.1.1, 0.10.2, 1.0.0, 1.0.0.1, 1.0.1, 1.0.1.1, 1.0.1.2, 1.0.1.3, 1.0.2, 1.0.2.1, 1.0.4.0, 1.0.5.0, 1.0.6.0, 1.0.7.0, 1.0.8.0, 1.0.8.1, 1.0.9.0, 1.0.10.0, 1.0.11.0, 1.0.12.0, 1.0.13.0, 1.0.15.0, 1.0.15.1, 1.0.15.2, 1.0.15.3, 1.0.17.0 (info)
Dependencies base (>=4.5 && <4.7), bytestring (>=0.9), comonad (>=3.0.3), containers (>=0.4), hashable, semigroupoids (>=3.0), semigroups (>=0.9), text (>=0.11), transformers (>=0.3), unordered-containers (>=0.2), vector (>=0.10), vector-instances [details]
License MIT
Author Michael Snoyman, John Wiegley, Greg Weber
Maintainer michael@snoyman.com
Revised Revision 2 made by HerbertValerioRiedel at 2015-08-17T22:05:38Z
Category Data
Home page https://github.com/snoyberg/mono-traversable
Source repo head: git clone git://github.com/snoyberg/mono-traversable.git
Uploaded by MichaelSnoyman at 2014-02-13T18:14:45Z
Distributions Arch:1.0.17.0, Debian:1.0.15.1, Fedora:1.0.15.3, FreeBSD:0.9.2.1, LTSHaskell:1.0.17.0, NixOS:1.0.17.0, Stackage:1.0.17.0, openSUSE:1.0.15.3
Reverse Dependencies 87 direct, 4620 indirect [details]
Downloads 122777 total (529 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]

Readme for mono-traversable-0.3.0.0

[back to package description]

mono-traversable

Type classes for mapping, folding, and traversing monomorphic containers. Contains even more experimental code for abstracting containers and sequences.

Adding instances

If you have a data type which is a member of one of the relevant typeclasses (Functor, Foldable, Traversable), its quite easy to add an instance for MonoFunctor, MonoFoldable or MonoTraversable.

You just have to declare the proper type instance:

    {-# LANGUAGE TypeFamilies         #-}
    
    (...)
    
    -- type instance Element T.Text = Char  -- already defined
    -- type instance Element [a] = a        -- here for example
    type instance Element (CustomType a) = a

And then, the needed instances:

    instance MonoFunctor (CustomType a)
    instance MonoFoldable (CustomType a)
    instance MonoTraversable (CustomType a)

in your code, and your ready to use CustomType a with the functions defined in this package.

Note: if your type is as monomorphic container without the proper typeclasses, then you will have to provide an implementation. However, this should be fairly simple, as it can be seen in the code

Build Status