úÎ M #(      !"#$%&'portable provisionalEdward Kmett <ekmett@gmail.com>Option is effectively ( with a better instance of ), built off of an underlying $  instead of an underlying ). 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.4.2Data.Semigroupbase Data.MonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductOption getOption WrappedMonoid WrapMonoid unwrapMonoidLastgetLastFirstgetFirstMaxgetMaxMingetMin Semigroup<>optiondiff Data.MaybeMaybeMonoid