packages feed

freckle-exception 0.0.0.0 → 0.0.0.1

raw patch · 6 files changed

+41/−41 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Freckle.App.Exception.Types: backtraceDesired :: Exception e => e -> Bool
- Freckle.App.Exception.MonadThrow: catch :: (Exception e, MonadCatch m, HasCallStack) => m a -> (e -> m a) -> m a
+ Freckle.App.Exception.MonadThrow: catch :: (Exception e, HasCallStack, MonadCatch m) => m a -> (e -> m a) -> m a
- Freckle.App.Exception.MonadThrow: catchJust :: forall e b m a. (Exception e, MonadCatch m, HasCallStack) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
+ Freckle.App.Exception.MonadThrow: catchJust :: forall e b m a. (Exception e, HasCallStack, MonadCatch m) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
- Freckle.App.Exception.MonadThrow: catches :: (MonadCatch m, HasCallStack) => m a -> [ExceptionHandler m a] -> m a
+ Freckle.App.Exception.MonadThrow: catches :: (HasCallStack, MonadCatch m) => m a -> [ExceptionHandler m a] -> m a
- Freckle.App.Exception.MonadThrow: checkpointCallStack :: (MonadCatch m, HasCallStack) => m a -> m a
+ Freckle.App.Exception.MonadThrow: checkpointCallStack :: (HasCallStack, MonadCatch m) => m a -> m a
- Freckle.App.Exception.MonadThrow: fromJustNoteM :: (MonadThrow m, HasCallStack) => String -> Maybe a -> m a
+ Freckle.App.Exception.MonadThrow: fromJustNoteM :: (HasCallStack, MonadThrow m) => String -> Maybe a -> m a
- Freckle.App.Exception.MonadThrow: impossible :: (MonadThrow m, HasCallStack) => m a
+ Freckle.App.Exception.MonadThrow: impossible :: (HasCallStack, MonadThrow m) => m a
- Freckle.App.Exception.MonadThrow: throwM :: (Exception e, MonadThrow m, HasCallStack) => e -> m a
+ Freckle.App.Exception.MonadThrow: throwM :: (Exception e, HasCallStack, MonadThrow m) => e -> m a
- Freckle.App.Exception.MonadThrow: throwString :: (MonadThrow m, HasCallStack) => String -> m a
+ Freckle.App.Exception.MonadThrow: throwString :: (HasCallStack, MonadThrow m) => String -> m a
- Freckle.App.Exception.MonadThrow: try :: (Exception e, MonadCatch m, HasCallStack) => m a -> m (Either e a)
+ Freckle.App.Exception.MonadThrow: try :: (Exception e, HasCallStack, MonadCatch m) => m a -> m (Either e a)
- Freckle.App.Exception.MonadThrow: tryJust :: forall e b m a. (Exception e, MonadCatch m, HasCallStack) => (e -> Maybe b) -> m a -> m (Either b a)
+ Freckle.App.Exception.MonadThrow: tryJust :: forall e b m a. (Exception e, HasCallStack, MonadCatch m) => (e -> Maybe b) -> m a -> m (Either b a)
- Freckle.App.Exception.MonadThrow: withException :: forall e a m b. (Exception e, MonadCatch m, HasCallStack) => m a -> (e -> m b) -> m a
+ Freckle.App.Exception.MonadThrow: withException :: forall e a m b. (Exception e, HasCallStack, MonadCatch m) => m a -> (e -> m b) -> m a
- Freckle.App.Exception.MonadUnliftIO: catch :: (Exception e, MonadUnliftIO m, HasCallStack) => m a -> (e -> m a) -> m a
+ Freckle.App.Exception.MonadUnliftIO: catch :: (Exception e, HasCallStack, MonadUnliftIO m) => m a -> (e -> m a) -> m a
- Freckle.App.Exception.MonadUnliftIO: catchJust :: forall e b m a. (Exception e, MonadUnliftIO m, HasCallStack) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
+ Freckle.App.Exception.MonadUnliftIO: catchJust :: forall e b m a. (Exception e, HasCallStack, MonadUnliftIO m) => (e -> Maybe b) -> m a -> (b -> m a) -> m a
- Freckle.App.Exception.MonadUnliftIO: catches :: (MonadUnliftIO m, HasCallStack) => m a -> [ExceptionHandler m a] -> m a
+ Freckle.App.Exception.MonadUnliftIO: catches :: (HasCallStack, MonadUnliftIO m) => m a -> [ExceptionHandler m a] -> m a
- Freckle.App.Exception.MonadUnliftIO: checkpointCallStack :: (MonadUnliftIO m, HasCallStack) => m a -> m a
+ Freckle.App.Exception.MonadUnliftIO: checkpointCallStack :: (HasCallStack, MonadUnliftIO m) => m a -> m a
- Freckle.App.Exception.MonadUnliftIO: fromJustNoteM :: (MonadIO m, HasCallStack) => String -> Maybe a -> m a
+ Freckle.App.Exception.MonadUnliftIO: fromJustNoteM :: (HasCallStack, MonadIO m) => String -> Maybe a -> m a
- Freckle.App.Exception.MonadUnliftIO: impossible :: (MonadIO m, HasCallStack) => m a
+ Freckle.App.Exception.MonadUnliftIO: impossible :: (HasCallStack, MonadIO m) => m a
- Freckle.App.Exception.MonadUnliftIO: throwM :: (Exception e, MonadIO m, HasCallStack) => e -> m a
+ Freckle.App.Exception.MonadUnliftIO: throwM :: (Exception e, HasCallStack, MonadIO m) => e -> m a
- Freckle.App.Exception.MonadUnliftIO: throwString :: (MonadIO m, HasCallStack) => String -> m a
+ Freckle.App.Exception.MonadUnliftIO: throwString :: (HasCallStack, MonadIO m) => String -> m a
- Freckle.App.Exception.MonadUnliftIO: try :: (Exception e, MonadUnliftIO m, HasCallStack) => m a -> m (Either e a)
+ Freckle.App.Exception.MonadUnliftIO: try :: (Exception e, HasCallStack, MonadUnliftIO m) => m a -> m (Either e a)
- Freckle.App.Exception.MonadUnliftIO: tryJust :: forall e b m a. (Exception e, MonadUnliftIO m, HasCallStack) => (e -> Maybe b) -> m a -> m (Either b a)
+ Freckle.App.Exception.MonadUnliftIO: tryJust :: forall e b m a. (Exception e, HasCallStack, MonadUnliftIO m) => (e -> Maybe b) -> m a -> m (Either b a)
- Freckle.App.Exception.MonadUnliftIO: withException :: forall e a m b. (Exception e, MonadUnliftIO m, HasCallStack) => m a -> (e -> m b) -> m a
+ Freckle.App.Exception.MonadUnliftIO: withException :: forall e a m b. (Exception e, HasCallStack, MonadUnliftIO m) => m a -> (e -> m b) -> m a

Files

CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-exception-v0.0.0.0...main)+## [_Unreleased_](https://github.com/freckle/freckle-exception/compare/freckle-exception-v0.0.0.1...main)++## [v0.0.0.1](https://github.com/freckle/freckle-app/tree/freckle-exception-v0.0.0.1/freckle-exception)++Metadata change only; moved source repository.  ## [v0.0.0.0](https://github.com/freckle/freckle-app/tree/freckle-exception-v0.0.0.0/freckle-exception) 
freckle-exception.cabal view
@@ -1,6 +1,6 @@ cabal-version:      1.18 name:               freckle-exception-version:            0.0.0.0+version:            0.0.0.1 license:            MIT license-file:       LICENSE maintainer:         Freckle Education
library/Freckle/App/Exception.hs view
@@ -2,7 +2,7 @@   ( -- * Re-export of our current preferred implementation module      -- | Currently 'MonadUnliftIO'-based-      module Freckle.App.Exception.MonadUnliftIO+    module Freckle.App.Exception.MonadUnliftIO      -- * Helpers that are agnostic to either implementation   , annotatedExceptionMessage
library/Freckle/App/Exception/MonadThrow.hs view
@@ -20,40 +20,38 @@   , module Freckle.App.Exception.Types   ) where -import Freckle.App.Exception.Types- import Control.Applicative (pure) import Control.Exception.Annotated (checkpoint, checkpointMany)+import Control.Exception.Annotated qualified as Annotated import Control.Monad (void) import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)+import Control.Monad.Catch qualified import Data.Either (Either (..)) import Data.Function (($), (.)) import Data.Functor (fmap, (<$>)) import Data.Maybe (Maybe, maybe) import Data.String (String)+import Freckle.App.Exception.Types import GHC.IO.Exception (userError) import GHC.Stack (withFrozenCallStack) -import Control.Exception.Annotated qualified as Annotated-import Control.Monad.Catch qualified- -- Throws an exception, wrapped in 'AnnotatedException' which includes a call stack-throwM :: forall e m a. (Exception e, MonadThrow m, HasCallStack) => e -> m a+throwM :: forall e m a. (Exception e, HasCallStack, MonadThrow m) => e -> m a throwM e = withFrozenCallStack $ Annotated.throw e -throwString :: forall m a. (MonadThrow m, HasCallStack) => String -> m a+throwString :: forall m a. (HasCallStack, MonadThrow m) => String -> m a throwString s = withFrozenCallStack $ throwM $ userError s  fromJustNoteM-  :: forall m a. (MonadThrow m, HasCallStack) => String -> Maybe a -> m a+  :: forall m a. (HasCallStack, MonadThrow m) => String -> Maybe a -> m a fromJustNoteM err = withFrozenCallStack $ maybe (throwString err) pure -impossible :: forall m a. (MonadThrow m, HasCallStack) => m a+impossible :: forall m a. (HasCallStack, MonadThrow m) => m a impossible = withFrozenCallStack $ throwString "Impossible"  catch   :: forall e m a-   . (Exception e, MonadCatch m, HasCallStack)+   . (Exception e, HasCallStack, MonadCatch m)   => m a   -> (e -> m a)   -> m a@@ -61,7 +59,7 @@  catchJust   :: forall e b m a-   . (Exception e, MonadCatch m, HasCallStack)+   . (Exception e, HasCallStack, MonadCatch m)   => (e -> Maybe b)   -> m a   -> (b -> m a)@@ -72,7 +70,7 @@  catches   :: forall m a-   . (MonadCatch m, HasCallStack)+   . (HasCallStack, MonadCatch m)   => m a   -- ^ Action to run   -> [ExceptionHandler m a]@@ -80,14 +78,14 @@   --   with a type of either @e@ or @'AnnotatedException' e@   -> m a catches action handlers =-  withFrozenCallStack $-    Annotated.catches+  withFrozenCallStack+    $ Annotated.catches       action       (fmap (\case (ExceptionHandler f) -> Annotated.Handler f) handlers)  try   :: forall e m a-   . (Exception e, MonadCatch m, HasCallStack)+   . (Exception e, HasCallStack, MonadCatch m)   => m a   -- ^ Action to run   -> m (Either e a)@@ -97,7 +95,7 @@  tryJust   :: forall e b m a-   . (Exception e, MonadCatch m, HasCallStack)+   . (Exception e, HasCallStack, MonadCatch m)   => (e -> Maybe b)   -> m a   -- ^ Action to run@@ -108,7 +106,7 @@  withException   :: forall e a m b-   . (Exception e, MonadCatch m, HasCallStack)+   . (Exception e, HasCallStack, MonadCatch m)   => m a   -> (e -> m b)   -> m a@@ -121,7 +119,7 @@ --   apply this function to augment its exceptions with call stacks. checkpointCallStack   :: forall m a-   . (MonadCatch m, HasCallStack)+   . (HasCallStack, MonadCatch m)   => m a   -- ^ Action that might throw whatever types of exceptions   -> m a
library/Freckle/App/Exception/MonadUnliftIO.hs view
@@ -20,41 +20,39 @@   , module Freckle.App.Exception.Types   ) where -import Freckle.App.Exception.Types- import Control.Applicative (pure) import Control.Exception.Annotated.UnliftIO (checkpoint, checkpointMany)+import Control.Exception.Annotated.UnliftIO qualified as Annotated import Control.Monad (void) import Data.Either (Either (..)) import Data.Function (($), (.)) import Data.Functor (fmap, (<$>)) import Data.Maybe (Maybe, maybe) import Data.String (String)+import Freckle.App.Exception.Types import GHC.IO.Exception (userError) import GHC.Stack (withFrozenCallStack) import System.IO (IO) import UnliftIO (MonadIO, MonadUnliftIO)--import Control.Exception.Annotated.UnliftIO qualified as Annotated import UnliftIO.Exception qualified  -- Throws an exception, wrapped in 'AnnotatedException' which includes a call stack-throwM :: forall e m a. (Exception e, MonadIO m, HasCallStack) => e -> m a+throwM :: forall e m a. (Exception e, HasCallStack, MonadIO m) => e -> m a throwM e = withFrozenCallStack $ Annotated.throw e -throwString :: forall m a. (MonadIO m, HasCallStack) => String -> m a+throwString :: forall m a. (HasCallStack, MonadIO m) => String -> m a throwString s = withFrozenCallStack $ throwM $ userError s  fromJustNoteM-  :: forall m a. (MonadIO m, HasCallStack) => String -> Maybe a -> m a+  :: forall m a. (HasCallStack, MonadIO m) => String -> Maybe a -> m a fromJustNoteM err = withFrozenCallStack $ maybe (throwString err) pure -impossible :: forall m a. (MonadIO m, HasCallStack) => m a+impossible :: forall m a. (HasCallStack, MonadIO m) => m a impossible = withFrozenCallStack $ throwString "Impossible"  catch   :: forall e m a-   . (Exception e, MonadUnliftIO m, HasCallStack)+   . (Exception e, HasCallStack, MonadUnliftIO m)   => m a   -> (e -> m a)   -> m a@@ -62,7 +60,7 @@  catchJust   :: forall e b m a-   . (Exception e, MonadUnliftIO m, HasCallStack)+   . (Exception e, HasCallStack, MonadUnliftIO m)   => (e -> Maybe b)   -> m a   -> (b -> m a)@@ -73,7 +71,7 @@  catches   :: forall m a-   . (MonadUnliftIO m, HasCallStack)+   . (HasCallStack, MonadUnliftIO m)   => m a   -- ^ Action to run   -> [ExceptionHandler m a]@@ -81,14 +79,14 @@   --   with a type of either @e@ or @'AnnotatedException' e@   -> m a catches action handlers =-  withFrozenCallStack $-    Annotated.catches+  withFrozenCallStack+    $ Annotated.catches       action       (fmap (\case (ExceptionHandler f) -> Annotated.Handler f) handlers)  try   :: forall e m a-   . (Exception e, MonadUnliftIO m, HasCallStack)+   . (Exception e, HasCallStack, MonadUnliftIO m)   => m a   -- ^ Action to run   -> m (Either e a)@@ -98,7 +96,7 @@  tryJust   :: forall e b m a-   . (Exception e, MonadUnliftIO m, HasCallStack)+   . (Exception e, HasCallStack, MonadUnliftIO m)   => (e -> Maybe b)   -> m a   -- ^ Action to run@@ -109,7 +107,7 @@  withException   :: forall e a m b-   . (Exception e, MonadUnliftIO m, HasCallStack)+   . (Exception e, HasCallStack, MonadUnliftIO m)   => m a   -> (e -> m b)   -> m a@@ -122,12 +120,12 @@ --   apply this function to augment its exceptions with call stacks. checkpointCallStack   :: forall m a-   . (MonadUnliftIO m, HasCallStack)+   . (HasCallStack, MonadUnliftIO m)   => m a   -- ^ Action that might throw whatever types of exceptions   -> m a   -- ^ Action that only throws 'AnnotatedException',   --   where the annotations include a call stack checkpointCallStack action =-  withFrozenCallStack $-    Annotated.checkpointCallStack action+  withFrozenCallStack+    $ Annotated.checkpointCallStack action
package.yaml view
@@ -1,5 +1,5 @@ name: freckle-exception-version: 0.0.0.0+version: 0.0.0.1 maintainer: Freckle Education category: Exceptions github: freckle/freckle-app