generic-maybe 0.1.0.1 → 0.1.1.0
raw patch · 2 files changed
+14/−14 lines, 2 files
Files
- generic-maybe.cabal +3/−3
- src/Generics/Maybe.hs +11/−11
generic-maybe.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: generic-maybe-version: 0.1.0.1+version: 0.1.1.0 synopsis: A generic version of Data.Maybe description: This module is a drop in replacement for 'Data.Maybe'. It generalizes@@ -20,10 +20,10 @@ After which you can use the functions, like your type was 'Data.Maybe.Maybe' . >> fromMaybe 'a' Fail- >Success 'a'+ >'a' . >> fromMaybe 'a' $ Success 'b'- >Success 'b'+ >'b' homepage: https://github.com/jfischoff/generic-maybe license: BSD3 license-file: LICENSE
src/Generics/Maybe.hs view
@@ -75,32 +75,32 @@ -- > fromMaybe :: a -> Maybe a -> Maybe a -- -- >>> fromMaybe 'a' Nothing--- Just 'a'+-- 'a' -- -- >>> fromMaybe 'a' $ Just 'b'--- Just 'b'+-- 'b' -- -- >>> fromMaybe 'a' Fail--- Success 'a'+-- 'a' -- -- >>> fromMaybe 'a' $ Success 'b'--- Success 'b'+-- 'b' -- -- >>> fromMaybe Zero Zero--- Succ Zero+-- Zero -- -- >>> fromMaybe Zero $ Succ (Succ Zero)--- Succ (Succ Zero)+-- Succ Zero fromMaybe :: MaybeLike maybe a d u m b y- => a -> maybe -> maybe-fromMaybe x = over gsimple (fromMaybe' x) + => a -> maybe -> a+fromMaybe x = fromMaybe' x . view gsimple fromMaybe' :: a -> (U1 :+: Rec0 a) b- -> (U1 :+: Rec0 a) b+ -> a fromMaybe' def = \case - L1 U1 -> R1 $ K1 def- x -> x + L1 U1 -> def+ R1 (K1 x) -> x -- | A generalized version of 'Data.Maybe.maybe' -- -- > maybe :: b -> (a -> b) -> Maybe a -> Maybe b