Removed Ref dependence on Monoid, because it *wasn't* a monoid (violated associativity). New operation (&) is like (<>) was; everything is slightly more elegant.