{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
module GitHub.Types.Base.Release where
import Data.Aeson (FromJSON (..), ToJSON (..), object)
import Data.Aeson.Types (Value (..), (.:), (.=))
import Data.Text (Text)
import Test.QuickCheck.Arbitrary (Arbitrary (..))
import GitHub.Types.Base.DateTime
import GitHub.Types.Base.User
data Release = Release
{ Release -> [Text]
releaseAssets :: [Text]
, Release -> Text
releaseAssetsUrl :: Text
, Release -> User
releaseAuthor :: User
, Release -> Text
releaseBody :: Text
, Release -> DateTime
releaseCreatedAt :: DateTime
, Release -> Bool
releaseDraft :: Bool
, Release -> Text
releaseHtmlUrl :: Text
, Release -> Int
releaseId :: Int
, Release -> Int
releaseMentionsCount :: Int
, Release -> Text
releaseName :: Text
, Release -> Text
releaseNodeId :: Text
, Release -> Bool
releasePrerelease :: Bool
, Release -> Maybe DateTime
releasePublishedAt :: Maybe DateTime
, Release -> Text
releaseTagName :: Text
, Release -> Maybe Text
releaseTarballUrl :: Maybe Text
, Release -> Text
releaseTargetCommitish :: Text
, Release -> Text
releaseUploadUrl :: Text
, Release -> Text
releaseUrl :: Text
, Release -> Maybe Text
releaseZipballUrl :: Maybe Text
} deriving (Release -> Release -> Bool
(Release -> Release -> Bool)
-> (Release -> Release -> Bool) -> Eq Release
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Release -> Release -> Bool
$c/= :: Release -> Release -> Bool
== :: Release -> Release -> Bool
$c== :: Release -> Release -> Bool
Eq, Int -> Release -> ShowS
[Release] -> ShowS
Release -> String
(Int -> Release -> ShowS)
-> (Release -> String) -> ([Release] -> ShowS) -> Show Release
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Release] -> ShowS
$cshowList :: [Release] -> ShowS
show :: Release -> String
$cshow :: Release -> String
showsPrec :: Int -> Release -> ShowS
$cshowsPrec :: Int -> Release -> ShowS
Show, ReadPrec [Release]
ReadPrec Release
Int -> ReadS Release
ReadS [Release]
(Int -> ReadS Release)
-> ReadS [Release]
-> ReadPrec Release
-> ReadPrec [Release]
-> Read Release
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Release]
$creadListPrec :: ReadPrec [Release]
readPrec :: ReadPrec Release
$creadPrec :: ReadPrec Release
readList :: ReadS [Release]
$creadList :: ReadS [Release]
readsPrec :: Int -> ReadS Release
$creadsPrec :: Int -> ReadS Release
Read)
instance FromJSON Release where
parseJSON :: Value -> Parser Release
parseJSON (Object Object
x) = [Text]
-> Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release
Release
([Text]
-> Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser [Text]
-> Parser
(Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
x Object -> Key -> Parser [Text]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"assets"
Parser
(Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Text
-> Parser
(User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"assets_url"
Parser
(User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser User
-> Parser
(Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser User
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"author"
Parser
(Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Text
-> Parser
(DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"body"
Parser
(DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser DateTime
-> Parser
(Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser DateTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"created_at"
Parser
(Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Bool
-> Parser
(Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"draft"
Parser
(Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Text
-> Parser
(Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"html_url"
Parser
(Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Int
-> Parser
(Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
(Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Int
-> Parser
(Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"mentions_count"
Parser
(Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Text
-> Parser
(Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Text
-> Parser
(Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"node_id"
Parser
(Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser Bool
-> Parser
(Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"prerelease"
Parser
(Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Parser (Maybe DateTime)
-> Parser
(Text
-> Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"published_at"
Parser
(Text
-> Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
-> Parser Text
-> Parser
(Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"tag_name"
Parser
(Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"tarball_url"
Parser (Text -> Text -> Text -> Maybe Text -> Release)
-> Parser Text -> Parser (Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"target_commitish"
Parser (Text -> Text -> Maybe Text -> Release)
-> Parser Text -> Parser (Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"upload_url"
Parser (Text -> Maybe Text -> Release)
-> Parser Text -> Parser (Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"url"
Parser (Maybe Text -> Release)
-> Parser (Maybe Text) -> Parser Release
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"zipball_url"
parseJSON Value
_ = String -> Parser Release
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Release"
instance ToJSON Release where
toJSON :: Release -> Value
toJSON Release{Bool
Int
[Text]
Maybe Text
Maybe DateTime
Text
DateTime
User
releaseZipballUrl :: Maybe Text
releaseUrl :: Text
releaseUploadUrl :: Text
releaseTargetCommitish :: Text
releaseTarballUrl :: Maybe Text
releaseTagName :: Text
releasePublishedAt :: Maybe DateTime
releasePrerelease :: Bool
releaseNodeId :: Text
releaseName :: Text
releaseMentionsCount :: Int
releaseId :: Int
releaseHtmlUrl :: Text
releaseDraft :: Bool
releaseCreatedAt :: DateTime
releaseBody :: Text
releaseAuthor :: User
releaseAssetsUrl :: Text
releaseAssets :: [Text]
releaseZipballUrl :: Release -> Maybe Text
releaseUrl :: Release -> Text
releaseUploadUrl :: Release -> Text
releaseTargetCommitish :: Release -> Text
releaseTarballUrl :: Release -> Maybe Text
releaseTagName :: Release -> Text
releasePublishedAt :: Release -> Maybe DateTime
releasePrerelease :: Release -> Bool
releaseNodeId :: Release -> Text
releaseName :: Release -> Text
releaseMentionsCount :: Release -> Int
releaseId :: Release -> Int
releaseHtmlUrl :: Release -> Text
releaseDraft :: Release -> Bool
releaseCreatedAt :: Release -> DateTime
releaseBody :: Release -> Text
releaseAuthor :: Release -> User
releaseAssetsUrl :: Release -> Text
releaseAssets :: Release -> [Text]
..} = [Pair] -> Value
object
[ Key
"assets" Key -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [Text]
releaseAssets
, Key
"assets_url" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseAssetsUrl
, Key
"author" Key -> User -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= User
releaseAuthor
, Key
"body" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseBody
, Key
"created_at" Key -> DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= DateTime
releaseCreatedAt
, Key
"draft" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
releaseDraft
, Key
"html_url" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseHtmlUrl
, Key
"id" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
releaseId
, Key
"mentions_count" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
releaseMentionsCount
, Key
"name" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseName
, Key
"node_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseNodeId
, Key
"prerelease" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
releasePrerelease
, Key
"published_at" Key -> Maybe DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe DateTime
releasePublishedAt
, Key
"tag_name" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseTagName
, Key
"tarball_url" Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
releaseTarballUrl
, Key
"target_commitish" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseTargetCommitish
, Key
"upload_url" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseUploadUrl
, Key
"url" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
releaseUrl
, Key
"zipball_url" Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
releaseZipballUrl
]
instance Arbitrary Release where
arbitrary :: Gen Release
arbitrary = [Text]
-> Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release
Release
([Text]
-> Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen [Text]
-> Gen
(Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen [Text]
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Text
-> Gen
(User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen
(User
-> Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen User
-> Gen
(Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen User
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Text
-> Gen
(DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen
(DateTime
-> Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen DateTime
-> Gen
(Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen DateTime
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Bool
-> Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Bool
-> Gen
(Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Bool
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Text
-> Gen
(Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Int
-> Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Int
-> Gen
(Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Int
-> Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Int
-> Gen
(Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Text
-> Gen
(Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Text
-> Gen
(Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Bool
-> Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen Bool
-> Gen
(Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Bool
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Maybe DateTime
-> Text
-> Maybe Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Release)
-> Gen (Maybe DateTime)
-> Gen
(Text
-> Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe DateTime)
forall a. Arbitrary a => Gen a
arbitrary
Gen
(Text
-> Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
-> Gen Text
-> Gen
(Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen (Maybe Text -> Text -> Text -> Text -> Maybe Text -> Release)
-> Gen (Maybe Text)
-> Gen (Text -> Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
Gen (Text -> Text -> Text -> Maybe Text -> Release)
-> Gen Text -> Gen (Text -> Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen (Text -> Text -> Maybe Text -> Release)
-> Gen Text -> Gen (Text -> Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen (Text -> Maybe Text -> Release)
-> Gen Text -> Gen (Maybe Text -> Release)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
Gen (Maybe Text -> Release) -> Gen (Maybe Text) -> Gen Release
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary