class Bifunctor p => Assoc p
"Semigroup-y" Bifunctors.
'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?