úÎ YI(      !"#$%&'portable provisionalEdward Kmett <ekmett@gmail.com>Use  ( a) -- to get the behavior of Data.Monoid.Last Use  ( a) -- to get the behavior of Data.Monoid.First  !"#$%&'This lets you use a 'difference list' of a semigroup as a Monoid. (  !"#$%&'($%!"#   &'  !"#"#$%%&'(         !semigroups-0.3.4Data.Semigroupbase Data.MonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductOption getOption WrappedMonoid WrapMonoid unwrapMonoidLastgetLastFirstgetFirstMaxgetMaxMingetMin Semigroup<>optiondiff