zero 0.1 → 0.1.1
raw patch · 3 files changed
+23/−1 lines, 3 files
Files
- CHANGELOG.md +5/−0
- src/Data/Zero.hs +17/−0
- zero.cabal +1/−1
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.1.1++- Added Any.+- Added success and failure.+ ## 0.1 - Initial revision.
src/Data/Zero.hs view
@@ -51,6 +51,15 @@ instance (Num a) => Zero (Product a) where zero = Product 0 +-- |'Zero' under boolean logical or.+newtype Any = Any { getAny :: Bool } deriving (Bounded,Eq,Generic,Ord,Read,Show)++instance Semigroup Any where+ Any a <> Any b = Any $ a || b++instance Zero Any where+ zero = Any True+ -- |'Zero' under boolean logical and. newtype All = All { getAll :: Bool} deriving (Bounded,Eq,Generic,Ord,Read,Show) @@ -70,3 +79,11 @@ instance (Semigroup a) => Zero (Success a) where zero = Success Nothing++-- |A successful value.+success :: a -> Success a+success = Success . Just++-- |A failure.+failure :: Success a+failure = Success Nothing
zero.cabal view
@@ -1,5 +1,5 @@ name: zero-version: 0.1+version: 0.1.1 synopsis: Semigroups with absorption description: 'Monoid' is a 'Semigroup' glued with a neutral element called 'mempty'. In the same idea, 'Zero' is a 'Semigroup'