Control.Monad.PlusMonad
data (m ::+ n) t
inl
inr
mapPlus
comm
assoc
assoc1
cancelLeft
cancelRight
refl
distr