assoc-1.1: swap and assoc: Symmetric and Semigroupy Bifunctors
Safe HaskellSafe
LanguageHaskell2010

Data.Bifunctor.Assoc

Synopsis

Documentation

class Bifunctor p => Assoc p where Source #

"Semigroup-y" Bifunctor s.

assoc  . unassoc  = id 
unassoc  . assoc  = id 
assoc  . bimap  (bimap  f g) h = bimap  f (bimap  g h) . assoc 

This library doesn't provide Monoidal class, with left and right unitors. Are they useful in practice?

Methods

assoc :: p (p a b) c -> p a (p b c) Source #

unassoc :: p a (p b c) -> p (p a b) c Source #

Instances

Instances details
Instance details

Defined in Data.Bifunctor.Assoc

Methods

assoc :: Either (Either a b) c -> Either a (Either b c) Source #

unassoc :: Either a (Either b c) -> Either (Either a b) c Source #

Instance details

Defined in Data.Bifunctor.Assoc

Methods

assoc :: ((a, b), c) -> (a, (b, c)) Source #

unassoc :: (a, (b, c)) -> ((a, b), c) Source #

Instance details

Defined in Data.Bifunctor.Assoc

Methods

assoc :: Const (Const a b) c -> Const a (Const b c) Source #

unassoc :: Const a (Const b c) -> Const (Const a b) c Source #

Instance details

Defined in Data.Bifunctor.Assoc

Methods

assoc :: Tagged (Tagged a b) c -> Tagged a (Tagged b c) Source #

unassoc :: Tagged a (Tagged b c) -> Tagged (Tagged a b) c Source #

AltStyle によって変換されたページ (->オリジナル) /