notzero 0.0.1 → 0.0.2
raw patch · 4 files changed
+20/−3 lines, 4 files
Files
- changelog +5/−2
- notzero.cabal +1/−1
- src/Data/AccNotZeroOr.hs +7/−0
- src/Data/NotZeroOr.hs +7/−0
changelog view
@@ -1,4 +1,7 @@-0.0.1+0.0.2 -Initial version+* Semigroup instances on `NotZeroOr` and `AccNotZeroOr`. +0.0.1++* Initial version
notzero.cabal view
@@ -1,5 +1,5 @@ name: notzero-version: 0.0.1+version: 0.0.2 license: BSD3 license-file: LICENSE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ> <dibblego>
src/Data/AccNotZeroOr.hs view
@@ -18,6 +18,7 @@ import Data.Functor.Identity(Identity(Identity)) import Data.NotZero(NotZero) import Data.NotZeroOr(NotZeroOr(IsNotZero, OrNotZero), NotZeroOrT, isoNumber, isoNotZeroOrT)+import Data.Semigroup(Semigroup((<>))) import Prelude(Num) data AccNotZeroOr f a x =@@ -89,6 +90,12 @@ Iso (OneNotZeroOr a x) (OneNotZeroOr b y) (NotZeroOrT a Identity x) (NotZeroOrT b Identity y) isoOneNotZeroOrT = isoOneNotZeroOr . isoNotZeroOrT++instance Semigroup (AccNotZeroOr f a x) where+ OrAccNotZero x <> _ =+ OrAccNotZero x+ IsAccNotZero _ <> y =+ y instance Functor f => Functor (AccNotZeroOr f a) where fmap _ (IsAccNotZero z) =
src/Data/NotZeroOr.hs view
@@ -25,6 +25,7 @@ import Data.Maybe(Maybe(Nothing, Just)) import Data.NotZero(NotZero, notZero, getNotZero) import Data.Ord(Ord)+import Data.Semigroup(Semigroup((<>))) import Prelude(Show, Num) data NotZeroOr a x =@@ -91,6 +92,12 @@ Nothing -> OrNotZero () Just z -> IsNotZero z) +instance Semigroup (NotZeroOr a x) where+ OrNotZero x <> _ =+ OrNotZero x+ IsNotZero _ <> y =+ y+ instance Functor (NotZeroOr a) where fmap _ (IsNotZero z) = IsNotZero z