{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards   #-}
{-# LANGUAGE StrictData        #-}
module GitHub.Types.Base.PullRequest 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.Commit
import           GitHub.Types.Base.DateTime
import           GitHub.Types.Base.Label
import           GitHub.Types.Base.Milestone
import           GitHub.Types.Base.PullRequestLinks
import           GitHub.Types.Base.Team
import           GitHub.Types.Base.User

------------------------------------------------------------------------------
-- PullRequest

data PullRequest = PullRequest
    { PullRequest -> Int
pullRequestAdditions           :: Int
    , PullRequest -> Maybe User
pullRequestAssignee            :: Maybe User
    , PullRequest -> [User]
pullRequestAssignees           :: [User]
    , PullRequest -> Text
pullRequestAuthorAssociation   :: Text
    , PullRequest -> Commit
pullRequestBase                :: Commit
    , PullRequest -> Maybe Text
pullRequestBody                :: Maybe Text
    , PullRequest -> Int
pullRequestChangedFiles        :: Int
    , PullRequest -> Maybe DateTime
pullRequestClosedAt            :: Maybe DateTime
    , PullRequest -> Int
pullRequestComments            :: Int
    , PullRequest -> Text
pullRequestCommentsUrl         :: Text
    , PullRequest -> Int
pullRequestCommits             :: Int
    , PullRequest -> Text
pullRequestCommitsUrl          :: Text
    , PullRequest -> DateTime
pullRequestCreatedAt           :: DateTime
    , PullRequest -> Int
pullRequestDeletions           :: Int
    , PullRequest -> Text
pullRequestDiffUrl             :: Text
    , PullRequest -> Bool
pullRequestDraft               :: Bool
    , PullRequest -> Commit
pullRequestHead                :: Commit
    , PullRequest -> Text
pullRequestHtmlUrl             :: Text
    , PullRequest -> Int
pullRequestId                  :: Int
    , PullRequest -> Text
pullRequestIssueUrl            :: Text
    , PullRequest -> [Label]
pullRequestLabels              :: [Label]
    , PullRequest -> PullRequestLinks
pullRequestLinks               :: PullRequestLinks
    , PullRequest -> Bool
pullRequestLocked              :: Bool
    , PullRequest -> Bool
pullRequestMaintainerCanModify :: Bool
    , PullRequest -> Maybe Bool
pullRequestMergeable           :: Maybe Bool
    , PullRequest -> Text
pullRequestMergeableState      :: Text
    , PullRequest -> Maybe Text
pullRequestMergeCommitSha      :: Maybe Text
    , PullRequest -> Bool
pullRequestMerged              :: Bool
    , PullRequest -> Maybe DateTime
pullRequestMergedAt            :: Maybe DateTime
    , PullRequest -> Maybe User
pullRequestMergedBy            :: Maybe User
    , PullRequest -> Maybe Milestone
pullRequestMilestone           :: Maybe Milestone
    , PullRequest -> Text
pullRequestNodeId              :: Text
    , PullRequest -> Int
pullRequestNumber              :: Int
    , PullRequest -> Text
pullRequestPatchUrl            :: Text
    , PullRequest -> Maybe Bool
pullRequestRebaseable          :: Maybe Bool
    , PullRequest -> [User]
pullRequestRequestedReviewers  :: [User]
    , PullRequest -> [Team]
pullRequestRequestedTeams      :: [Team]
    , PullRequest -> Int
pullRequestReviewComments      :: Int
    , PullRequest -> Text
pullRequestReviewCommentsUrl   :: Text
    , PullRequest -> Text
pullRequestReviewCommentUrl    :: Text
    , PullRequest -> Text
pullRequestState               :: Text
    , PullRequest -> Text
pullRequestStatusesUrl         :: Text
    , PullRequest -> Text
pullRequestTitle               :: Text
    , PullRequest -> DateTime
pullRequestUpdatedAt           :: DateTime
    , PullRequest -> Text
pullRequestUrl                 :: Text
    , PullRequest -> User
pullRequestUser                :: User
    } deriving (PullRequest -> PullRequest -> Bool
(PullRequest -> PullRequest -> Bool)
-> (PullRequest -> PullRequest -> Bool) -> Eq PullRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PullRequest -> PullRequest -> Bool
$c/= :: PullRequest -> PullRequest -> Bool
== :: PullRequest -> PullRequest -> Bool
$c== :: PullRequest -> PullRequest -> Bool
Eq, Int -> PullRequest -> ShowS
[PullRequest] -> ShowS
PullRequest -> String
(Int -> PullRequest -> ShowS)
-> (PullRequest -> String)
-> ([PullRequest] -> ShowS)
-> Show PullRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PullRequest] -> ShowS
$cshowList :: [PullRequest] -> ShowS
show :: PullRequest -> String
$cshow :: PullRequest -> String
showsPrec :: Int -> PullRequest -> ShowS
$cshowsPrec :: Int -> PullRequest -> ShowS
Show, ReadPrec [PullRequest]
ReadPrec PullRequest
Int -> ReadS PullRequest
ReadS [PullRequest]
(Int -> ReadS PullRequest)
-> ReadS [PullRequest]
-> ReadPrec PullRequest
-> ReadPrec [PullRequest]
-> Read PullRequest
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PullRequest]
$creadListPrec :: ReadPrec [PullRequest]
readPrec :: ReadPrec PullRequest
$creadPrec :: ReadPrec PullRequest
readList :: ReadS [PullRequest]
$creadList :: ReadS [PullRequest]
readsPrec :: Int -> ReadS PullRequest
$creadsPrec :: Int -> ReadS PullRequest
Read)


instance FromJSON PullRequest where
    parseJSON :: Value -> Parser PullRequest
parseJSON (Object Object
x) = Int
-> Maybe User
-> [User]
-> Text
-> Commit
-> Maybe Text
-> Int
-> Maybe DateTime
-> Int
-> Text
-> Int
-> Text
-> DateTime
-> Int
-> Text
-> Bool
-> Commit
-> Text
-> Int
-> Text
-> [Label]
-> PullRequestLinks
-> Bool
-> Bool
-> Maybe Bool
-> Text
-> Maybe Text
-> Bool
-> Maybe DateTime
-> Maybe User
-> Maybe Milestone
-> Text
-> Int
-> Text
-> Maybe Bool
-> [User]
-> [Team]
-> Int
-> Text
-> Text
-> Text
-> Text
-> Text
-> DateTime
-> Text
-> User
-> PullRequest
PullRequest
        (Int
 -> Maybe User
 -> [User]
 -> Text
 -> Commit
 -> Maybe Text
 -> Int
 -> Maybe DateTime
 -> Int
 -> Text
 -> Int
 -> Text
 -> DateTime
 -> Int
 -> Text
 -> Bool
 -> Commit
 -> Text
 -> Int
 -> Text
 -> [Label]
 -> PullRequestLinks
 -> Bool
 -> Bool
 -> Maybe Bool
 -> Text
 -> Maybe Text
 -> Bool
 -> Maybe DateTime
 -> Maybe User
 -> Maybe Milestone
 -> Text
 -> Int
 -> Text
 -> Maybe Bool
 -> [User]
 -> [Team]
 -> Int
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> DateTime
 -> Text
 -> User
 -> PullRequest)
-> Parser Int
-> Parser
     (Maybe User
      -> [User]
      -> Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
x Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"additions"
        Parser
  (Maybe User
   -> [User]
   -> Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe User)
-> Parser
     ([User]
      -> Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe User)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"assignee"
        Parser
  ([User]
   -> Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser [User]
-> Parser
     (Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"assignees"
        Parser
  (Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"author_association"
        Parser
  (Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Commit
-> Parser
     (Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Commit
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"base"
        Parser
  (Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"body"
        Parser
  (Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"changed_files"
        Parser
  (Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe DateTime)
-> Parser
     (Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"closed_at"
        Parser
  (Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"comments"
        Parser
  (Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"comments_url"
        Parser
  (Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"commits"
        Parser
  (Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"commits_url"
        Parser
  (DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser DateTime
-> Parser
     (Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
  (Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"deletions"
        Parser
  (Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"diff_url"
        Parser
  (Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Bool
-> Parser
     (Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
  (Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Commit
-> Parser
     (Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser Commit
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"head"
        Parser
  (Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
  (Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     ([Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"issue_url"
        Parser
  ([Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser [Label]
-> Parser
     (PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser [Label]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"labels"
        Parser
  (PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser PullRequestLinks
-> Parser
     (Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser PullRequestLinks
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"_links"
        Parser
  (Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Bool
-> Parser
     (Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"locked"
        Parser
  (Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Bool
-> Parser
     (Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"maintainer_can_modify"
        Parser
  (Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe Bool)
-> Parser
     (Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"mergeable"
        Parser
  (Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"mergeable_state"
        Parser
  (Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe Text)
-> Parser
     (Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"merge_commit_sha"
        Parser
  (Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Bool
-> Parser
     (Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"merged"
        Parser
  (Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"merged_at"
        Parser
  (Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe User)
-> Parser
     (Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe User)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"merged_by"
        Parser
  (Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe Milestone)
-> Parser
     (Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Milestone)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"milestone"
        Parser
  (Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
  (Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"number"
        Parser
  (Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"patch_url"
        Parser
  (Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser (Maybe Bool)
-> Parser
     ([User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"rebaseable"
        Parser
  ([User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser [User]
-> Parser
     ([Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"requested_reviewers"
        Parser
  ([Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser [Team]
-> Parser
     (Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
x Object -> Key -> Parser [Team]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"requested_teams"
        Parser
  (Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Int
-> Parser
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
"review_comments"
        Parser
  (Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Parser Text
-> Parser
     (Text
      -> Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
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
"review_comments_url"
        Parser
  (Text
   -> Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
-> Parser Text
-> Parser
     (Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
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
"review_comment_url"
        Parser
  (Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
-> Parser Text
-> Parser (Text -> Text -> DateTime -> Text -> User -> PullRequest)
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
"state"
        Parser (Text -> Text -> DateTime -> Text -> User -> PullRequest)
-> Parser Text
-> Parser (Text -> DateTime -> Text -> User -> PullRequest)
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
"statuses_url"
        Parser (Text -> DateTime -> Text -> User -> PullRequest)
-> Parser Text -> Parser (DateTime -> Text -> User -> PullRequest)
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
"title"
        Parser (DateTime -> Text -> User -> PullRequest)
-> Parser DateTime -> Parser (Text -> User -> PullRequest)
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
"updated_at"
        Parser (Text -> User -> PullRequest)
-> Parser Text -> Parser (User -> PullRequest)
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 (User -> PullRequest) -> Parser User -> Parser PullRequest
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
"user"

    parseJSON Value
_ = String -> Parser PullRequest
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"PullRequest"


instance ToJSON PullRequest where
    toJSON :: PullRequest -> Value
toJSON PullRequest{Bool
Int
[Label]
[Team]
[User]
Maybe Bool
Maybe Text
Maybe DateTime
Maybe User
Maybe Milestone
Text
DateTime
PullRequestLinks
User
Commit
pullRequestUser :: User
pullRequestUrl :: Text
pullRequestUpdatedAt :: DateTime
pullRequestTitle :: Text
pullRequestStatusesUrl :: Text
pullRequestState :: Text
pullRequestReviewCommentUrl :: Text
pullRequestReviewCommentsUrl :: Text
pullRequestReviewComments :: Int
pullRequestRequestedTeams :: [Team]
pullRequestRequestedReviewers :: [User]
pullRequestRebaseable :: Maybe Bool
pullRequestPatchUrl :: Text
pullRequestNumber :: Int
pullRequestNodeId :: Text
pullRequestMilestone :: Maybe Milestone
pullRequestMergedBy :: Maybe User
pullRequestMergedAt :: Maybe DateTime
pullRequestMerged :: Bool
pullRequestMergeCommitSha :: Maybe Text
pullRequestMergeableState :: Text
pullRequestMergeable :: Maybe Bool
pullRequestMaintainerCanModify :: Bool
pullRequestLocked :: Bool
pullRequestLinks :: PullRequestLinks
pullRequestLabels :: [Label]
pullRequestIssueUrl :: Text
pullRequestId :: Int
pullRequestHtmlUrl :: Text
pullRequestHead :: Commit
pullRequestDraft :: Bool
pullRequestDiffUrl :: Text
pullRequestDeletions :: Int
pullRequestCreatedAt :: DateTime
pullRequestCommitsUrl :: Text
pullRequestCommits :: Int
pullRequestCommentsUrl :: Text
pullRequestComments :: Int
pullRequestClosedAt :: Maybe DateTime
pullRequestChangedFiles :: Int
pullRequestBody :: Maybe Text
pullRequestBase :: Commit
pullRequestAuthorAssociation :: Text
pullRequestAssignees :: [User]
pullRequestAssignee :: Maybe User
pullRequestAdditions :: Int
pullRequestUser :: PullRequest -> User
pullRequestUrl :: PullRequest -> Text
pullRequestUpdatedAt :: PullRequest -> DateTime
pullRequestTitle :: PullRequest -> Text
pullRequestStatusesUrl :: PullRequest -> Text
pullRequestState :: PullRequest -> Text
pullRequestReviewCommentUrl :: PullRequest -> Text
pullRequestReviewCommentsUrl :: PullRequest -> Text
pullRequestReviewComments :: PullRequest -> Int
pullRequestRequestedTeams :: PullRequest -> [Team]
pullRequestRequestedReviewers :: PullRequest -> [User]
pullRequestRebaseable :: PullRequest -> Maybe Bool
pullRequestPatchUrl :: PullRequest -> Text
pullRequestNumber :: PullRequest -> Int
pullRequestNodeId :: PullRequest -> Text
pullRequestMilestone :: PullRequest -> Maybe Milestone
pullRequestMergedBy :: PullRequest -> Maybe User
pullRequestMergedAt :: PullRequest -> Maybe DateTime
pullRequestMerged :: PullRequest -> Bool
pullRequestMergeCommitSha :: PullRequest -> Maybe Text
pullRequestMergeableState :: PullRequest -> Text
pullRequestMergeable :: PullRequest -> Maybe Bool
pullRequestMaintainerCanModify :: PullRequest -> Bool
pullRequestLocked :: PullRequest -> Bool
pullRequestLinks :: PullRequest -> PullRequestLinks
pullRequestLabels :: PullRequest -> [Label]
pullRequestIssueUrl :: PullRequest -> Text
pullRequestId :: PullRequest -> Int
pullRequestHtmlUrl :: PullRequest -> Text
pullRequestHead :: PullRequest -> Commit
pullRequestDraft :: PullRequest -> Bool
pullRequestDiffUrl :: PullRequest -> Text
pullRequestDeletions :: PullRequest -> Int
pullRequestCreatedAt :: PullRequest -> DateTime
pullRequestCommitsUrl :: PullRequest -> Text
pullRequestCommits :: PullRequest -> Int
pullRequestCommentsUrl :: PullRequest -> Text
pullRequestComments :: PullRequest -> Int
pullRequestClosedAt :: PullRequest -> Maybe DateTime
pullRequestChangedFiles :: PullRequest -> Int
pullRequestBody :: PullRequest -> Maybe Text
pullRequestBase :: PullRequest -> Commit
pullRequestAuthorAssociation :: PullRequest -> Text
pullRequestAssignees :: PullRequest -> [User]
pullRequestAssignee :: PullRequest -> Maybe User
pullRequestAdditions :: PullRequest -> Int
..} = [Pair] -> Value
object
        [ Key
"additions"             Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestAdditions
        , Key
"assignee"              Key -> Maybe User -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe User
pullRequestAssignee
        , Key
"assignees"             Key -> [User] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [User]
pullRequestAssignees
        , Key
"author_association"    Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestAuthorAssociation
        , Key
"base"                  Key -> Commit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Commit
pullRequestBase
        , Key
"body"                  Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
pullRequestBody
        , Key
"changed_files"         Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestChangedFiles
        , Key
"closed_at"             Key -> Maybe DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe DateTime
pullRequestClosedAt
        , Key
"comments"              Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestComments
        , Key
"comments_url"          Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestCommentsUrl
        , Key
"commits"               Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestCommits
        , Key
"commits_url"           Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestCommitsUrl
        , Key
"created_at"            Key -> DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= DateTime
pullRequestCreatedAt
        , Key
"deletions"             Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestDeletions
        , Key
"diff_url"              Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestDiffUrl
        , Key
"draft"                 Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
pullRequestDraft
        , Key
"head"                  Key -> Commit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Commit
pullRequestHead
        , Key
"html_url"              Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestHtmlUrl
        , Key
"id"                    Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestId
        , Key
"issue_url"             Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestIssueUrl
        , Key
"labels"                Key -> [Label] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [Label]
pullRequestLabels
        , Key
"_links"                Key -> PullRequestLinks -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= PullRequestLinks
pullRequestLinks
        , Key
"locked"                Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
pullRequestLocked
        , Key
"maintainer_can_modify" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
pullRequestMaintainerCanModify
        , Key
"mergeable"             Key -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Bool
pullRequestMergeable
        , Key
"mergeable_state"       Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestMergeableState
        , Key
"merge_commit_sha"      Key -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
pullRequestMergeCommitSha
        , Key
"merged"                Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Bool
pullRequestMerged
        , Key
"merged_at"             Key -> Maybe DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe DateTime
pullRequestMergedAt
        , Key
"merged_by"             Key -> Maybe User -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe User
pullRequestMergedBy
        , Key
"milestone"             Key -> Maybe Milestone -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Milestone
pullRequestMilestone
        , Key
"node_id"               Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestNodeId
        , Key
"number"                Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestNumber
        , Key
"patch_url"             Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestPatchUrl
        , Key
"rebaseable"            Key -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Maybe Bool
pullRequestRebaseable
        , Key
"requested_reviewers"   Key -> [User] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [User]
pullRequestRequestedReviewers
        , Key
"requested_teams"       Key -> [Team] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= [Team]
pullRequestRequestedTeams
        , Key
"review_comments"       Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Int
pullRequestReviewComments
        , Key
"review_comments_url"   Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestReviewCommentsUrl
        , Key
"review_comment_url"    Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestReviewCommentUrl
        , Key
"state"                 Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestState
        , Key
"statuses_url"          Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestStatusesUrl
        , Key
"title"                 Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestTitle
        , Key
"updated_at"            Key -> DateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= DateTime
pullRequestUpdatedAt
        , Key
"url"                   Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= Text
pullRequestUrl
        , Key
"user"                  Key -> User -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
.= User
pullRequestUser
        ]


instance Arbitrary PullRequest where
    arbitrary :: Gen PullRequest
arbitrary = Int
-> Maybe User
-> [User]
-> Text
-> Commit
-> Maybe Text
-> Int
-> Maybe DateTime
-> Int
-> Text
-> Int
-> Text
-> DateTime
-> Int
-> Text
-> Bool
-> Commit
-> Text
-> Int
-> Text
-> [Label]
-> PullRequestLinks
-> Bool
-> Bool
-> Maybe Bool
-> Text
-> Maybe Text
-> Bool
-> Maybe DateTime
-> Maybe User
-> Maybe Milestone
-> Text
-> Int
-> Text
-> Maybe Bool
-> [User]
-> [Team]
-> Int
-> Text
-> Text
-> Text
-> Text
-> Text
-> DateTime
-> Text
-> User
-> PullRequest
PullRequest
        (Int
 -> Maybe User
 -> [User]
 -> Text
 -> Commit
 -> Maybe Text
 -> Int
 -> Maybe DateTime
 -> Int
 -> Text
 -> Int
 -> Text
 -> DateTime
 -> Int
 -> Text
 -> Bool
 -> Commit
 -> Text
 -> Int
 -> Text
 -> [Label]
 -> PullRequestLinks
 -> Bool
 -> Bool
 -> Maybe Bool
 -> Text
 -> Maybe Text
 -> Bool
 -> Maybe DateTime
 -> Maybe User
 -> Maybe Milestone
 -> Text
 -> Int
 -> Text
 -> Maybe Bool
 -> [User]
 -> [Team]
 -> Int
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> DateTime
 -> Text
 -> User
 -> PullRequest)
-> Gen Int
-> Gen
     (Maybe User
      -> [User]
      -> Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe User
   -> [User]
   -> Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe User)
-> Gen
     ([User]
      -> Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe User)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  ([User]
   -> Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen [User]
-> Gen
     (Text
      -> Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen [User]
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Commit
      -> Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Commit
   -> Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Commit
-> Gen
     (Maybe Text
      -> Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Commit
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Text
   -> Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe Text)
-> Gen
     (Int
      -> Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Maybe DateTime
      -> Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe DateTime
   -> Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe DateTime)
-> Gen
     (Int
      -> Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe DateTime)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Int
      -> Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (DateTime
      -> Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (DateTime
   -> Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen DateTime
-> Gen
     (Int
      -> Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen DateTime
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Bool
      -> Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Bool
   -> Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Bool
-> Gen
     (Commit
      -> Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Bool
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Commit
   -> Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Commit
-> Gen
     (Text
      -> Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Commit
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Int
      -> Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> [Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> [Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     ([Label]
      -> PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  ([Label]
   -> PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen [Label]
-> Gen
     (PullRequestLinks
      -> Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen [Label]
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (PullRequestLinks
   -> Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen PullRequestLinks
-> Gen
     (Bool
      -> Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen PullRequestLinks
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Bool
   -> Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Bool
-> Gen
     (Bool
      -> Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Bool
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Bool
   -> Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Bool
-> Gen
     (Maybe Bool
      -> Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Bool
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Bool
   -> Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe Bool)
-> Gen
     (Text
      -> Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Bool)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Maybe Text
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Maybe Text
      -> Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
   -> Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe Text)
-> Gen
     (Bool
      -> Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Text)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Bool
   -> Maybe DateTime
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Bool
-> Gen
     (Maybe DateTime
      -> Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
   -> Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe DateTime)
-> Gen
     (Maybe User
      -> Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe DateTime)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe User
   -> Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe User)
-> Gen
     (Maybe Milestone
      -> Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe User)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Milestone
   -> Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe Milestone)
-> Gen
     (Text
      -> Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Milestone)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Int
      -> Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Int
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Text
   -> Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Maybe Bool
      -> [User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Maybe Bool
   -> [User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen (Maybe Bool)
-> Gen
     ([User]
      -> [Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen (Maybe Bool)
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  ([User]
   -> [Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen [User]
-> Gen
     ([Team]
      -> Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen [User]
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  ([Team]
   -> Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen [Team]
-> Gen
     (Int
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen [Team]
forall a. Arbitrary a => Gen a
arbitrary
        Gen
  (Int
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Int
-> Gen
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> DateTime
      -> Text
      -> User
      -> PullRequest)
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
   -> Text
   -> Text
   -> Text
   -> DateTime
   -> Text
   -> User
   -> PullRequest)
-> Gen Text
-> Gen
     (Text
      -> Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
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 -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
-> Gen Text
-> Gen
     (Text -> Text -> Text -> DateTime -> Text -> User -> PullRequest)
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 -> Text -> DateTime -> Text -> User -> PullRequest)
-> Gen Text
-> Gen (Text -> Text -> DateTime -> Text -> User -> PullRequest)
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 -> DateTime -> Text -> User -> PullRequest)
-> Gen Text
-> Gen (Text -> DateTime -> Text -> User -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> DateTime -> Text -> User -> PullRequest)
-> Gen Text -> Gen (DateTime -> Text -> User -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (DateTime -> Text -> User -> PullRequest)
-> Gen DateTime -> Gen (Text -> User -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen DateTime
forall a. Arbitrary a => Gen a
arbitrary
        Gen (Text -> User -> PullRequest)
-> Gen Text -> Gen (User -> PullRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen Text
forall a. Arbitrary a => Gen a
arbitrary
        Gen (User -> PullRequest) -> Gen User -> Gen PullRequest
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen User
forall a. Arbitrary a => Gen a
arbitrary