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 |
Language | Haskell98 |
Data.Semifunctor.Associative
Description
Documentation
class Semifunctor p (Product k k) k => Associative k p where #
Minimal complete definition
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))) #
class Semifunctor p (Product k k) k => Disassociative k p where #
Minimal complete definition
Methods
disassociate :: k (p '(a, p '(b, c))) (p '(p '(a, b), c)) #
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)) #