packages feed

bugsnag-types 1.1.0.1 → 1.1.1.0

raw patch · 25 files changed

+579/−262 lines, 25 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Bugsnag.Types.Application: defaultApplication :: Application
+ Data.Bugsnag.Types.Breadcrumb: defaultBreadcrumb :: Text -> Text -> BreadcrumbType -> Breadcrumb
+ Data.Bugsnag.Types.DependentNotifier: defaultDependentNotifier :: Text -> Text -> Text -> DependentNotifier
+ Data.Bugsnag.Types.Device: defaultDevice :: Device
+ Data.Bugsnag.Types.Event: defaultEvent :: [Exception] -> Event
+ Data.Bugsnag.Types.Exception: defaultException :: Text -> [Stackframe] -> Exception
+ Data.Bugsnag.Types.FeatureFlag: defaultFeatureFlag :: Text -> FeatureFlag
+ Data.Bugsnag.Types.Notifier: defaultNotifier :: Text -> Text -> Text -> Notifier
+ Data.Bugsnag.Types.Payload: defaultPayload :: Text -> Notifier -> [Event] -> Payload
+ Data.Bugsnag.Types.Prelude: (!!) :: HasCallStack => [a] -> Int -> a
+ Data.Bugsnag.Types.Prelude: ($!) :: (a -> b) -> a -> b
+ Data.Bugsnag.Types.Prelude: ($) :: (a -> b) -> a -> b
+ Data.Bugsnag.Types.Prelude: (&&) :: Bool -> Bool -> Bool
+ Data.Bugsnag.Types.Prelude: (*) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (**) :: Floating a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (*>) :: Applicative f => f a -> f b -> f b
+ Data.Bugsnag.Types.Prelude: (+) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (++) :: [a] -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: (-) :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (.) :: (b -> c) -> (a -> b) -> a -> c
+ Data.Bugsnag.Types.Prelude: (/) :: Fractional a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (/=) :: Eq a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<$) :: Functor f => a -> f b -> f a
+ Data.Bugsnag.Types.Prelude: (<$>) :: Functor f => (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: (<) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<*) :: Applicative f => f a -> f b -> f a
+ Data.Bugsnag.Types.Prelude: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: (<=) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (<>) :: Semigroup a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ Data.Bugsnag.Types.Prelude: (==) :: Eq a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>=) :: Ord a => a -> a -> Bool
+ Data.Bugsnag.Types.Prelude: (>>) :: Monad m => m a -> m b -> m b
+ Data.Bugsnag.Types.Prelude: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ Data.Bugsnag.Types.Prelude: (^) :: (Num a, Integral b) => a -> b -> a
+ Data.Bugsnag.Types.Prelude: (^^) :: (Fractional a, Integral b) => a -> b -> a
+ Data.Bugsnag.Types.Prelude: (||) :: Bool -> Bool -> Bool
+ Data.Bugsnag.Types.Prelude: EQ :: Ordering
+ Data.Bugsnag.Types.Prelude: False :: Bool
+ Data.Bugsnag.Types.Prelude: GT :: Ordering
+ Data.Bugsnag.Types.Prelude: Just :: a -> Maybe a
+ Data.Bugsnag.Types.Prelude: LT :: Ordering
+ Data.Bugsnag.Types.Prelude: Left :: a -> Either a b
+ Data.Bugsnag.Types.Prelude: Nothing :: Maybe a
+ Data.Bugsnag.Types.Prelude: Right :: b -> Either a b
+ Data.Bugsnag.Types.Prelude: True :: Bool
+ Data.Bugsnag.Types.Prelude: abs :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: acos :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: acosh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: and :: Foldable t => t Bool -> Bool
+ Data.Bugsnag.Types.Prelude: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: appendFile :: FilePath -> String -> IO ()
+ Data.Bugsnag.Types.Prelude: asTypeOf :: a -> a -> a
+ Data.Bugsnag.Types.Prelude: asin :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: asinh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: atan :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: atan2 :: RealFloat a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: atanh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: break :: (a -> Bool) -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: ceiling :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: class a ~# b => (a :: k) ~ (b :: k)
+ Data.Bugsnag.Types.Prelude: class Functor f => Applicative (f :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Bounded a
+ Data.Bugsnag.Types.Prelude: class Enum a
+ Data.Bugsnag.Types.Prelude: class Eq a
+ Data.Bugsnag.Types.Prelude: class Fractional a => Floating a
+ Data.Bugsnag.Types.Prelude: class Foldable (t :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Num a => Fractional a
+ Data.Bugsnag.Types.Prelude: class Functor (f :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class (Real a, Enum a) => Integral a
+ Data.Bugsnag.Types.Prelude: class Applicative m => Monad (m :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Monad m => MonadFail (m :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: class Semigroup a => Monoid a
+ Data.Bugsnag.Types.Prelude: class Num a
+ Data.Bugsnag.Types.Prelude: class Eq a => Ord a
+ Data.Bugsnag.Types.Prelude: class Read a
+ Data.Bugsnag.Types.Prelude: class (Num a, Ord a) => Real a
+ Data.Bugsnag.Types.Prelude: class (RealFrac a, Floating a) => RealFloat a
+ Data.Bugsnag.Types.Prelude: class (Real a, Fractional a) => RealFrac a
+ Data.Bugsnag.Types.Prelude: class Semigroup a
+ Data.Bugsnag.Types.Prelude: class Show a
+ Data.Bugsnag.Types.Prelude: class (Functor t, Foldable t) => Traversable (t :: Type -> Type)
+ Data.Bugsnag.Types.Prelude: compare :: Ord a => a -> a -> Ordering
+ Data.Bugsnag.Types.Prelude: concat :: Foldable t => t [a] -> [a]
+ Data.Bugsnag.Types.Prelude: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ Data.Bugsnag.Types.Prelude: const :: a -> b -> a
+ Data.Bugsnag.Types.Prelude: cos :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: cosh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: curry :: ((a, b) -> c) -> a -> b -> c
+ Data.Bugsnag.Types.Prelude: cycle :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: data Bool
+ Data.Bugsnag.Types.Prelude: data Char
+ Data.Bugsnag.Types.Prelude: data Double
+ Data.Bugsnag.Types.Prelude: data Either a b
+ Data.Bugsnag.Types.Prelude: data Float
+ Data.Bugsnag.Types.Prelude: data IO a
+ Data.Bugsnag.Types.Prelude: data Int
+ Data.Bugsnag.Types.Prelude: data Integer
+ Data.Bugsnag.Types.Prelude: data Maybe a
+ Data.Bugsnag.Types.Prelude: data Ordering
+ Data.Bugsnag.Types.Prelude: data Word
+ Data.Bugsnag.Types.Prelude: decodeFloat :: RealFloat a => a -> (Integer, Int)
+ Data.Bugsnag.Types.Prelude: div :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: divMod :: Integral a => a -> a -> (a, a)
+ Data.Bugsnag.Types.Prelude: drop :: Int -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: dropWhile :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: either :: (a -> c) -> (b -> c) -> Either a b -> c
+ Data.Bugsnag.Types.Prelude: elem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: encodeFloat :: RealFloat a => Integer -> Int -> a
+ Data.Bugsnag.Types.Prelude: enumFrom :: Enum a => a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromThen :: Enum a => a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromThenTo :: Enum a => a -> a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: enumFromTo :: Enum a => a -> a -> [a]
+ Data.Bugsnag.Types.Prelude: error :: HasCallStack => [Char] -> a
+ Data.Bugsnag.Types.Prelude: errorWithoutStackTrace :: [Char] -> a
+ Data.Bugsnag.Types.Prelude: even :: Integral a => a -> Bool
+ Data.Bugsnag.Types.Prelude: exp :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: exponent :: RealFloat a => a -> Int
+ Data.Bugsnag.Types.Prelude: fail :: MonadFail m => String -> m a
+ Data.Bugsnag.Types.Prelude: filter :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: flip :: (a -> b -> c) -> b -> a -> c
+ Data.Bugsnag.Types.Prelude: floatDigits :: RealFloat a => a -> Int
+ Data.Bugsnag.Types.Prelude: floatRadix :: RealFloat a => a -> Integer
+ Data.Bugsnag.Types.Prelude: floatRange :: RealFloat a => a -> (Int, Int)
+ Data.Bugsnag.Types.Prelude: floor :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: fmap :: Functor f => (a -> b) -> f a -> f b
+ Data.Bugsnag.Types.Prelude: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
+ Data.Bugsnag.Types.Prelude: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
+ Data.Bugsnag.Types.Prelude: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Data.Bugsnag.Types.Prelude: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
+ Data.Bugsnag.Types.Prelude: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Data.Bugsnag.Types.Prelude: fromEnum :: Enum a => a -> Int
+ Data.Bugsnag.Types.Prelude: fromInteger :: Num a => Integer -> a
+ Data.Bugsnag.Types.Prelude: fromIntegral :: (Integral a, Num b) => a -> b
+ Data.Bugsnag.Types.Prelude: fromRational :: Fractional a => Rational -> a
+ Data.Bugsnag.Types.Prelude: fst :: (a, b) -> a
+ Data.Bugsnag.Types.Prelude: gcd :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: getChar :: IO Char
+ Data.Bugsnag.Types.Prelude: getContents :: IO String
+ Data.Bugsnag.Types.Prelude: getLine :: IO String
+ Data.Bugsnag.Types.Prelude: head :: HasCallStack => [a] -> a
+ Data.Bugsnag.Types.Prelude: infix 4 `notElem`
+ Data.Bugsnag.Types.Prelude: infixl 1 >>
+ Data.Bugsnag.Types.Prelude: infixl 4 <$>
+ Data.Bugsnag.Types.Prelude: infixl 6 +
+ Data.Bugsnag.Types.Prelude: infixl 7 *
+ Data.Bugsnag.Types.Prelude: infixl 9 !!
+ Data.Bugsnag.Types.Prelude: infixr 0 $!
+ Data.Bugsnag.Types.Prelude: infixr 1 =<<
+ Data.Bugsnag.Types.Prelude: infixr 2 ||
+ Data.Bugsnag.Types.Prelude: infixr 3 &&
+ Data.Bugsnag.Types.Prelude: infixr 5 ++
+ Data.Bugsnag.Types.Prelude: infixr 6 <>
+ Data.Bugsnag.Types.Prelude: infixr 8 ^^
+ Data.Bugsnag.Types.Prelude: infixr 9 .
+ Data.Bugsnag.Types.Prelude: init :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: interact :: (String -> String) -> IO ()
+ Data.Bugsnag.Types.Prelude: ioError :: IOError -> IO a
+ Data.Bugsnag.Types.Prelude: isDenormalized :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isIEEE :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isInfinite :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isNaN :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: isNegativeZero :: RealFloat a => a -> Bool
+ Data.Bugsnag.Types.Prelude: iterate :: (a -> a) -> a -> [a]
+ Data.Bugsnag.Types.Prelude: last :: HasCallStack => [a] -> a
+ Data.Bugsnag.Types.Prelude: lcm :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: length :: Foldable t => t a -> Int
+ Data.Bugsnag.Types.Prelude: lex :: ReadS String
+ Data.Bugsnag.Types.Prelude: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
+ Data.Bugsnag.Types.Prelude: lines :: String -> [String]
+ Data.Bugsnag.Types.Prelude: log :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: logBase :: Floating a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: lookup :: Eq a => a -> [(a, b)] -> Maybe b
+ Data.Bugsnag.Types.Prelude: map :: (a -> b) -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
+ Data.Bugsnag.Types.Prelude: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ Data.Bugsnag.Types.Prelude: mappend :: Monoid a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: max :: Ord a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: maxBound :: Bounded a => a
+ Data.Bugsnag.Types.Prelude: maximum :: (Foldable t, Ord a) => t a -> a
+ Data.Bugsnag.Types.Prelude: maybe :: b -> (a -> b) -> Maybe a -> b
+ Data.Bugsnag.Types.Prelude: mconcat :: Monoid a => [a] -> a
+ Data.Bugsnag.Types.Prelude: mempty :: Monoid a => a
+ Data.Bugsnag.Types.Prelude: min :: Ord a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: minBound :: Bounded a => a
+ Data.Bugsnag.Types.Prelude: minimum :: (Foldable t, Ord a) => t a -> a
+ Data.Bugsnag.Types.Prelude: mod :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: negate :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: not :: Bool -> Bool
+ Data.Bugsnag.Types.Prelude: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Data.Bugsnag.Types.Prelude: null :: Foldable t => t a -> Bool
+ Data.Bugsnag.Types.Prelude: odd :: Integral a => a -> Bool
+ Data.Bugsnag.Types.Prelude: or :: Foldable t => t Bool -> Bool
+ Data.Bugsnag.Types.Prelude: otherwise :: Bool
+ Data.Bugsnag.Types.Prelude: pi :: Floating a => a
+ Data.Bugsnag.Types.Prelude: pred :: Enum a => a -> a
+ Data.Bugsnag.Types.Prelude: print :: Show a => a -> IO ()
+ Data.Bugsnag.Types.Prelude: product :: (Foldable t, Num a) => t a -> a
+ Data.Bugsnag.Types.Prelude: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
+ Data.Bugsnag.Types.Prelude: pure :: Applicative f => a -> f a
+ Data.Bugsnag.Types.Prelude: putChar :: Char -> IO ()
+ Data.Bugsnag.Types.Prelude: putStr :: String -> IO ()
+ Data.Bugsnag.Types.Prelude: putStrLn :: String -> IO ()
+ Data.Bugsnag.Types.Prelude: quot :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: quotRem :: Integral a => a -> a -> (a, a)
+ Data.Bugsnag.Types.Prelude: read :: Read a => String -> a
+ Data.Bugsnag.Types.Prelude: readFile :: FilePath -> IO String
+ Data.Bugsnag.Types.Prelude: readIO :: Read a => String -> IO a
+ Data.Bugsnag.Types.Prelude: readList :: Read a => ReadS [a]
+ Data.Bugsnag.Types.Prelude: readLn :: Read a => IO a
+ Data.Bugsnag.Types.Prelude: readParen :: Bool -> ReadS a -> ReadS a
+ Data.Bugsnag.Types.Prelude: reads :: Read a => ReadS a
+ Data.Bugsnag.Types.Prelude: readsPrec :: Read a => Int -> ReadS a
+ Data.Bugsnag.Types.Prelude: realToFrac :: (Real a, Fractional b) => a -> b
+ Data.Bugsnag.Types.Prelude: recip :: Fractional a => a -> a
+ Data.Bugsnag.Types.Prelude: rem :: Integral a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: repeat :: a -> [a]
+ Data.Bugsnag.Types.Prelude: replicate :: Int -> a -> [a]
+ Data.Bugsnag.Types.Prelude: return :: Monad m => a -> m a
+ Data.Bugsnag.Types.Prelude: reverse :: [a] -> [a]
+ Data.Bugsnag.Types.Prelude: round :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: scaleFloat :: RealFloat a => Int -> a -> a
+ Data.Bugsnag.Types.Prelude: scanl :: (b -> a -> b) -> b -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: scanl1 :: (a -> a -> a) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ Data.Bugsnag.Types.Prelude: scanr1 :: (a -> a -> a) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: seq :: a -> b -> b
+ Data.Bugsnag.Types.Prelude: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
+ Data.Bugsnag.Types.Prelude: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
+ Data.Bugsnag.Types.Prelude: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
+ Data.Bugsnag.Types.Prelude: show :: Show a => a -> String
+ Data.Bugsnag.Types.Prelude: showChar :: Char -> ShowS
+ Data.Bugsnag.Types.Prelude: showList :: Show a => [a] -> ShowS
+ Data.Bugsnag.Types.Prelude: showParen :: Bool -> ShowS -> ShowS
+ Data.Bugsnag.Types.Prelude: showString :: String -> ShowS
+ Data.Bugsnag.Types.Prelude: shows :: Show a => a -> ShowS
+ Data.Bugsnag.Types.Prelude: showsPrec :: Show a => Int -> a -> ShowS
+ Data.Bugsnag.Types.Prelude: significand :: RealFloat a => a -> a
+ Data.Bugsnag.Types.Prelude: signum :: Num a => a -> a
+ Data.Bugsnag.Types.Prelude: sin :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: sinh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: snd :: (a, b) -> b
+ Data.Bugsnag.Types.Prelude: span :: (a -> Bool) -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: splitAt :: Int -> [a] -> ([a], [a])
+ Data.Bugsnag.Types.Prelude: sqrt :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: subtract :: Num a => a -> a -> a
+ Data.Bugsnag.Types.Prelude: succ :: Enum a => a -> a
+ Data.Bugsnag.Types.Prelude: sum :: (Foldable t, Num a) => t a -> a
+ Data.Bugsnag.Types.Prelude: tail :: HasCallStack => [a] -> [a]
+ Data.Bugsnag.Types.Prelude: take :: Int -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: takeWhile :: (a -> Bool) -> [a] -> [a]
+ Data.Bugsnag.Types.Prelude: tan :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: tanh :: Floating a => a -> a
+ Data.Bugsnag.Types.Prelude: toEnum :: Enum a => Int -> a
+ Data.Bugsnag.Types.Prelude: toInteger :: Integral a => a -> Integer
+ Data.Bugsnag.Types.Prelude: toRational :: Real a => a -> Rational
+ Data.Bugsnag.Types.Prelude: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
+ Data.Bugsnag.Types.Prelude: truncate :: (RealFrac a, Integral b) => a -> b
+ Data.Bugsnag.Types.Prelude: type FilePath = String
+ Data.Bugsnag.Types.Prelude: type IOError = IOException
+ Data.Bugsnag.Types.Prelude: type Rational = Ratio Integer
+ Data.Bugsnag.Types.Prelude: type ReadS a = String -> [(a, String)]
+ Data.Bugsnag.Types.Prelude: type ShowS = String -> String
+ Data.Bugsnag.Types.Prelude: type String = [Char]
+ Data.Bugsnag.Types.Prelude: uncurry :: (a -> b -> c) -> (a, b) -> c
+ Data.Bugsnag.Types.Prelude: undefined :: HasCallStack => a
+ Data.Bugsnag.Types.Prelude: unlines :: [String] -> String
+ Data.Bugsnag.Types.Prelude: until :: (a -> Bool) -> (a -> a) -> a -> a
+ Data.Bugsnag.Types.Prelude: unwords :: [String] -> String
+ Data.Bugsnag.Types.Prelude: unzip :: [(a, b)] -> ([a], [b])
+ Data.Bugsnag.Types.Prelude: unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ Data.Bugsnag.Types.Prelude: userError :: String -> IOError
+ Data.Bugsnag.Types.Prelude: words :: String -> [String]
+ Data.Bugsnag.Types.Prelude: writeFile :: FilePath -> String -> IO ()
+ Data.Bugsnag.Types.Prelude: zip :: [a] -> [b] -> [(a, b)]
+ Data.Bugsnag.Types.Prelude: zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ Data.Bugsnag.Types.Prelude: zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ Data.Bugsnag.Types.Prelude: zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ Data.Bugsnag.Types.Request: defaultRequest :: Request
+ Data.Bugsnag.Types.RuntimeVersion: defaultRuntimeVersion :: RuntimeVersion
+ Data.Bugsnag.Types.Session: defaultSession :: Text -> Text -> SessionEvent -> Session
+ Data.Bugsnag.Types.SessionEvent: defaultSessionEvent :: Int -> Int -> SessionEvent
+ Data.Bugsnag.Types.SeverityReason: defaultSeverityReason :: SeverityReason
+ Data.Bugsnag.Types.SeverityReasonAttributes: defaultSeverityReasonAttributes :: SeverityReasonAttributes
+ Data.Bugsnag.Types.Stackframe: defaultStackframe :: Text -> Int -> Text -> Stackframe
+ Data.Bugsnag.Types.Thread: defaultThread :: Thread
+ Data.Bugsnag.Types.User: defaultUser :: User

Files

bugsnag-types.cabal view
@@ -1,6 +1,6 @@ cabal-version:   1.18 name:            bugsnag-types-version:         1.1.0.1+version:         1.1.1.0 license:         MIT maintainer:      pbrisbin@gmail.com author:          Patrick Brisbin
src/Data/Bugsnag/Types/Application.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Application   ( Application (..)   , exampleApplication-  ) where+  , defaultApplication+  )+where  import Data.Bugsnag.Types.Prelude @@ -53,7 +55,7 @@   , runningOnRosetta :: Maybe Bool   -- ^ Whether the application is running on the Rosetta emulator for Mac.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Application where   parseJSON = genericParseJSON aesonOptions@@ -62,21 +64,42 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultApplication :: Application+defaultApplication =+  Application+    { id = Nothing+    , version = Nothing+    , versionCode = Nothing+    , bundleVersion = Nothing+    , codeBundleId = Nothing+    , buildUUID = Nothing+    , releaseStage = Nothing+    , type_ = Nothing+    , dsymUUIDs = Nothing+    , duration = Nothing+    , durationInForeground = Nothing+    , inForeground = Nothing+    , isLaunching = Nothing+    , binaryArch = Nothing+    , runningOnRosetta = Nothing+    }+ exampleApplication :: Application-exampleApplication = Application-  { id = Just "com.bugsnag.android.example.debug"-  , version = Just "1.1.3"-  , versionCode = Just 12-  , bundleVersion = Just "1.0.2"-  , codeBundleId = Just "1.0-1234"-  , buildUUID = Just "BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE"-  , releaseStage = Just "staging"-  , type_ = Just "rails"-  , dsymUUIDs = Just ["e6173678256785afd940392abee"]-  , duration = Just 1275-  , durationInForeground = Just 983-  , inForeground = Just True-  , isLaunching = Just True-  , binaryArch = Just exampleBinaryArch-  , runningOnRosetta = Just True-  }+exampleApplication =+  Application+    { id = Just "com.bugsnag.android.example.debug"+    , version = Just "1.1.3"+    , versionCode = Just 12+    , bundleVersion = Just "1.0.2"+    , codeBundleId = Just "1.0-1234"+    , buildUUID = Just "BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE"+    , releaseStage = Just "staging"+    , type_ = Just "rails"+    , dsymUUIDs = Just ["e6173678256785afd940392abee"]+    , duration = Just 1275+    , durationInForeground = Just 983+    , inForeground = Just True+    , isLaunching = Just True+    , binaryArch = Just exampleBinaryArch+    , runningOnRosetta = Just True+    }
src/Data/Bugsnag/Types/BinaryArch.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.BinaryArch   ( BinaryArch (..)   , exampleBinaryArch-  ) where+  )+where  import Data.Bugsnag.Types.Prelude @@ -19,7 +20,7 @@   | Armv7s   | Armv8   | Amd64-  deriving stock (Bounded, Enum, Eq, Show, Generic)+  deriving stock (Bounded, Enum, Eq, Generic, Show)  instance FromJSON BinaryArch where   parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Breadcrumb.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Breadcrumb   ( Breadcrumb (..)   , exampleBreadcrumb-  ) where+  , defaultBreadcrumb+  )+where  import Data.Bugsnag.Types.Prelude @@ -47,7 +49,7 @@   -- >     "from": "PodBayDoorView"   -- > }   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Breadcrumb where   parseJSON = genericParseJSON aesonOptions@@ -56,10 +58,20 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultBreadcrumb :: Text -> Text -> BreadcrumbType -> Breadcrumb+defaultBreadcrumb timestamp name type_ =+  Breadcrumb+    { timestamp+    , name+    , type_+    , metaData = Nothing+    }+ exampleBreadcrumb :: Breadcrumb-exampleBreadcrumb = Breadcrumb-  { timestamp = "2016-07-19T12:17:27-0700"-  , name = "Open menu"-  , type_ = exampleBreadcrumbType-  , metaData = Nothing-  }+exampleBreadcrumb =+  Breadcrumb+    { timestamp = "2016-07-19T12:17:27-0700"+    , name = "Open menu"+    , type_ = exampleBreadcrumbType+    , metaData = Nothing+    }
src/Data/Bugsnag/Types/BreadcrumbType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.BreadcrumbType   ( BreadcrumbType (..)   , exampleBreadcrumbType-  ) where+  )+where  import Data.Bugsnag.Types.Prelude @@ -38,7 +39,7 @@   | State   | Error   | Manual-  deriving stock (Bounded, Enum, Eq, Show, Generic)+  deriving stock (Bounded, Enum, Eq, Generic, Show)  instance FromJSON BreadcrumbType where   parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/DependentNotifier.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.DependentNotifier   ( DependentNotifier (..)   , exampleDependentNotifier-  ) where+  , defaultDependentNotifier+  )+where  import Data.Bugsnag.Types.Prelude @@ -13,7 +15,7 @@   , url :: Text   -- ^ The URL associated with the notifier.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON DependentNotifier where   parseJSON = genericParseJSON aesonOptions@@ -22,9 +24,18 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultDependentNotifier :: Text -> Text -> Text -> DependentNotifier+defaultDependentNotifier name version url =+  DependentNotifier+    { name+    , version+    , url+    }+ exampleDependentNotifier :: DependentNotifier-exampleDependentNotifier = DependentNotifier-  { name = "Bugsnag Android"-  , version = "2.1.10"-  , url = "https://github.com/bugsnag/bugsnag-android"-  }+exampleDependentNotifier =+  DependentNotifier+    { name = "Bugsnag Android"+    , version = "2.1.10"+    , url = "https://github.com/bugsnag/bugsnag-android"+    }
src/Data/Bugsnag/Types/Device.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Device   ( Device (..)   , exampleDevice-  ) where+  , defaultDevice+  )+where  import Data.Bugsnag.Types.Prelude @@ -50,7 +52,7 @@   , macCatalystiOSVersion :: Maybe Text   -- ^ The device\'s Mac Catalyst iOS version.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Device where   parseJSON = genericParseJSON aesonOptions@@ -59,24 +61,48 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultDevice :: Device+defaultDevice =+  Device+    { hostname = Nothing+    , id = Nothing+    , manufacturer = Nothing+    , model = Nothing+    , modelNumber = Nothing+    , osName = Nothing+    , osVersion = Nothing+    , freeMemory = Nothing+    , totalMemory = Nothing+    , freeDisk = Nothing+    , browserName = Nothing+    , browserVersion = Nothing+    , jailbroken = Nothing+    , orientation = Nothing+    , time = Nothing+    , cpuAbi = Nothing+    , runtimeVersions = Nothing+    , macCatalystiOSVersion = Nothing+    }+ exampleDevice :: Device-exampleDevice = Device-  { hostname = Just "web1.internal"-  , id = Just "fd124e87760c4281aef"-  , manufacturer = Just "LGE"-  , model = Just "Nexus 6P"-  , modelNumber = Just "600"-  , osName = Just "android"-  , osVersion = Just "8.0.1"-  , freeMemory = Just 183879616-  , totalMemory = Just 201326592-  , freeDisk = Just 13478064128-  , browserName = Just "Chrome"-  , browserVersion = Just "61.0.3163.100"-  , jailbroken = Nothing-  , orientation = Just "portrait"-  , time = Just "2018-08-07T10:16:34.564Z"-  , cpuAbi = Just ["x86_64"]-  , runtimeVersions = Just exampleRuntimeVersion-  , macCatalystiOSVersion = Just "14.0"-  }+exampleDevice =+  Device+    { hostname = Just "web1.internal"+    , id = Just "fd124e87760c4281aef"+    , manufacturer = Just "LGE"+    , model = Just "Nexus 6P"+    , modelNumber = Just "600"+    , osName = Just "android"+    , osVersion = Just "8.0.1"+    , freeMemory = Just 183879616+    , totalMemory = Just 201326592+    , freeDisk = Just 13478064128+    , browserName = Just "Chrome"+    , browserVersion = Just "61.0.3163.100"+    , jailbroken = Nothing+    , orientation = Just "portrait"+    , time = Just "2018-08-07T10:16:34.564Z"+    , cpuAbi = Just ["x86_64"]+    , runtimeVersions = Just exampleRuntimeVersion+    , macCatalystiOSVersion = Just "14.0"+    }
src/Data/Bugsnag/Types/ErrorType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.ErrorType   ( ErrorType (..)   , exampleErrorType-  ) where+  )+where  import Data.Bugsnag.Types.Prelude @@ -23,7 +24,7 @@   | Python   | Reactnativejs   | Ruby-  deriving stock (Bounded, Enum, Eq, Show, Generic)+  deriving stock (Bounded, Enum, Eq, Generic, Show)  instance FromJSON ErrorType where   parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Event.hs view
@@ -1,21 +1,23 @@ module Data.Bugsnag.Types.Event   ( Event (..)   , exampleEvent-  ) where+  , defaultEvent+  )+where  import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Exception+import Data.Bugsnag.Types.Application import Data.Bugsnag.Types.Breadcrumb+import Data.Bugsnag.Types.Device+import Data.Bugsnag.Types.Exception+import Data.Bugsnag.Types.FeatureFlag import Data.Bugsnag.Types.Request-import Data.Bugsnag.Types.Thread+import Data.Bugsnag.Types.Session import Data.Bugsnag.Types.Severity import Data.Bugsnag.Types.SeverityReason+import Data.Bugsnag.Types.Thread import Data.Bugsnag.Types.User-import Data.Bugsnag.Types.Application-import Data.Bugsnag.Types.Device-import Data.Bugsnag.Types.Session-import Data.Bugsnag.Types.FeatureFlag  data Event = Event   { exceptions :: [Exception]@@ -127,7 +129,7 @@   -- >       }   -- >   }   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Event where   parseJSON = genericParseJSON aesonOptions@@ -136,22 +138,44 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultEvent :: [Exception] -> Event+defaultEvent exceptions =+  Event+    { exceptions+    , breadcrumbs = Nothing+    , request = Nothing+    , threads = Nothing+    , context = Nothing+    , groupingHash = Nothing+    , unhandled = Nothing+    , severity = Nothing+    , severityReason = Nothing+    , projectPackages = Nothing+    , user = Nothing+    , app = Nothing+    , device = Nothing+    , session = Nothing+    , featureFlags = Nothing+    , metaData = Nothing+    }+ exampleEvent :: Event-exampleEvent = Event-  { exceptions = [exampleException]-  , breadcrumbs = Just [exampleBreadcrumb]-  , request = Just exampleRequest-  , threads = Just [exampleThread]-  , context = Just "auth/session#create"-  , groupingHash = Just "buggy_file.rb"-  , unhandled = Just True-  , severity = Just exampleSeverity-  , severityReason = Just exampleSeverityReason-  , projectPackages = Just ["com.example.package1","com.example.package2"]-  , user = Just exampleUser-  , app = Just exampleApplication-  , device = Just exampleDevice-  , session = Just exampleSession-  , featureFlags = Just [exampleFeatureFlag]-  , metaData = Nothing-  }+exampleEvent =+  Event+    { exceptions = [exampleException]+    , breadcrumbs = Just [exampleBreadcrumb]+    , request = Just exampleRequest+    , threads = Just [exampleThread]+    , context = Just "auth/session#create"+    , groupingHash = Just "buggy_file.rb"+    , unhandled = Just True+    , severity = Just exampleSeverity+    , severityReason = Just exampleSeverityReason+    , projectPackages = Just ["com.example.package1", "com.example.package2"]+    , user = Just exampleUser+    , app = Just exampleApplication+    , device = Just exampleDevice+    , session = Just exampleSession+    , featureFlags = Just [exampleFeatureFlag]+    , metaData = Nothing+    }
src/Data/Bugsnag/Types/Exception.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Exception   ( Exception (..)   , exampleException-  ) where+  , defaultException+  )+where  import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Stackframe import Data.Bugsnag.Types.ErrorType+import Data.Bugsnag.Types.Stackframe  data Exception = Exception   { errorClass :: Text@@ -24,7 +26,7 @@   -- grouping, as well as displaying it to the user.   , type_ :: Maybe ErrorType   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Exception where   parseJSON = genericParseJSON aesonOptions@@ -33,10 +35,20 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultException :: Text -> [Stackframe] -> Exception+defaultException errorClass stacktrace =+  Exception+    { errorClass+    , stacktrace+    , message = Nothing+    , type_ = Nothing+    }+ exampleException :: Exception-exampleException = Exception-  { errorClass = "NoMethodError"-  , message = Just "Unable to connect to database"-  , stacktrace = [exampleStackframe]-  , type_ = Just exampleErrorType-  }+exampleException =+  Exception+    { errorClass = "NoMethodError"+    , message = Just "Unable to connect to database"+    , stacktrace = [exampleStackframe]+    , type_ = Just exampleErrorType+    }
src/Data/Bugsnag/Types/FeatureFlag.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.FeatureFlag   ( FeatureFlag (..)   , exampleFeatureFlag-  ) where+  , defaultFeatureFlag+  )+where  import Data.Bugsnag.Types.Prelude @@ -11,7 +13,7 @@   , variant :: Maybe Text   -- ^ The name of the variant.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON FeatureFlag where   parseJSON = genericParseJSON aesonOptions@@ -20,8 +22,16 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultFeatureFlag :: Text -> FeatureFlag+defaultFeatureFlag featureFlag =+  FeatureFlag+    { featureFlag+    , variant = Nothing+    }+ exampleFeatureFlag :: FeatureFlag-exampleFeatureFlag = FeatureFlag-  { featureFlag = "share_ios_photo_sharing_button"-  , variant = Just "blue_button"-  }+exampleFeatureFlag =+  FeatureFlag+    { featureFlag = "share_ios_photo_sharing_button"+    , variant = Just "blue_button"+    }
src/Data/Bugsnag/Types/Notifier.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Notifier   ( Notifier (..)   , exampleNotifier-  ) where+  , defaultNotifier+  )+where  import Data.Bugsnag.Types.Prelude @@ -21,7 +23,7 @@   -- optional array containing the details of the additional notifiers can be   -- specified.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Notifier where   parseJSON = genericParseJSON aesonOptions@@ -30,10 +32,20 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultNotifier :: Text -> Text -> Text -> Notifier+defaultNotifier name version url =+  Notifier+    { name+    , version+    , url+    , dependencies = Nothing+    }+ exampleNotifier :: Notifier-exampleNotifier = Notifier-  { name = "Bugsnag Ruby"-  , version = "1.0.11"-  , url = "https://github.com/bugsnag/bugsnag-ruby"-  , dependencies = Just [exampleDependentNotifier]-  }+exampleNotifier =+  Notifier+    { name = "Bugsnag Ruby"+    , version = "1.0.11"+    , url = "https://github.com/bugsnag/bugsnag-ruby"+    , dependencies = Just [exampleDependentNotifier]+    }
src/Data/Bugsnag/Types/Payload.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Payload   ( Payload (..)   , examplePayload-  ) where+  , defaultPayload+  )+where  import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Notifier import Data.Bugsnag.Types.Event+import Data.Bugsnag.Types.Notifier  data Payload = Payload   { apiKey :: Maybe Text@@ -24,7 +26,7 @@   -- or can notify BugSnag each time an event occurs. Should contain at least   -- 1 event.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Payload where   parseJSON = genericParseJSON aesonOptions@@ -33,10 +35,20 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultPayload :: Text -> Notifier -> [Event] -> Payload+defaultPayload payloadVersion notifier events =+  Payload+    { payloadVersion+    , notifier+    , events+    , apiKey = Nothing+    }+ examplePayload :: Payload-examplePayload = Payload-  { apiKey = Just "YOUR-NOTIFIER-API-KEY"-  , payloadVersion = "5"-  , notifier = exampleNotifier-  , events = [exampleEvent]-  }+examplePayload =+  Payload+    { apiKey = Just "YOUR-NOTIFIER-API-KEY"+    , payloadVersion = "5"+    , notifier = exampleNotifier+    , events = [exampleEvent]+    }
src/Data/Bugsnag/Types/Prelude.hs view
@@ -1,9 +1,10 @@ module Data.Bugsnag.Types.Prelude   ( module X   , aesonOptions-  ) where+  )+where -import Prelude as X+import Prelude as X hiding (id)  import Control.Monad as X (void) import Data.Aeson (Options (..), defaultOptions)
src/Data/Bugsnag/Types/Request.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Request   ( Request (..)   , exampleRequest-  ) where+  , defaultRequest+  )+where  import Data.Bugsnag.Types.Prelude @@ -27,7 +29,7 @@   , referer :: Maybe Text   -- ^ The <https://en.wikipedia.org/wiki/HTTP_referer HTTP referer>   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Request where   parseJSON = genericParseJSON aesonOptions@@ -36,11 +38,22 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultRequest :: Request+defaultRequest =+  Request+    { clientIp = Nothing+    , headers = Nothing+    , httpMethod = Nothing+    , url = Nothing+    , referer = Nothing+    }+ exampleRequest :: Request-exampleRequest = Request-  { clientIp = Just "192.168.44.0"-  , headers = Nothing-  , httpMethod = Just "PUT"-  , url = Just "http://example.com/users/19/settings"-  , referer = Just "http://example.com?q=awesome"-  }+exampleRequest =+  Request+    { clientIp = Just "192.168.44.0"+    , headers = Nothing+    , httpMethod = Just "PUT"+    , url = Just "http://example.com/users/19/settings"+    , referer = Just "http://example.com?q=awesome"+    }
src/Data/Bugsnag/Types/RuntimeVersion.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.RuntimeVersion   ( RuntimeVersion (..)   , exampleRuntimeVersion-  ) where+  , defaultRuntimeVersion+  )+where  import Data.Bugsnag.Types.Prelude @@ -113,7 +115,7 @@   , wordpress :: Maybe Text   -- ^ Wordpress version (PHP only).   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON RuntimeVersion where   parseJSON = genericParseJSON aesonOptions@@ -122,58 +124,116 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultRuntimeVersion :: RuntimeVersion+defaultRuntimeVersion =+  RuntimeVersion+    { androidApiLevel = Nothing+    , bottle = Nothing+    , celery = Nothing+    , clangVersion = Nothing+    , cocos2dx = Nothing+    , delayedJob = Nothing+    , django = Nothing+    , dotnet = Nothing+    , dotnetApiCompatibility = Nothing+    , dotnetClr = Nothing+    , dotnetScriptingRuntime = Nothing+    , electron = Nothing+    , eventMachine = Nothing+    , expoApp = Nothing+    , expoSdk = Nothing+    , flask = Nothing+    , gin = Nothing+    , go = Nothing+    , javaType = Nothing+    , javaVersion = Nothing+    , jruby = Nothing+    , laravel = Nothing+    , lumen = Nothing+    , magento = Nothing+    , mailman = Nothing+    , martini = Nothing+    , negroni = Nothing+    , node = Nothing+    , osBuild = Nothing+    , php = Nothing+    , python = Nothing+    , que = Nothing+    , rack = Nothing+    , rails = Nothing+    , rake = Nothing+    , reactNative = Nothing+    , reactNativeJsEngine = Nothing+    , resque = Nothing+    , revel = Nothing+    , ruby = Nothing+    , shoryoken = Nothing+    , sidekiq = Nothing+    , silex = Nothing+    , sinatra = Nothing+    , springBoot = Nothing+    , springFramework = Nothing+    , swift = Nothing+    , symfony = Nothing+    , tornado = Nothing+    , unity = Nothing+    , unityScriptingBackend = Nothing+    , wordpress = Nothing+    }+ exampleRuntimeVersion :: RuntimeVersion-exampleRuntimeVersion = RuntimeVersion-  { androidApiLevel = Just "28"-  , bottle = Just "0.12.8"-  , celery = Just "4.2.0"-  , clangVersion = Just "7.0.1"-  , cocos2dx = Just "3.17.2"-  , delayedJob = Just "4.1.8"-  , django = Just "2.1.7"-  , dotnet = Just ".NET Framework 4.7.3416.0"-  , dotnetApiCompatibility = Just ".NET 2.0 Subset"-  , dotnetClr = Just "4.0.30319.17379"-  , dotnetScriptingRuntime = Just ".NET 3.5 equivalent"-  , electron = Just "11.4.3"-  , eventMachine = Just "1.2.7"-  , expoApp = Just "2.10.0.105125"-  , expoSdk = Just "32.0.0"-  , flask = Just "1.0.2"-  , gin = Just "1.3.0"-  , go = Just "1.11.2"-  , javaType = Just "Java(TM) SE Runtime Environment"-  , javaVersion = Just "1.8.0_131-b11"-  , jruby = Just "9.2.5.0"-  , laravel = Just "5.7.22"-  , lumen = Just "5.7"-  , magento = Just "2.3.0"-  , mailman = Just "0.8.0"-  , martini = Just "1.0"-  , negroni = Just "1.0.0"-  , node = Just "10.14.1"-  , osBuild = Just "16D57"-  , php = Just "7.2.12"-  , python = Just "3.7.1"-  , que = Just "0.14.3"-  , rack = Just "2.0.6"-  , rails = Just "5.2.2"-  , rake = Just "12.3.2"-  , reactNative = Just "0.57.5"-  , reactNativeJsEngine = Just "hermes"-  , resque = Just "2.0.0"-  , revel = Just "0.21.0"-  , ruby = Just "2.5.3"-  , shoryoken = Just "5.0.1"-  , sidekiq = Just "5.1.3"-  , silex = Just "2.1.0"-  , sinatra = Just "2.0.3"-  , springBoot = Just "1.5.13.RELEASE"-  , springFramework = Just "4.2.13.RELEASE"-  , swift = Just "4.2"-  , symfony = Just "4.2.11"-  , tornado = Just "5.1.1"-  , unity = Just "2018.2.17"-  , unityScriptingBackend = Just "Mono"-  , wordpress = Just "5.1"-  }+exampleRuntimeVersion =+  RuntimeVersion+    { androidApiLevel = Just "28"+    , bottle = Just "0.12.8"+    , celery = Just "4.2.0"+    , clangVersion = Just "7.0.1"+    , cocos2dx = Just "3.17.2"+    , delayedJob = Just "4.1.8"+    , django = Just "2.1.7"+    , dotnet = Just ".NET Framework 4.7.3416.0"+    , dotnetApiCompatibility = Just ".NET 2.0 Subset"+    , dotnetClr = Just "4.0.30319.17379"+    , dotnetScriptingRuntime = Just ".NET 3.5 equivalent"+    , electron = Just "11.4.3"+    , eventMachine = Just "1.2.7"+    , expoApp = Just "2.10.0.105125"+    , expoSdk = Just "32.0.0"+    , flask = Just "1.0.2"+    , gin = Just "1.3.0"+    , go = Just "1.11.2"+    , javaType = Just "Java(TM) SE Runtime Environment"+    , javaVersion = Just "1.8.0_131-b11"+    , jruby = Just "9.2.5.0"+    , laravel = Just "5.7.22"+    , lumen = Just "5.7"+    , magento = Just "2.3.0"+    , mailman = Just "0.8.0"+    , martini = Just "1.0"+    , negroni = Just "1.0.0"+    , node = Just "10.14.1"+    , osBuild = Just "16D57"+    , php = Just "7.2.12"+    , python = Just "3.7.1"+    , que = Just "0.14.3"+    , rack = Just "2.0.6"+    , rails = Just "5.2.2"+    , rake = Just "12.3.2"+    , reactNative = Just "0.57.5"+    , reactNativeJsEngine = Just "hermes"+    , resque = Just "2.0.0"+    , revel = Just "0.21.0"+    , ruby = Just "2.5.3"+    , shoryoken = Just "5.0.1"+    , sidekiq = Just "5.1.3"+    , silex = Just "2.1.0"+    , sinatra = Just "2.0.3"+    , springBoot = Just "1.5.13.RELEASE"+    , springFramework = Just "4.2.13.RELEASE"+    , swift = Just "4.2"+    , symfony = Just "4.2.11"+    , tornado = Just "5.1.1"+    , unity = Just "2018.2.17"+    , unityScriptingBackend = Just "Mono"+    , wordpress = Just "5.1"+    }
src/Data/Bugsnag/Types/Session.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Session   ( Session (..)   , exampleSession-  ) where+  , defaultSession+  )+where  import Data.Bugsnag.Types.Prelude @@ -21,7 +23,7 @@   -- at which the session started.   , events :: SessionEvent   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Session where   parseJSON = genericParseJSON aesonOptions@@ -30,9 +32,18 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultSession :: Text -> Text -> SessionEvent -> Session+defaultSession id startedAt events =+  Session+    { id+    , startedAt+    , events+    }+ exampleSession :: Session-exampleSession = Session-  { id = "9f65c975-8155-456f-91e5-c4c4b3db0555"-  , startedAt = "2017-01-01T14:30:00.000Z"-  , events = exampleSessionEvent-  }+exampleSession =+  Session+    { id = "9f65c975-8155-456f-91e5-c4c4b3db0555"+    , startedAt = "2017-01-01T14:30:00.000Z"+    , events = exampleSessionEvent+    }
src/Data/Bugsnag/Types/SessionEvent.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.SessionEvent   ( SessionEvent (..)   , exampleSessionEvent-  ) where+  , defaultSessionEvent+  )+where  import Data.Bugsnag.Types.Prelude @@ -15,7 +17,7 @@   -- ^ The number of unhandled events that have occurred in this session   -- (including this event)   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON SessionEvent where   parseJSON = genericParseJSON aesonOptions@@ -24,8 +26,16 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultSessionEvent :: Int -> Int -> SessionEvent+defaultSessionEvent handled unhandled =+  SessionEvent+    { handled+    , unhandled+    }+ exampleSessionEvent :: SessionEvent-exampleSessionEvent = SessionEvent-  { handled = 1-  , unhandled = 1-  }+exampleSessionEvent =+  SessionEvent+    { handled = 1+    , unhandled = 1+    }
src/Data/Bugsnag/Types/Severity.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.Severity   ( Severity (..)   , exampleSeverity-  ) where+  )+where  import Data.Bugsnag.Types.Prelude @@ -16,7 +17,7 @@   = Error   | Warning   | Info-  deriving stock (Bounded, Enum, Eq, Show, Generic)+  deriving stock (Bounded, Enum, Eq, Generic, Show)  instance FromJSON Severity where   parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/SeverityReason.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.SeverityReason   ( SeverityReason (..)   , exampleSeverityReason-  ) where+  , defaultSeverityReason+  )+where  import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.SeverityReasonType import Data.Bugsnag.Types.SeverityReasonAttributes+import Data.Bugsnag.Types.SeverityReasonType  -- | Information about why the severity was picked. data SeverityReason = SeverityReason@@ -54,7 +56,7 @@   -- ^ Whether the event\'s @unhandled@ flag was overridden from the   -- notifier\'s default value.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON SeverityReason where   parseJSON = genericParseJSON aesonOptions@@ -63,9 +65,18 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultSeverityReason :: SeverityReason+defaultSeverityReason =+  SeverityReason+    { type_ = Nothing+    , attributes = Nothing+    , unhandledOverridden = Nothing+    }+ exampleSeverityReason :: SeverityReason-exampleSeverityReason = SeverityReason-  { type_ = Just exampleSeverityReasonType-  , attributes = Just exampleSeverityReasonAttributes-  , unhandledOverridden = Just False-  }+exampleSeverityReason =+  SeverityReason+    { type_ = Just exampleSeverityReasonType+    , attributes = Just exampleSeverityReasonAttributes+    , unhandledOverridden = Just False+    }
src/Data/Bugsnag/Types/SeverityReasonAttributes.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.SeverityReasonAttributes   ( SeverityReasonAttributes (..)   , exampleSeverityReasonAttributes-  ) where+  , defaultSeverityReasonAttributes+  )+where  import Data.Bugsnag.Types.Prelude @@ -29,7 +31,7 @@   -- ^ Included for @exceptionClass@ severity reason. Specifies the error class   -- that is automatically sent.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON SeverityReasonAttributes where   parseJSON = genericParseJSON aesonOptions@@ -38,13 +40,26 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultSeverityReasonAttributes :: SeverityReasonAttributes+defaultSeverityReasonAttributes =+  SeverityReasonAttributes+    { errorType = Nothing+    , level = Nothing+    , signalType = Nothing+    , violationType = Nothing+    , errorClass = Nothing+    , framework = Nothing+    , exceptionClass = Nothing+    }+ exampleSeverityReasonAttributes :: SeverityReasonAttributes-exampleSeverityReasonAttributes = SeverityReasonAttributes-  { errorType = Just "E_ERROR"-  , level = Just "Error"-  , signalType = Just "SIGSEGV"-  , violationType = Just "NetworkOnMainThread"-  , errorClass = Just "ActiveRecord::RecordNotFound"-  , framework = Just "Rack"-  , exceptionClass = Just "TypeMismatchException"-  }+exampleSeverityReasonAttributes =+  SeverityReasonAttributes+    { errorType = Just "E_ERROR"+    , level = Just "Error"+    , signalType = Just "SIGSEGV"+    , violationType = Just "NetworkOnMainThread"+    , errorClass = Just "ActiveRecord::RecordNotFound"+    , framework = Just "Rack"+    , exceptionClass = Just "TypeMismatchException"+    }
src/Data/Bugsnag/Types/SeverityReasonType.hs view
@@ -1,7 +1,8 @@ module Data.Bugsnag.Types.SeverityReasonType   ( SeverityReasonType (..)   , exampleSeverityReasonType-  ) where+  )+where  import Data.Bugsnag.Types.Prelude @@ -66,7 +67,7 @@   | AppHang   | OutOfMemory   | ThermalKill-  deriving stock (Bounded, Enum, Eq, Show, Generic)+  deriving stock (Bounded, Enum, Eq, Generic, Show)  instance FromJSON SeverityReasonType where   parseJSON = genericParseJSON aesonOptions
src/Data/Bugsnag/Types/Stackframe.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.Stackframe   ( Stackframe (..)   , exampleStackframe-  ) where+  , defaultStackframe+  )+where  import Data.Bugsnag.Types.Prelude @@ -54,7 +56,7 @@   , codeIdentifier :: Maybe Text   -- ^ The ID of the executable\/library that the frame relates to.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Stackframe where   parseJSON = genericParseJSON aesonOptions@@ -63,22 +65,44 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultStackframe :: Text -> Int -> Text -> Stackframe+defaultStackframe file lineNumber method =+  Stackframe+    { file+    , lineNumber+    , method+    , columnNumber = Nothing+    , inProject = Nothing+    , code = Nothing+    , frameAddress = Nothing+    , loadAddress = Nothing+    , isLR = Nothing+    , isPC = Nothing+    , symbolAddress = Nothing+    , machoFile = Nothing+    , machoLoadAddress = Nothing+    , machoUUID = Nothing+    , machoVMAddress = Nothing+    , codeIdentifier = Nothing+    }+ exampleStackframe :: Stackframe-exampleStackframe = Stackframe-  { file = "controllers/auth/session_controller.rb"-  , lineNumber = 1234-  , columnNumber = Just 123-  , method = "create"-  , inProject = Just True-  , code = Nothing-  , frameAddress = Just "0x000000010d131040"-  , loadAddress = Just "0x000000010d12e000"-  , isLR = Nothing-  , isPC = Just True-  , symbolAddress = Just "0x000000010d130fe6"-  , machoFile = Just "/System/Library/Frameworks/Foundation.framework/Foundation"-  , machoLoadAddress = Just "0x000000010d12e000"-  , machoUUID = Just "B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03"-  , machoVMAddress = Just "0x0000000100000000"-  , codeIdentifier = Just "b6b529d5e58421a0fba0fa2c5c2c5f3e"-  }+exampleStackframe =+  Stackframe+    { file = "controllers/auth/session_controller.rb"+    , lineNumber = 1234+    , columnNumber = Just 123+    , method = "create"+    , inProject = Just True+    , code = Nothing+    , frameAddress = Just "0x000000010d131040"+    , loadAddress = Just "0x000000010d12e000"+    , isLR = Nothing+    , isPC = Just True+    , symbolAddress = Just "0x000000010d130fe6"+    , machoFile = Just "/System/Library/Frameworks/Foundation.framework/Foundation"+    , machoLoadAddress = Just "0x000000010d12e000"+    , machoUUID = Just "B3196052-BAF1-3EA5-AD28-F9E6ECCF0B03"+    , machoVMAddress = Just "0x0000000100000000"+    , codeIdentifier = Just "b6b529d5e58421a0fba0fa2c5c2c5f3e"+    }
src/Data/Bugsnag/Types/Thread.hs view
@@ -1,12 +1,14 @@ module Data.Bugsnag.Types.Thread   ( Thread (..)   , exampleThread-  ) where+  , defaultThread+  )+where  import Data.Bugsnag.Types.Prelude -import Data.Bugsnag.Types.Stackframe import Data.Bugsnag.Types.ErrorType+import Data.Bugsnag.Types.Stackframe  data Thread = Thread   { id :: Maybe Text@@ -23,7 +25,7 @@   -- ^ The state of the thread at the time of the error.   , type_ :: Maybe ErrorType   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON Thread where   parseJSON = genericParseJSON aesonOptions@@ -32,12 +34,24 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultThread :: Thread+defaultThread =+  Thread+    { id = Nothing+    , name = Nothing+    , errorReportingThread = Nothing+    , stacktrace = Nothing+    , state = Nothing+    , type_ = Nothing+    }+ exampleThread :: Thread-exampleThread = Thread-  { id = Just "thread_id"-  , name = Just "thread_name"-  , errorReportingThread = Just True-  , stacktrace = Just [exampleStackframe]-  , state = Just "WAITING"-  , type_ = Just exampleErrorType-  }+exampleThread =+  Thread+    { id = Just "thread_id"+    , name = Just "thread_name"+    , errorReportingThread = Just True+    , stacktrace = Just [exampleStackframe]+    , state = Just "WAITING"+    , type_ = Just exampleErrorType+    }
src/Data/Bugsnag/Types/User.hs view
@@ -1,7 +1,9 @@ module Data.Bugsnag.Types.User   ( User (..)   , exampleUser-  ) where+  , defaultUser+  )+where  import Data.Bugsnag.Types.Prelude @@ -18,7 +20,7 @@   , email :: Maybe Text   -- ^ The user\'s email address.   }-  deriving stock (Eq, Show, Generic)+  deriving stock (Eq, Generic, Show)  instance FromJSON User where   parseJSON = genericParseJSON aesonOptions@@ -27,9 +29,18 @@   toJSON = genericToJSON aesonOptions   toEncoding = genericToEncoding aesonOptions +defaultUser :: User+defaultUser =+  User+    { id = Nothing+    , name = Nothing+    , email = Nothing+    }+ exampleUser :: User-exampleUser = User-  { id = Just "19"-  , name = Just "Robert Hawkins"-  , email = Just "bob@example.com"-  }+exampleUser =+  User+    { id = Just "19"+    , name = Just "Robert Hawkins"+    , email = Just "bob@example.com"+    }