Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrkkrp/tagged-identity

Trivial monad transformer that allows identical monad stacks have different types
https://github.com/mrkkrp/tagged-identity

haskell monad-transformers phantom-types

Last synced: 10 days ago
JSON representation

Trivial monad transformer that allows identical monad stacks have different types

Awesome Lists containing this project

README

        

# Tagged Identity

[![License BSD3](https://img.shields.io/badge/license-BSD3-brightgreen.svg)](http://opensource.org/licenses/BSD-3-Clause)
[![Hackage](https://img.shields.io/hackage/v/tagged-identity.svg?style=flat)](https://hackage.haskell.org/package/tagged-identity)
[![Stackage Nightly](http://stackage.org/package/tagged-identity/badge/nightly)](http://stackage.org/nightly/package/tagged-identity)
[![Stackage LTS](http://stackage.org/package/tagged-identity/badge/lts)](http://stackage.org/lts/package/tagged-identity)
![CI](https://github.com/mrkkrp/tagged-identity/workflows/CI/badge.svg?branch=master)

The library provides a monad transformer that works just like `IdentityT`,
but can be tagged at the type level. This allows us to work with monad
stacks as usual, except we can make two identical monad stacks to have
different types. The main application for this is, of course, the ability to
have different instances for otherwise identical stacks without having to do
`newtype` wrapping.

## Contribution

Issues, bugs, and questions may be reported in [the GitHub issue tracker for
this project](https://github.com/mrkkrp/tagged-identity/issues).

Pull requests are also welcome.

## License

Copyright © 2016–present Mark Karpov

Distributed under BSD 3 clause license.