Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module MonoidSemigroup where
- data Optional a =
- Nada
- | Only a
- deriving (Eq, Show)
- instance Semigroup a => Semigroup (Optional a) where
- Only a <> Nada = Only a
- Nada <> Only a = Only a
- Only a <> Only b = Only (a <> b)
- instance Semigroup a => Monoid (Optional a) where
- mempty = Nada
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement