debug module
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
Exception Handling
|
||||
==================
|
||||
|
||||
#### MonadError
|
||||
|
||||
```haskell
|
||||
class Monad m => MonadError e (m :: * -> *) | m -> e where
|
||||
throwError :: e -> m a
|
||||
catchError :: m a -> (e -> m a) -> m a
|
||||
```
|
||||
|
||||
```haskell
|
||||
type Except e = ExceptT e Identity
|
||||
```
|
||||
|
||||
|
||||
```haskell
|
||||
newtype ExceptT e (m :: * -> *) a
|
||||
= Control.Monad.Trans.Except.ExceptT (m (Either e a))
|
||||
```
|
||||
|
||||
|
||||
```haskell
|
||||
throwError :: MonadError e m => e -> m a
|
||||
```
|
||||
|
||||
```haskell
|
||||
catchError :: MonadError e m => m a -> (e -> m a) -> m a
|
||||
```
|
||||
|
||||
```haskell
|
||||
runExcept :: Except e a -> Either e a
|
||||
```
|
||||
|
||||
```haskell
|
||||
runExceptT :: ExceptT e m a -> m (Either e a)
|
||||
```
|
||||
|
||||
#### Exceptions
|
||||
|
||||
```haskell
|
||||
class (Typeable e, Show e) => Exception e where
|
||||
toException :: e -> SomeException
|
||||
fromException :: SomeException -> Maybe e
|
||||
GHC.Exception.displayException :: e -> String
|
||||
```
|
||||
|
||||
```haskell
|
||||
throwIO :: (MonadIO m, Exception e) => e -> m a
|
||||
```
|
||||
|
||||
```haskell
|
||||
throwTo :: (MonadIO m, Exception e) => ThreadId -> e -> m ()
|
||||
```
|
||||
|
||||
```haskell
|
||||
throwSTM :: Exception e => e -> STM a
|
||||
```
|
||||
|
||||
```haskell
|
||||
throwError :: MonadError e m => e -> m a
|
||||
```
|
||||
|
||||
#### Panic
|
||||
|
||||
```haskell
|
||||
data FatalError = FatalError {msg :: Text}
|
||||
```
|
||||
|
||||
```haskell
|
||||
panic :: Text -> a
|
||||
```
|
||||
Reference in New Issue
Block a user