$7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None+Or a b represents a or b The reason why we don't use Either type is that Either Int String type parses { "left": 1 } or { "right": "foo" }, but we want to parse 1 or "foo".used in StatusEvent  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)*+,-./0123456789:;#$%&'( !"    !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneNone  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !!"#$$%&'())*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~github-post-receive-1.1.0.0Github.PostReceive.TypesGithub.PostReceive.ServerGithub.PostReceiveemail-validate-2.0.1Text.Email.Parser EmailAddressOrRLTreetreeSHAtreeUrlSimpleStatusCommitsimpleStatusCommitAuthorsimpleStatusCommitCommittersimpleStatusCommitMessagesimpleStatusCommitTreesimpleStatusCommitUrlsimpleStatusCommitCommentCount StatusCommitstatusCommitSHAstatusCommitCommitstatusCommitUrlstatusCommitHtmlUrlstatusCommitCommentsUrlstatusCommitAuthorstatusCommitCommitterstatusCommitParents SimpleCommitsimpleCommitShasimpleCommitUrlsimpleCommitHtmlUrlBranch branchName branchCommit SimpleUsersimpleUserNamesimpleUserEmailsimpleUserUsernamesimpleUserDateUser userLoginuserId userAvatarUrluserGravatarIduserUrl userHtmlUrluserFollowersUrluserFollowingUrl userGistsUrluserStarredUrluserSubscriptionsUrluserOrganizationsUrl userReposUrl userEventsUrluserReceivedEventsUrluserType userSiteAdmin RepositoryrepoIdrepoName repoFullName repoOwner repoPrivate repoHtmlUrlrepoDescriptionrepoForkrepoUrl repoForksUrl repoKeysUrlrepoCollaboratorsUrl repoTeamsUrl repoHooksUrlrepoIssueEventsUrl repoEventsUrlrepoAssigneesUrlrepoBranchesUrl repoTagsUrl repoBlobsUrlrepoGitTagsUrlrepoGitRefsUrl repoTreesUrlrepoStatusesUrlrepoLanguagesUrlrepoStargazersUrlrepoContributorsUrlrepoSubscribersUrlrepoSubscriptionUrlrepoCommitsUrlrepoGitCommitsUrlrepoIssueCommentUrlrepoContentsUrlrepoCompareUrl repoMergesUrlrepoArchiveUrlrepoDownloadsUrl repoIssuesUrl repoPullsUrlrepoMilestonesUrlrepoNotificationsUrl repoLabelsUrlrepoReleasesUrl repoCreatedAt repoUpdatedAt repoPushedAt repoGitUrl repoSshUrl repoCloneUrl repoSvnUrl repoHomepagerepoSizerepoStargazersCountrepoWatchersCount repoLanguage repoHasIssuesrepoHasDownloads repoHasWiki repoHasPagesrepoForksCount repoMirrorUrlrepoOpenIssuesCount repoForksrepoOpenIssues repoWatchersrepoStargazersrepoMasterBranchCommitcommitIdcommitDistinct commitMessagecommitTimestamp commitUrl commitAuthorcommitCommitter commitAdded commitRemovedcommitModified StatusEvent statusEventIdstatusEventSHAstatusEventNamestatusEventTargetUrlstatusEventContextstatusEventDescriptionstatusEventStatestatusEventCommitstatusEventBranchesstatusEventCreatedAtstatusEventUpdatedAtstatusEventRepositorystatusEventSender PushEvent pushEventRefpushEventBeforepushEventAfterpushEventCreatedpushEventDeletedpushEventForcedpushEventBaseRefpushEventComparepushEventCommitspushEventHeadCommitpushEventRepositorypushEventPusherpushEventSenderPayloadStatusPushtoEitherstartappUrl $fFromJSONOr$fFromJSONTree$fFromJSONSimpleStatusCommit$fFromJSONStatusCommit$fFromJSONSimpleCommit$fFromJSONBranch$fFromJSONEmailAddress$fFromJSONSimpleUser$fFromJSONUser$fFromJSONRepository$fFromJSONCommit$fFromJSONStatusEvent$fFromJSONPushEvent$fFromJSONPayload