Data.Monoid.Coproduct
data
m
:+:
n
inL
inR
mappendL
mappendR
killL
killR
untangle