úÎ ‘ g(      !"#$%&'portable provisionalEdward Kmett <ekmett@gmail.com>Option is effectively ( with a better instance of ), built off of an underlying $  instead of an underlying )F. Ideally, this type would not exist at all and we would just fix the ) intance of ( 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.4.0Data.Semigroupbase Data.MonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductOption getOption WrappedMonoid WrapMonoid unwrapMonoidLastgetLastFirstgetFirstMaxgetMaxMingetMin Semigroup<>optiondiff Data.MaybeMaybeMonoid