strict-base-types 0.2.3 → 0.3.0
raw patch · 2 files changed
+14/−2 lines, 2 files
Files
- src/Data/Maybe/Strict.hs +13/−1
- strict-base-types.cabal +1/−1
src/Data/Maybe/Strict.hs view
@@ -49,7 +49,7 @@ import Prelude hiding (Maybe (..), maybe) import qualified Prelude as L -import Control.Applicative ((<$>))+import Control.Applicative (pure, (<$>)) import Control.DeepSeq (NFData (..)) import Control.Lens.Iso (Strict (..), iso) import Control.Lens.Prism (Prism, Prism', prism, prism')@@ -61,6 +61,8 @@ import Data.Data (Data (..), Typeable1 (..)) #endif import Data.Monoid (Monoid (..))+import Data.Foldable (Foldable (..))+import Data.Traversable (Traversable (..)) import Data.Strict.Maybe (Maybe (Nothing, Just), fromJust, fromMaybe, isJust, isNothing, maybe) #if __GLASGOW_HASKELL__ >= 706@@ -97,6 +99,16 @@ Nothing `mappend` _ = Nothing _ `mappend` Nothing = Nothing Just x1 `mappend` Just x2 = Just (x1 `mappend` x2)++-- foldable+instance Foldable Maybe where+ foldMap _ Nothing = mempty+ foldMap f (Just x) = f x++-- traversable+instance Traversable Maybe where+ traverse _ Nothing = pure Nothing+ traverse f (Just x) = Just <$> f x -- deepseq instance NFData a => NFData (Maybe a) where
strict-base-types.cabal view
@@ -1,5 +1,5 @@ Name: strict-base-types-Version: 0.2.3+Version: 0.3.0 Synopsis: Strict variants of the types provided in base. Category: Data Description: