optional-args 1.0.1 → 1.0.2
raw patch · 2 files changed
+10/−1 lines, 2 filesdep +semigroupsdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: semigroups
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Data.Optional: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Data.Optional.Optional a)
- Data.Optional: empty :: Alternative f => forall a. f a
+ Data.Optional: empty :: Alternative f => forall a. () => f a
- Data.Optional: pure :: Applicative f => forall a. a -> f a
+ Data.Optional: pure :: Applicative f => forall a. () => a -> f a
Files
- optional-args.cabal +3/−1
- src/Data/Optional.hs +7/−0
optional-args.cabal view
@@ -1,5 +1,5 @@ Name: optional-args-Version: 1.0.1+Version: 1.0.2 Cabal-Version: >=1.10 Build-Type: Simple License: BSD3@@ -21,6 +21,8 @@ Library HS-Source-Dirs: src Build-Depends: base >= 4.5 && < 5+ if !impl(ghc >= 8.0)+ Build-Depends: semigroups >= 0.16 && < 0.19 Exposed-Modules: Data.Optional GHC-Options: -O2 -Wall Default-Language: Haskell2010
src/Data/Optional.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveTraversable #-}@@ -97,6 +98,7 @@ import Data.Foldable (Foldable) import Data.Traversable (Traversable) import Data.Monoid (Monoid(..))+import Data.Semigroup (Semigroup(..)) import Data.String (IsString(..)) -- | A function argument that has a `Default` value@@ -125,10 +127,15 @@ mzero = empty mplus = (<|>) +instance Semigroup a => Semigroup (Optional a) where+ (<>) = liftA2 (<>)+ instance Monoid a => Monoid (Optional a) where mempty = pure mempty +#if !(MIN_VERSION_base(4,11,0)) mappend = liftA2 mappend+#endif instance IsString a => IsString (Optional a) where fromString str = pure (fromString str)