-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | throwable-exceptions gives the easy way to throw exceptions
--
-- throwable-exceptions gives the easy way to throw exceptions
@package throwable-exceptions
@version 0.1.0.5
-- | The data types creator of exceptions in the compile type.
--
-- It has the record of "cause" and "clue".
module Control.Exception.Throwable.TH
-- | Declare simple concrete exception datat type in the compile time.
--
-- exceptionName must be PascalCase (e.g>
-- IOException', IndexOutOfBoundsException. NG>
-- "ioException'", "indexOutOfBoundsException") .
--
-- And exceptionName should have the suffix of Exception.
declareException :: String -> DecsQ
-- | The mostly exceptions has the field for its cause, and its clue.
--
-- The cause is the message.
--
-- The clue is some stuff for find bugs, the clue can be omitted if you
-- don't need it. (e.g. ioException',
-- illegalArgumentException)
module Control.Exception.Throwable
-- | An other of these exceptions
data GeneralException a
GeneralException :: String -> String -> a -> GeneralException a
-- | This should be named by PascalCase for show, for example:
-- MyOperation, Database
[exceptionName] :: GeneralException a -> String
-- | The message for the cause of the exception
[exceptionCause] :: GeneralException a -> String
-- | The clue of the exception. This can be anything of Show instance
[exceptionClue] :: GeneralException a -> a
-- | A constructor for GeneralException but doesn't take the clue
generalException :: String -> String -> GeneralException ()
data IOException' a_a8P4
IOException' :: String -> a_a8P4 -> IOException' a_a8P4
[iOException'Cause] :: IOException' a_a8P4 -> String
[iOException'Clue] :: IOException' a_a8P4 -> a_a8P4
ioException' :: String -> IOException' ()
data IllegalArgumentException a_a8SE
IllegalArgumentException :: String -> a_a8SE -> IllegalArgumentException a_a8SE
[illegalArgumentExceptionCause] :: IllegalArgumentException a_a8SE -> String
[illegalArgumentExceptionClue] :: IllegalArgumentException a_a8SE -> a_a8SE
illegalArgumentException :: String -> IllegalArgumentException ()
data IndexOutOfBoundsException a_a8QR
IndexOutOfBoundsException :: String -> a_a8QR -> IndexOutOfBoundsException a_a8QR
[indexOutOfBoundsExceptionCause] :: IndexOutOfBoundsException a_a8QR -> String
[indexOutOfBoundsExceptionClue] :: IndexOutOfBoundsException a_a8QR -> a_a8QR
indexOutOfBoundsException :: String -> IndexOutOfBoundsException ()
instance GHC.Show.Show a0 => GHC.Show.Show (Control.Exception.Throwable.IllegalArgumentException a0)
instance (Data.Typeable.Internal.Typeable a0, GHC.Show.Show a0) => GHC.Exception.Exception (Control.Exception.Throwable.IllegalArgumentException a0)
instance GHC.Show.Show a0 => GHC.Show.Show (Control.Exception.Throwable.IndexOutOfBoundsException a0)
instance (Data.Typeable.Internal.Typeable a0, GHC.Show.Show a0) => GHC.Exception.Exception (Control.Exception.Throwable.IndexOutOfBoundsException a0)
instance GHC.Show.Show a0 => GHC.Show.Show (Control.Exception.Throwable.IOException' a0)
instance (Data.Typeable.Internal.Typeable a0, GHC.Show.Show a0) => GHC.Exception.Exception (Control.Exception.Throwable.IOException' a0)
instance GHC.Show.Show a => GHC.Show.Show (Control.Exception.Throwable.GeneralException a)
instance (Data.Typeable.Internal.Typeable a, GHC.Show.Show a) => GHC.Exception.Exception (Control.Exception.Throwable.GeneralException a)