Copyright | (C) 2011-2015 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | MPTCs, GADTs |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
Documentation
class Semifunctor p (Product k k) k => Associative k p where Source
Associative * (->) (Bi * * Either) | |
Associative * (->) (Bi * * (,)) | |
(Bind m, Monad m) => Associative * (Kleisli m) (Bi * * (,)) | |
(Bind m, Monad m) => Associative * (Kleisli m) (Bi * * Either) |
kleisliAssociate :: (Monad m, Semifunctor p (Product (Kleisli m) (Kleisli m)) (Kleisli m), Associative (->) p) => Kleisli m (p `(p `(a, b)`, c)`) (p `(a, p `(b, c)`)`) Source
class Semifunctor p (Product k k) k => Disassociative k p where Source
disassociate :: k (p `(a, p `(b, c)`)`) (p `(p `(a, b)`, c)`) Source
Disassociative * (->) (Bi * * Either) | |
Disassociative * (->) (Bi * * (,)) | |
(Bind m, Monad m) => Disassociative * (Kleisli m) (Bi * * (,)) | |
(Bind m, Monad m) => Disassociative * (Kleisli m) (Bi * * Either) |
kleisliDisassociate :: (Monad m, Semifunctor p (Product (Kleisli m) (Kleisli m)) (Kleisli m), Disassociative (->) p) => Kleisli m (p `(a, p `(b, c)`)`) (p `(p `(a, b)`, c)`) Source