heart-core 0.1.0 → 0.1.1
raw patch · 3 files changed
+12/−7 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Heart.Core.Prelude: cast :: (Typeable a, Typeable b) => a -> Maybe b
+ Heart.Core.Prelude: catch :: (MonadCatch m, Exception e) => m a -> (e -> m a) -> m a
+ Heart.Core.Prelude: catchJust :: (MonadCatch m, Exception e) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
+ Heart.Core.Prelude: class MonadThrow m => MonadCatch (m :: Type -> Type)
+ Heart.Core.Prelude: class MonadCatch m => MonadMask (m :: Type -> Type)
+ Heart.Core.Prelude: data SomeException
+ Heart.Core.Prelude: generalBracket :: MonadMask m => m a -> (a -> ExitCase b -> m c) -> (a -> m b) -> m (b, c)
+ Heart.Core.Prelude: mask :: MonadMask m => ((forall a. () => m a -> m a) -> m b) -> m b
+ Heart.Core.Prelude: uninterruptibleMask :: MonadMask m => ((forall a. () => m a -> m a) -> m b) -> m b
+ Heart.Core.RIO: instance Control.Monad.Catch.MonadCatch (Heart.Core.RIO.RIO env)
+ Heart.Core.RIO: instance Control.Monad.Catch.MonadMask (Heart.Core.RIO.RIO env)
Files
- heart-core.cabal +3/−3
- src/Heart/Core/Prelude.hs +8/−3
- src/Heart/Core/RIO.hs +1/−1
heart-core.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: c4d8800e6e2a4c22bd77a058f3ad0baa8e722bee6f6d57446b5ee0382cafbde9+-- hash: 507050e1190f946f7bd7befa6b9d911d927f5f1737a960c724047c1a6956bbe1 name: heart-core-version: 0.1.0+version: 0.1.1 synopsis: An opinionated library prelude in the UnliftIO style description: Please see the README on GitHub at <https://github.com/ejconlon/heart-core#readme> category: Prelude@@ -42,7 +42,7 @@ Paths_heart_core hs-source-dirs: src- default-extensions: ConstraintKinds DataKinds DeriveFunctor DeriveFoldable DeriveGeneric DeriveTraversable DerivingStrategies FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf NoImplicitPrelude OverloadedStrings Rank2Types StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies+ default-extensions: ConstraintKinds DataKinds DeriveFunctor DeriveFoldable DeriveGeneric DeriveTraversable DerivingStrategies GeneralizedNewtypeDeriving NoImplicitPrelude TypeFamilies ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints -fno-warn-unused-top-binds build-depends: aeson >=1.4
src/Heart/Core/Prelude.hs view
@@ -18,8 +18,10 @@ , Lens' , ListT (..) , Map+ , MonadCatch (..) , MonadFail (..) , MonadIO (..)+ , MonadMask (..) , MonadReader (..) , MonadThrow (..) , MonadTrans (..)@@ -31,6 +33,7 @@ , Seq (..) , Set , Setter'+ , SomeException , Text , ToJSON (..) , ToJSONKey@@ -39,6 +42,8 @@ , Void , ap , asum+ , catchJust+ , cast , coerce , coerced , foldl'@@ -59,11 +64,11 @@ ) where import Control.Applicative (Alternative (..))-import Control.Exception (Exception (..))+import Control.Exception (Exception (..), SomeException) import Control.Lens (Getter, Iso', Lens', Prism', Setter', coerced, iso, over, review, set, simple, view) import Control.Lens.TH (makeLenses, makePrisms) import Control.Monad (ap, foldM, unless, when)-import Control.Monad.Catch (MonadThrow (..))+import Control.Monad.Catch (MonadCatch (..), MonadMask (..), MonadThrow (..), catchJust) import Control.Monad.Fail (MonadFail (..)) import Control.Monad.Identity (Identity (..)) import Control.Monad.IO.Class (MonadIO (..))@@ -86,7 +91,7 @@ import Data.String (IsString) import Data.Text (Text) import Data.Traversable (for)-import Data.Typeable (Typeable)+import Data.Typeable (Typeable, cast) import Data.Void (Void) import GHC.Generics (Generic, Rep) import GHC.Stack (HasCallStack)
src/Heart/Core/RIO.hs view
@@ -9,7 +9,7 @@ import Heart.Core.Prelude newtype RIO env a = RIO { unRIO :: ReaderT env IO a }- deriving (Functor, Applicative, Monad, MonadReader env, MonadIO, MonadThrow, MonadFail)+ deriving (Functor, Applicative, Monad, MonadReader env, MonadIO, MonadThrow, MonadFail, MonadCatch, MonadMask) instance MonadUnliftIO (RIO env) where askUnliftIO = RIO (ReaderT (\r -> withUnliftIO (\u -> return (UnliftIO (unliftIO u . flip runReaderT r . unRIO)))))