packages feed

some 1.0.0.3 → 1.0.1

raw patch · 7 files changed

+34/−8 lines, 7 filesdep ~base

Dependency ranges changed: base

Files

ChangeLog.md view
@@ -1,3 +1,8 @@+# 1.0.1++- Add 'withSomeM' combinator.+  Allows to workaround: https://gitlab.haskell.org/ghc/ghc/issues/15681+ # 1.0.0.3  - One less `unsafeCoerce` (thanks to David Feuer)
some.cabal view
@@ -1,5 +1,5 @@ name:               some-version:            1.0.0.3+version:            1.0.1 stability:          provisional cabal-version:      >=1.10 build-type:         Simple
src/Data/GADT/Internal.hs view
@@ -121,16 +121,16 @@         f (Refl, rest) = return (mkSome Refl, rest)  instance (GRead a, GRead b) => GRead (Sum a b) where-    greadsPrec d s = concat-        [ readParen (d > 10)+    greadsPrec d s =+        readParen (d > 10)             (\s1 -> [ (S $ \k -> withSome r (k . InL), t)                     | ("InL", s2) <- lex s1                     , (r, t) <- greadsPrec 11 s2 ]) s-        , readParen (d > 10)+        +++        readParen (d > 10)             (\s1 -> [ (S $ \k -> withSome r (k . InR), t)                     | ("InR", s2) <- lex s1                     , (r, t) <- greadsPrec 11 s2 ]) s-        ]  ------------------------------------------------------------------------------- -- GEq@@ -363,6 +363,12 @@ -- | Traverse over argument. traverseSome :: Functor m => (forall a. f a -> m (g a)) -> Some f -> m (Some g) traverseSome f x = withSome x $ \x' -> fmap mkSome (f x')++-- | Monadic 'withSome'.+--+-- @since 1.0.1+withSomeM :: Monad m => m (Some tag) -> (forall a. tag a -> m r) -> m r+withSomeM m k = m >>= \s -> withSome s k  ------------------------------------------------------------------------------- -- Church Some instances
src/Data/Some.hs view
@@ -10,6 +10,7 @@ #endif mkSome, withSome,+withSomeM, mapSome, foldSome, traverseSome,
src/Data/Some/Church.hs view
@@ -1,13 +1,14 @@ {-# LANGUAGE CPP         #-} #if __GLASGOW_HASKELL__ >= 704-{-# LANGUAGE Safe         #-}+{-# LANGUAGE Safe        #-} #elif __GLASGOW_HASKELL__ >= 702-{-# LANGUAGE Trustworthy  #-}+{-# LANGUAGE Trustworthy #-} #endif module Data.Some.Church (     Some(..),     mkSome,     mapSome,+    withSomeM,     foldSome,     traverseSome,     ) where
src/Data/Some/GADT.hs view
@@ -13,6 +13,7 @@     Some(Some),     mkSome,     withSome,+    withSomeM,     mapSome,     foldSome,     traverseSome,@@ -82,6 +83,12 @@ -- | Eliminator. withSome :: Some tag -> (forall a. tag a -> b) -> b withSome (Some thing) some = some thing++-- | Monadic 'withSome'.+--+-- @since 1.0.1+withSomeM :: Monad m => m (Some tag) -> (forall a. tag a -> m r) -> m r+withSomeM m k = m >>= \s -> withSome s k  -- | @'flip' 'withSome'@ foldSome :: (forall a. tag a -> b) -> Some tag -> b
src/Data/Some/Newtype.hs view
@@ -3,7 +3,6 @@ {-# LANGUAGE RankNTypes      #-} #if __GLASGOW_HASKELL__ >= 801 {-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE ViewPatterns    #-} #endif #if __GLASGOW_HASKELL__ >= 706 {-# LANGUAGE PolyKinds       #-}@@ -19,6 +18,7 @@ #endif     mkSome,     withSome,+    withSomeM,     mapSome,     foldSome,     traverseSome,@@ -103,6 +103,12 @@ -- | Eliminator. withSome :: Some tag -> (forall a. tag a -> b) -> b withSome (UnsafeSome thing) some = some (unsafeCoerce thing)++-- | Monadic 'withSome'.+--+-- @since 1.0.1+withSomeM :: Monad m => m (Some tag) -> (forall a. tag a -> m r) -> m r+withSomeM m k = m >>= \s -> withSome s k  -- | @'flip' 'withSome'@ foldSome :: (forall a. tag a -> b) -> Some tag -> b