{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                   Safe  NoneNoneA - describes the particular event that happenedfLeft means we got an exception trying to parse the response; Right means we succeeded and here it is.If there is a   in the ConnectionData? struct, it will be sporadically called with values of type . A  . is any function which responds to log events:     None"LWe return a list of headers so that we can treat the headers like a monoid. !" !" !" !"NoneI+This unwraps a 9 value, throwing a provided exception if the value is .,This unwraps an 3 value, throwing the contained exception if the  was a  value.-This asserts that the provided  is 7, throwing a provided exception is the argument was .."Case Insensitive string comparison/-HTTP ends newlines with rn sequence, but the  connection package doesn't know this so we need to drop the r after reading lines. This should only be needed in your compatibility with the HTTP library.0Creates a new connection to Hostname from an already initialized ConnectionContext. Internally it uses  to cleanup the connection.1Creates a connection from a U value, returning it. It is the user's responsibility to close this appropriately.2+Get exact count of bytes from a connection.The size argument is the exact amount that must be returned to the user. The call will wait until all data is available. Hence, it behaves like .On end of input, 2 will throw an   exception. Taken from: 3https://github.com/vincenthz/hs-connection/issues/9+,-./012+,-./012-+,./012+,-./012None!"<=?I\@Creates a structure representing a TLS connection to the server.+Plaintext HTTP instead of a TLS connection.Attempt to expose a < as a 3Attempt to expose a < as a 33456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEGFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefikghjlmnopqrstuwvxyz{|}~|}~xyz{tuvwpqrslmnofghijkcdeab^_`[\]MNOPQRSTUVWXYZHIJKLEFGABCD89:;<=>?@234567/01,-. !"#$%&'()*+     stuvwxyz{|}~pqrmnoefghijkl_`abcdZ[\]^TUVWXYHIJKLMNOPQRSEFGBCD<=>?@A89:;345673456789:;<=>?@ABCDEFGH IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneNone is the same as y but takes a user-defined predicate that it uses to select which events to log before writing them to the provided @ prints the full data of every logging event to the provided .3 prints the full data of every logging event to .h takes a user-defined predicate that it uses to select which events to log before logging them to . is the same as y but takes a user-defined predicate that it uses to select which events to log before writing them to the provided a prints which calls are happening and which endpoints are being hit, but without the payloads.5 prints request/response data without payloads to h takes a user-defined predicate that it uses to select which events to log before logging them to .   Safe0None!"9;B66  NoneOT"This is the same type alias as in  Control.Lens1, and so can be used anywhere lenses are needed.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ! /.-,+*)('&%$#"76543210HGFEDCBA@?>=<;:98XWVUTSRQPONMLKJI]\[ZYlkjihgfedcba`_^tsrqponmvuzyxw~}|{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None0T ;  NoneLT5#Parse a path, failing if we cannot.@Parse the JSON body out of a request, failing if it isn't an 'application/json'# response, or if the parsing failed<Grab a header from the response, failing if it isn't presentWe should really only need this function to get an auth token. We provide it in a fairly generic form in case we need ever need it but it could be inlined into mmLogin.Fire off a login attempt. Note: We get back more than just the auth token. We also get all the server-side configuration data for the user.route: /api/v3/users/loginFire off a login attempt. Note: We get back more than just the auth token. We also get all the server-side configuration data for the user.route: /api/v3/users/initial_load?Requires an authenticated user. Returns the full list of teams.route: /api/v3/teams/allroute: /api/v3/teams/createqRequires an authenticated user. Returns the full list of channels for a given team of which the user is a memberroute: !/api/v3/teams/{team_id}/channels/jRequires an authenticated user. Returns the channels for a team of which the user is not already a memberroute: 6/api/v3/teams/{team_id}/channels/more/{offset}/{limit}KRequires an authenticated user. Returns the details of a specific channel.route: -/api/v3/teams/{team_id}/channels/{channel_id}"Get channel/user metadata in bulk.route: %/api/v3/teams/{team_id}/channels/viewroute: 2/api/v3/teams/{team_id}/channels/{channel_id}/joinroute: 3/api/v3/teams/{team_id}/channels/{channel_id}/leaveroute: I/api/v3/teams/{team_id}/channels/{channel_id}/posts/page/{offset}/{limit}route: D/api/v3/teams/{team_id}/channels/{channel_id}/posts/since/{utc_time}route: A/api/v3/teams/{team_id}/channels/{channel_id}/posts/{post_id}/getroute: T/api/v3/teams/{team_id}/channels/{channel_id}/posts/{post_id}/after/{offset}/{limit}route: U/api/v3/teams/{team_id}/channels/{channel_id}/posts/{post_id}/before/{offset}/{limit}route: $/api/v4/teams/{team_id}/posts/searchroute:  /api/v3/files/{file_id}/get_inforoute: /api/v4/files/{file_id}route: /api/v3/users/{user_id}/getroute: /api/v3/users/{offset}/{limit}route: /api/v3/teams/members/{team_id}route: D/api/v3/teams/{team_id}/channels/{channel_id}/users/{offset}/{limit}route: ,/api/v3/users/profiles_for_dm_list/{team_id}route: /api/v3/users/meroute: ./api/v3/teams/{team_id}/users/{offset}/{limit}route: /api/v3/users/statusroute: ./api/v3/teams/{team_id}/channels/create_directroute: '/api/v3/teams/{team_id}/channels/createroute: 4/api/v3/teams/{team_id}/channels/{channel_id}/deleteroute: D/api/v3/teams/{team_id}/channels/{channel_id}/posts/{post_id}/deleteroute: :/api/v3/teams/{team_id}/channels/{channel_id}/posts/updateroute: :/api/v3/teams/{team_id}/channels/{channel_id}/posts/createAGet the system configuration. Requires administrative permission.route: /api/v3/admin/configroute: 1/api/v3/teams/{team_id}/channels/{channel_id}/addroute: (/api/v3/teams/{team_id}/add_user_to_teamroute: (/api/v3/teams/{team_id}/commands/executeroute: /api/v3/users/createroute: /api/v3/users/createroute: G/api/v3/teams/{team_id}/channels/{channel_id}/posts/{post_id}/reactionsroute: /api/v3/preferences/saveroute: /api/v3/preferences/saveroute: /api/v3/preferences/save8This is a convenience function for a particular use of mmSavePreferenceroute: /api/v3/preferences/save8This is a convenience function for a particular use of mmSavePreference5Remove the specified user from the specified channel.bCreate a group channel containing the specified users in addition to the user making the request.3This is for making a generic authenticated request.route: ./api/v3/teams/{team_id}/channels/update_headerThis instance allows us to use  simpleHTTP from  with connections from the  connection package.Echannel to viewprevious channel= +,-34567<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno      !"#$%&'()*+,-.HIJKLMNOPQRSTUVWXYZ[\]^_`abfikghjtuwvx=tuvw x^_`MNOPQRSTUVWXYZHIJKLfghijk[\]Z[\]^ !"#$%&'()*+,-.     _`abcdTUVWXYefghijklmno<=>?@AHIJKLMNOPQRSEFGBCD34567  ab,+-E !"#$$%&'()*+,-.//0123456789:;<=>?@ABBCDEFFGHIIJKLMNNOPPQRSTUVWXYZ[\]^^_`abccdefgghijkllmnopqrstuvwxyyz{|}~       !"#$%&&'(()*+,--./0123456789:;<<=>?@@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]]^_``abccdeffghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}}~~                                                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                    v                   /mattermost-api-40400.0.0-2n8quC8Li1qH2QTRNwtvZWNetwork.Mattermost.VersionNetwork.Mattermost.Types.Base!Network.Mattermost.Types.InternalNetwork.Mattermost.UtilNetwork.Mattermost.TypesNetwork.Mattermost.LoggingNetwork.Mattermost.Exceptions"Network.Mattermost.WebSocket.TypesNetwork.Mattermost.LensesNetwork.Mattermost.WebSocketNetwork.MattermostPaths_mattermost_apiE isEOFErrorNetwork.Mattermost.TH Network.HTTPStream mmApiVersion LogEventType HttpRequest HttpResponseWebSocketRequestWebSocketResponse WebSocketPing WebSocketPongLogEvent logFunction logEventTypeLoggerPortHostname$fEqLogEventType$fShowLogEventType $fEqLogEvent$fShowLogEventConnectionData cdHostnamecdPort cdAutoClosecdConnectionCtxcdTokencdLoggercdUseTLS AutoCloseNoYesTokengetTokenStringautoCloseToHeader $fReadToken $fShowToken $fEqToken $fOrdToken$fReadAutoClose$fShowAutoClose $fEqAutoClose$fOrdAutoClosenoteEhoistEassertE~=dropTrailingCharwithConnection mkConnectionconnectionGetExact FlaggedPostflaggedPostUserId flaggedPostIdflaggedPostStatusGroupChannelPreferencegroupChannelIdgroupChannelShow PreferencepreferenceUserIdpreferenceCategorypreferenceNamepreferenceValuePreferenceValuefromRawPreferenceValuePreferenceNamefromRawPreferenceNamePreferenceCategory#PreferenceCategoryDirectChannelShow"PreferenceCategoryGroupChannelShowPreferenceCategoryTutorialStep"PreferenceCategoryAdvancedSettingsPreferenceCategoryFlaggedPost!PreferenceCategoryDisplaySettingsPreferenceCategoryTheme$PreferenceCategoryAuthorizedOAuthAppPreferenceCategoryNotificationsPreferenceCategoryLastPreferenceCategoryOtherReactionreactionUserIdreactionPostIdreactionEmojiNamereactionCreateAt TeamsCreateteamsCreateDisplayNameteamsCreateNameteamsCreateType UsersCreateusersCreateEmailusersCreatePasswordusersCreateUsernameusersCreateAllowMarketingCommandResponsecommandResponseTypecommandResponseTextcommandResponseUsernamecommandResponseIconURLcommandResponseGotoLocationcommandResponseAttachmentsCommandResponseTypeCommandResponseInChannelCommandResponseEphemeral CommandIdCmdIunCmdICommand commandId commandTokencommandCreateAtcommandUpdateAtcommandDeleteAtcommandCreatorId commandTeamIdcommandTrigger commandMethodcommandUsernamecommandIconURLcommandAutoCompletecommandAutoCompleteDesccommandAutoCompleteHintcommandDisplayNamecommandDescription commandURL MinCommandminComChannelId minComCommandminComParentId minComRootIdPosts postsPosts postsOrderFileInfo fileInfoIdfileInfoUserIdfileInfoPostIdfileInfoCreateAtfileInfoUpdateAtfileInfoDeleteAt fileInfoNamefileInfoExtension fileInfoSizefileInfoMimeType fileInfoWidthfileInfoHeightfileInfoHasPreview PendingPostIdPPIunPPI PendingPostpendingPostChannelIdpendingPostCreateAtpendingPostFilenamespendingPostMessage pendingPostIdpendingPostUserIdpendingPostParentIdpendingPostRootIdPostpostPendingPostIdpostOriginalId postProps postRootId postFileIdspostIdpostType postMessage postDeleteAt postHashtags postUpdateAt postUserId postCreateAt postParentId postChannelIdpostHasReactionsPostTypePostTypeJoinChannelPostTypeLeaveChannelPostTypeAddToChannelPostTypeRemoveFromChannelPostTypeHeaderChangePostTypeDisplayNameChangePostTypePurposeChangePostTypeChannelDeletedPostTypeEphemeralPostTypeUnknownFileIdFIunFIPostIdPIunPI PostPropspostPropsOverrideIconUrlpostPropsOverrideUsernamepostPropsAttachmentspostPropsNewHeaderpostPropsOldHeaderPostPropAttachmentppaId ppaFallbackppaColor ppaPretext ppaAuthorName ppaAuthorLink ppaAuthorIconppaTitle ppaTitleLinkppaText ppaFields ppaImageURL ppaThumbURL ppaFooter ppaFooterIconPostPropAttachmentField ppafTitle ppafValue ppafShortUseruserId userCreateAt userUpdateAt userDeleteAt userUsername userAuthDatauserAuthService userEmailuserEmailVerified userNickname userFirstName userLastName userRolesuserNotifyPropsuserLastPasswordUpdateuserLastPictureUpdate userLocale InitialLoadinitialLoadUserinitialLoadTeamsUserIdUIunUI MinChannelminChannelNameminChannelDisplayNameminChannelPurposeminChannelHeaderminChannelTypeChannelsChannelWithData ChannelDatachannelDataChannelIdchannelDataUserIdchannelDataRoleschannelDataLastViewedAtchannelDataMsgCountchannelDataMentionCountchannelDataNotifyPropschannelDataLastUpdateAt SingleChannelSCChannel channelIdchannelCreateAtchannelUpdateAtchannelDeleteAt channelTeamId channelTypechannelDisplayName channelName channelHeaderchannelPurposechannelLastPostAtchannelTotalMsgCountchannelExtraUpdateAtchannelCreatorId ChannelIdCIunCI BoolStringfromBoolStringChannelNotifyPropschannelNotifyPropsEmailchannelNotifyPropsDesktopchannelNotifyPropsPushchannelNotifyPropsMarkUnreadUserNotifyPropsuserNotifyPropsMentionKeysuserNotifyPropsEmailuserNotifyPropsPushuserNotifyPropsDesktopuserNotifyPropsDesktopSounduserNotifyPropsChanneluserNotifyPropsFirstName NotifyOptionNotifyOptionAllNotifyOptionMentionNotifyOptionNone WithDefaultIsValueDefault TeamMemberteamMemberUserIdteamMemberTeamIdteamMemberRolesTeamteamId teamCreateAt teamUpdateAt teamDeleteAtteamDisplayNameteamName teamEmailteamTypeteamCompanyNameteamAllowedDomains teamInviteIdteamAllowOpenInviteTeamIdTIunTIIdunIdHasIdgetIdIsIdtoIdfromIdTypeOrdinaryDirectPrivateGroupUnknown SearchPostssearchPostsTermssearchPostsIsOrSearchSetChannelHeadersetChannelHeaderChanIdsetChannelHeaderStringLoginusernamepasswordSessionsessConnsessTok runLogger runLoggerS maybeFailmkConnectionDatamkConnectionDataInsecureinitConnectionDatainitConnectionDataInsecure withLoggernoLogger mkSessionidStringemptyUserNotifyPropsemptyChannelNotifyProps urlForFile mkPendingPostmillisecondsToUTCTimeutcTimeToMilliseconds"preferenceToGroupChannelPreferencepreferenceToFlaggedPost$fToJSONFlaggedPost$fToJSONPreference$fFromJSONPreference$fToJSONPreferenceValue$fFromJSONPreferenceValue$fToJSONPreferenceName$fFromJSONPreferenceName$fToJSONPreferenceCategory$fFromJSONPreferenceCategory$fToJSONReaction$fFromJSONReaction$fToJSONTeamsCreate$fToJSONUsersCreate$fFromJSONCommandResponse$fFromJSONCommandResponseType$fHasIdCommandCommandId$fIsIdCommandId$fToJSONMinCommand$fFromJSONPosts$fFromJSONFileInfo$fHasIdPendingPostPendingPostId$fIsIdPendingPostId$fToJSONPendingPost $fToJSONPost$fFromJSONPost$fHasIdPostPostId$fToJSONPostType$fFromJSONPostType $fIsIdFileId $fIsIdPostId$fToJSONPostProps$fFromJSONPostProps$fToJSONPostPropAttachment$fFromJSONPostPropAttachment!$fFromJSONPostPropAttachmentField$fFromJSONUser$fHasIdUserUserId$fFromJSONInitialLoad $fIsIdUserId$fToJSONMinChannel$fFromJSONChannelWithData$fFromJSONChannelData$fHasIdChannelDataChannelId$fFromJSONSingleChannel$fFromJSONChannel$fHasIdChannelChannelId$fIsIdChannelId$fFromJSONChannelNotifyProps$fFromJSONUserNotifyProps$fFromJSONBoolString$fFromJSONNotifyOption$fFunctorWithDefault$fFromJSONWithDefault$fFromJSONTeamMember$fFromJSONTeam$fHasIdTeamTeamId $fIsIdTeamId $fHasIdIdId$fIsIdId $fFromJSONId $fToJSONType$fFromJSONType$fToJSONSearchPosts$fToJSONSetChannelHeader $fToJSONLogin $fReadType $fShowType $fOrdType$fEqType$fReadId$fShowId$fEqId$fOrdId $fHashableId $fToJSONId $fToJSONKeyId$fFromJSONKeyId $fReadTeamId $fShowTeamId $fEqTeamId $fOrdTeamId$fHashableTeamId$fToJSONTeamId$fToJSONKeyTeamId$fFromJSONKeyTeamId$fFromJSONTeamId $fReadTeam $fShowTeam$fEqTeam $fOrdTeam$fReadWithDefault$fShowWithDefault$fEqWithDefault$fOrdWithDefault$fReadNotifyOption$fShowNotifyOption$fEqNotifyOption$fOrdNotifyOption$fEqUserNotifyProps$fShowUserNotifyProps$fReadUserNotifyProps$fOrdUserNotifyProps$fEqChannelNotifyProps$fShowChannelNotifyProps$fReadChannelNotifyProps$fOrdChannelNotifyProps$fReadChannelId$fShowChannelId $fEqChannelId$fOrdChannelId$fHashableChannelId$fToJSONChannelId$fToJSONKeyChannelId$fFromJSONKeyChannelId$fFromJSONChannelId$fReadMinChannel$fEqMinChannel$fShowMinChannel $fReadUserId $fShowUserId $fEqUserId $fOrdUserId$fHashableUserId$fToJSONUserId$fToJSONKeyUserId$fFromJSONKeyUserId$fFromJSONUserId$fReadChannelData$fShowChannelData$fEqChannelData $fReadChannel $fShowChannel $fEqChannel $fOrdChannel$fReadChannelWithData$fShowChannelWithData$fEqChannelWithData$fReadSingleChannel$fShowSingleChannel$fEqSingleChannel$fOrdSingleChannel$fReadTeamMember$fShowTeamMember$fEqTeamMember$fOrdTeamMember $fReadUser $fShowUser$fEqUser$fEqInitialLoad$fShowInitialLoad$fReadPostPropAttachmentField$fShowPostPropAttachmentField$fEqPostPropAttachmentField$fReadPostPropAttachment$fShowPostPropAttachment$fEqPostPropAttachment$fReadPostProps$fShowPostProps $fEqPostProps $fReadPostId $fShowPostId $fEqPostId $fOrdPostId$fHashablePostId$fToJSONPostId$fToJSONKeyPostId$fFromJSONKeyPostId$fFromJSONPostId $fReadFileId $fShowFileId $fEqFileId $fOrdFileId$fHashableFileId$fToJSONFileId$fToJSONKeyFileId$fFromJSONKeyFileId$fFromJSONFileId$fReadPostType$fShowPostType $fEqPostType $fReadPost $fShowPost$fEqPost$fReadPendingPostId$fShowPendingPostId$fEqPendingPostId$fOrdPendingPostId$fHashablePendingPostId$fToJSONPendingPostId$fToJSONKeyPendingPostId$fFromJSONKeyPendingPostId$fFromJSONPendingPostId$fReadPendingPost$fShowPendingPost$fEqPendingPost$fReadFileInfo$fShowFileInfo $fEqFileInfo $fReadPosts $fShowPosts $fEqPosts$fReadMinCommand$fShowMinCommand$fEqMinCommand$fReadCommandId$fShowCommandId $fEqCommandId$fOrdCommandId$fHashableCommandId$fToJSONCommandId$fToJSONKeyCommandId$fFromJSONKeyCommandId$fFromJSONCommandId $fReadCommand $fShowCommand $fEqCommand$fReadCommandResponseType$fShowCommandResponseType$fEqCommandResponseType$fReadCommandResponse$fShowCommandResponse$fEqCommandResponse$fReadUsersCreate$fShowUsersCreate$fEqUsersCreate$fReadTeamsCreate$fShowTeamsCreate$fEqTeamsCreate$fReadReaction$fShowReaction $fEqReaction$fReadPreferenceCategory$fShowPreferenceCategory$fEqPreferenceCategory$fReadPreferenceName$fShowPreferenceName$fEqPreferenceName$fReadPreferenceValue$fShowPreferenceValue$fEqPreferenceValue$fReadPreference$fShowPreference$fEqPreference$fReadGroupChannelPreference$fShowGroupChannelPreference$fEqGroupChannelPreference$fReadFlaggedPost$fShowFlaggedPost$fEqFlaggedPostmmLoggerDebugFilter mmLoggerDebugmmLoggerDebugErrmmLoggerDebugFilterErrmmLoggerInfoFilter mmLoggerInfommLoggerInfoErrmmLoggerInfoFilterErrConnectionExceptionHTTPResponseExceptionMattermostServerErrorHeaderNotFoundExceptionJSONDecodeExceptionjsonDecodeExceptionMsgjsonDecodeExceptionJSONContentTypeExceptionURIParseExceptionLoginFailureException$fExceptionConnectionException $fExceptionHTTPResponseException $fExceptionMattermostServerError"$fExceptionHeaderNotFoundException$fExceptionJSONDecodeException$fExceptionContentTypeException$fExceptionURIParseException $fExceptionLoginFailureException$fShowLoginFailureException$fShowURIParseException$fShowContentTypeException$fShowJSONDecodeException$fShowHeaderNotFoundException$fShowMattermostServerError$fShowHTTPResponseException$fShowConnectionException WEBroadcast webChannelId webUserId webTeamId webOmitUsersWEData wepChannelId wepTeamId wepSenderName wepUserIdwepUserwepChannelDisplayNamewepPost wepStatus wepReaction wepMentionswepPreferencesWebsocketEventweEventweData weBroadcastweSeqWebsocketEventTypeWMTypingWMPosted WMPostEdited WMPostDeletedWMChannelDeletedWMChannelCreated WMDirectAdded WMGroupAdded WMNewUser WMAddedToTeam WMLeaveTeam WMUpdateTeam WMUserAdded WMUserUpdated WMUserRemovedWMPreferenceChangedWMPreferenceDeletedWMEphemeralMessageWMStatusChangeWMHelloWMWebRTCWMAuthenticationChallengeWMReactionAddedWMReactionRemovedWMChannelViewedWMChannelUpdated WMEmojiAddedWMUserRoleUpdated$fToJSONWEBroadcast$fFromJSONWEBroadcast$fToJSONWEData$fFromJSONWEData$fWebSocketsDataWebsocketEvent$fToJSONWebsocketEvent$fFromJSONWebsocketEvent$fToJSONWebsocketEventType$fFromJSONWebsocketEventType$fReadWebsocketEventType$fShowWebsocketEventType$fEqWebsocketEventType$fOrdWebsocketEventType $fReadWEData $fShowWEData $fEqWEData$fReadWEBroadcast$fShowWEBroadcast$fEqWEBroadcast$fReadWebsocketEvent$fShowWebsocketEvent$fEqWebsocketEventLens' cdAutoCloseLcdConnectionCtxL cdHostnameL cdLoggerLcdPortLcdTokenL cdUseTLSL passwordL usernameLteamAllowOpenInviteLteamAllowedDomainsLteamCompanyNameL teamCreateAtL teamDeleteAtLteamDisplayNameL teamEmailLteamIdL teamInviteIdL teamNameL teamTypeL teamUpdateAtLteamMemberRolesLteamMemberTeamIdLteamMemberUserIdLuserNotifyPropsChannelLuserNotifyPropsDesktopLuserNotifyPropsDesktopSoundLuserNotifyPropsEmailLuserNotifyPropsFirstNameLuserNotifyPropsMentionKeysLuserNotifyPropsPushLchannelNotifyPropsDesktopLchannelNotifyPropsEmailLchannelNotifyPropsMarkUnreadLchannelNotifyPropsPushLchannelCreateAtLchannelCreatorIdLchannelDeleteAtLchannelDisplayNameLchannelExtraUpdateAtLchannelHeaderL channelIdLchannelLastPostAtL channelNameLchannelPurposeLchannelTeamIdLchannelTotalMsgCountL channelTypeLchannelUpdateAtLchannelDataChannelIdLchannelDataLastUpdateAtLchannelDataLastViewedAtLchannelDataMentionCountLchannelDataMsgCountLchannelDataNotifyPropsLchannelDataRolesLchannelDataUserIdL userAuthDataLuserAuthServiceL userCreateAtL userDeleteAtL userEmailLuserEmailVerifiedLuserFirstNameLuserIdL userLastNameLuserLastPasswordUpdateLuserLastPictureUpdateL userLocaleL userNicknameLuserNotifyPropsL userRolesL userUpdateAtL userUsernameLpostChannelIdL postCreateAtL postDeleteAtL postFileIdsLpostHasReactionsL postHashtagsLpostIdL postMessageLpostOriginalIdL postParentIdLpostPendingPostIdL postPropsL postRootIdL postTypeL postUpdateAtL postUserIdLpostPropsAttachmentsLpostPropsNewHeaderLpostPropsOldHeaderLpostPropsOverrideIconUrlLpostPropsOverrideUsernameLppaAuthorIconLppaAuthorLinkLppaAuthorNameL ppaColorL ppaFallbackL ppaFieldsLppaFooterIconL ppaFooterLppaIdL ppaImageURLL ppaPretextLppaTextL ppaThumbURLL ppaTitleL ppaTitleLinkLpendingPostChannelIdLpendingPostCreateAtLpendingPostFilenamesLpendingPostIdLpendingPostMessageLpendingPostParentIdLpendingPostRootIdLpendingPostUserIdL postsOrderL postsPostsLreactionCreateAtLreactionEmojiNameLreactionPostIdLreactionUserIdL weBroadcastLweDataLweEventLweSeqLwepChannelDisplayNameL wepChannelIdL wepMentionsLwepPostLwepPreferencesL wepReactionLwepSenderNameL wepStatusL wepTeamIdL wepUserIdLwepUserL webChannelIdL webOmitUsersL webTeamIdL webUserIdLcommandResponseAttachmentsLcommandResponseGotoLocationLcommandResponseIconURLLcommandResponseTextLcommandResponseTypeLcommandResponseUsernameLMMWebSocketTimeoutException MMWebSocketmmCloseWebSocketmmGetConnectionHealthmmWithWebSocket&$fExceptionMMWebSocketTimeoutException!$fShowMMWebSocketTimeoutExceptionmmLoginmmGetInitialLoad mmGetTeams mmCreateTeam mmGetChannelsmmGetMoreChannels mmGetChannelmmGetAllChannelDataForUsermmGetAllChannelsForUsermmGetAllChannelsWithDataForUser mmViewChannel mmJoinChannelmmLeaveChannel mmGetPostsmmGetPostsSince mmGetPostmmGetPostsAftermmGetPostsBefore mmSearchPosts mmGetFileInfo mmGetFile mmGetUser mmGetUsersmmGetTeamMembersmmGetChannelMembersmmGetProfilesForDMListmmGetMe mmGetProfiles mmGetStatusesmmCreateDirectmmCreateChannelmmDeleteChannel mmDeletePost mmUpdatePostmmPost mmGetConfig mmSaveConfigmmChannelAddUser mmTeamAddUser mmExecute mmUsersCreatemmUsersCreateWithSessionmmGetReactionsForPostmmSetPreferencesmmSavePreferencesmmDeletePreferences mmFlagPost mmUnflagPostmmGetFlaggedPostsmmGetMyPreferencesmmChannelRemoveUsermmCreateGroupChannelmmSetChannelHeader$fStreamConnectioncatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.BaseMaybeNothing Data.EitherEitherLeftghc-prim GHC.TypesBoolTrueFalseControl.Exception.Basebracketbytestring-0.10.8.1Data.ByteStringhGet suffixLensesGHC.IO.Handle.TypesHandleGHC.IO.Handle.FDstderr toValueStringfromValueStringnullablePEventPMMWSconnectionToStreamcreatePingPongTimeouts pingThreadmmPath mmGetJSONBody mmGetHeadermmUnauthenticatedHTTPPost mmRequest maxLineLength showRespCodemmDeleteRequest mmDoRequest mmWithRequestmmPOSTmmPUT mmRawPOSTmmRawPUTassert200Response