GitXplorerGitXplorer
U

monad-classes

public
64 stars
11 forks
0 issues

Commits

List of commits on branch master.
Unverified
19e41e250615ad1121a958baed6c3081b0efb11b

Update type index to match class instance head for StT

eedwardgeorge committed 7 years ago
Unverified
fb93f7ed0b25a7ac1abfe34c73cac87ae9c772d1

Update travis configuration

UUnkindPartition committed 8 years ago
Unverified
04595a659c7aaa0cc0f7efe2ac5c48938840a8c8

Fix all warnings

UUnkindPartition committed 8 years ago
Unverified
ca8813d8a0258da3efb057c2268ddd7b9845de19

Add tests

UUnkindPartition committed 8 years ago
Unverified
89705d209a7b328ee333700fc32575134186874c

Export state

UUnkindPartition committed 9 years ago
Unverified
6dde154d0189086ffe012a99d7b8e571ecc5af12

CONTRIBUTING.md

UUnkindPartition committed 10 years ago

README

The README file for this repository.

Build Status

See this series of articles for the detailed description and motivation.

This is a more flexible version of mtl, the monad transformers library.

  • You can have many layers of e.g. state transformers in your stack, and you don't have to explicitly lift your gets and puts, as soon as different state transformers carry different types of states.

    Example:

    a :: (MonadState Bool m, MonadState Int m) => m ()
    a = do
      put False -- set the boolean state
      modify (+ (1 :: Int)) -- modify the integer state
  • mtl requires Θ(n2) instances (like MonadReader e (StateT s m)); monad-classes requires only Θ(n) of them (where n is the number of different transformer types).

    If you'd like to define your own monad-classes-style class, you have to write much less boilerplate code.

The status of this repo

This repo serves two purposes:

While this is technically open source software, I am not interested in maintaining this as an active open project. In practice this means that:

  • this version of monad-classes is not on hackage
  • I do not accept feature requests and pull requests. The exception is outright bugs; if you find any, please do report them.

There is a hackage package and a repo maintained by M Farkas-Dyck.