{-# Language PatternSynonyms, OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-missing-pattern-synonym-signatures #-}

{-|
Module      : Irc.Codes
Description : Helpers for interpreting IRC reply codes
Copyright   : (c) Eric Mertens, 2016
License     : ISC
Maintainer  : emertens@gmail.com

This module defines support for working with IRC's numeric reply
codes. Pattern synonyms are provided for each of the possible IRC reply codes.

Reply code information was extracted from https://www.alien.net.au/irc/irc2numerics.html

-}

module Irc.Codes where

import           Data.Vector (Vector)
import qualified Data.Vector as Vector
import           Data.Text (Text)
import qualified Data.Text as Text

-- | Type of numeric reply codes
newtype ReplyCode = ReplyCode Word
  deriving (ReplyCode -> ReplyCode -> Bool
(ReplyCode -> ReplyCode -> Bool)
-> (ReplyCode -> ReplyCode -> Bool) -> Eq ReplyCode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReplyCode -> ReplyCode -> Bool
== :: ReplyCode -> ReplyCode -> Bool
$c/= :: ReplyCode -> ReplyCode -> Bool
/= :: ReplyCode -> ReplyCode -> Bool
Eq, Eq ReplyCode
Eq ReplyCode =>
(ReplyCode -> ReplyCode -> Ordering)
-> (ReplyCode -> ReplyCode -> Bool)
-> (ReplyCode -> ReplyCode -> Bool)
-> (ReplyCode -> ReplyCode -> Bool)
-> (ReplyCode -> ReplyCode -> Bool)
-> (ReplyCode -> ReplyCode -> ReplyCode)
-> (ReplyCode -> ReplyCode -> ReplyCode)
-> Ord ReplyCode
ReplyCode -> ReplyCode -> Bool
ReplyCode -> ReplyCode -> Ordering
ReplyCode -> ReplyCode -> ReplyCode
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ReplyCode -> ReplyCode -> Ordering
compare :: ReplyCode -> ReplyCode -> Ordering
$c< :: ReplyCode -> ReplyCode -> Bool
< :: ReplyCode -> ReplyCode -> Bool
$c<= :: ReplyCode -> ReplyCode -> Bool
<= :: ReplyCode -> ReplyCode -> Bool
$c> :: ReplyCode -> ReplyCode -> Bool
> :: ReplyCode -> ReplyCode -> Bool
$c>= :: ReplyCode -> ReplyCode -> Bool
>= :: ReplyCode -> ReplyCode -> Bool
$cmax :: ReplyCode -> ReplyCode -> ReplyCode
max :: ReplyCode -> ReplyCode -> ReplyCode
$cmin :: ReplyCode -> ReplyCode -> ReplyCode
min :: ReplyCode -> ReplyCode -> ReplyCode
Ord)

-- | Shows number
instance Show ReplyCode where
  showsPrec :: Int -> ReplyCode -> ShowS
showsPrec Int
p (ReplyCode Word
x) = Int -> Word -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
p Word
x

-- | Reads only the number
instance Read ReplyCode where
  readsPrec :: Int -> ReadS ReplyCode
readsPrec Int
p String
str = [ (Word -> ReplyCode
ReplyCode Word
x, String
xs) | (Word
x,String
xs) <- Int -> ReadS Word
forall a. Read a => Int -> ReadS a
readsPrec Int
p String
str ]

-- | Categories for reply codes
data ReplyType
  = ClientServerReply -- ^ 0-99 Messages between client and server
  | CommandReply      -- ^ 200-399 Responses to commands
  | ErrorReply        -- ^ 400-599 Errors
  | UnknownReply      -- ^ Uncategorized
  deriving (ReplyType -> ReplyType -> Bool
(ReplyType -> ReplyType -> Bool)
-> (ReplyType -> ReplyType -> Bool) -> Eq ReplyType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReplyType -> ReplyType -> Bool
== :: ReplyType -> ReplyType -> Bool
$c/= :: ReplyType -> ReplyType -> Bool
/= :: ReplyType -> ReplyType -> Bool
Eq, Eq ReplyType
Eq ReplyType =>
(ReplyType -> ReplyType -> Ordering)
-> (ReplyType -> ReplyType -> Bool)
-> (ReplyType -> ReplyType -> Bool)
-> (ReplyType -> ReplyType -> Bool)
-> (ReplyType -> ReplyType -> Bool)
-> (ReplyType -> ReplyType -> ReplyType)
-> (ReplyType -> ReplyType -> ReplyType)
-> Ord ReplyType
ReplyType -> ReplyType -> Bool
ReplyType -> ReplyType -> Ordering
ReplyType -> ReplyType -> ReplyType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ReplyType -> ReplyType -> Ordering
compare :: ReplyType -> ReplyType -> Ordering
$c< :: ReplyType -> ReplyType -> Bool
< :: ReplyType -> ReplyType -> Bool
$c<= :: ReplyType -> ReplyType -> Bool
<= :: ReplyType -> ReplyType -> Bool
$c> :: ReplyType -> ReplyType -> Bool
> :: ReplyType -> ReplyType -> Bool
$c>= :: ReplyType -> ReplyType -> Bool
>= :: ReplyType -> ReplyType -> Bool
$cmax :: ReplyType -> ReplyType -> ReplyType
max :: ReplyType -> ReplyType -> ReplyType
$cmin :: ReplyType -> ReplyType -> ReplyType
min :: ReplyType -> ReplyType -> ReplyType
Ord, ReadPrec [ReplyType]
ReadPrec ReplyType
Int -> ReadS ReplyType
ReadS [ReplyType]
(Int -> ReadS ReplyType)
-> ReadS [ReplyType]
-> ReadPrec ReplyType
-> ReadPrec [ReplyType]
-> Read ReplyType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ReplyType
readsPrec :: Int -> ReadS ReplyType
$creadList :: ReadS [ReplyType]
readList :: ReadS [ReplyType]
$creadPrec :: ReadPrec ReplyType
readPrec :: ReadPrec ReplyType
$creadListPrec :: ReadPrec [ReplyType]
readListPrec :: ReadPrec [ReplyType]
Read, Int -> ReplyType -> ShowS
[ReplyType] -> ShowS
ReplyType -> String
(Int -> ReplyType -> ShowS)
-> (ReplyType -> String)
-> ([ReplyType] -> ShowS)
-> Show ReplyType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ReplyType -> ShowS
showsPrec :: Int -> ReplyType -> ShowS
$cshow :: ReplyType -> String
show :: ReplyType -> String
$cshowList :: [ReplyType] -> ShowS
showList :: [ReplyType] -> ShowS
Show)

pattern $mRPL_WELCOME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WELCOME :: ReplyCode
RPL_WELCOME                 = ReplyCode 001
pattern $mRPL_YOURHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOURHOST :: ReplyCode
RPL_YOURHOST                = ReplyCode 002
pattern $mRPL_CREATED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CREATED :: ReplyCode
RPL_CREATED                 = ReplyCode 003
pattern $mRPL_MYINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MYINFO :: ReplyCode
RPL_MYINFO                  = ReplyCode 004
pattern $mRPL_ISUPPORT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ISUPPORT :: ReplyCode
RPL_ISUPPORT                = ReplyCode 005
pattern $mRPL_SNOMASK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SNOMASK :: ReplyCode
RPL_SNOMASK                 = ReplyCode 008
pattern $mRPL_STATMEMTOT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATMEMTOT :: ReplyCode
RPL_STATMEMTOT              = ReplyCode 009
pattern $mRPL_REDIR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_REDIR :: ReplyCode
RPL_REDIR                   = ReplyCode 010
pattern $mRPL_YOURCOOKIE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOURCOOKIE :: ReplyCode
RPL_YOURCOOKIE              = ReplyCode 014
pattern $mRPL_MAP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MAP :: ReplyCode
RPL_MAP                     = ReplyCode 015
pattern $mRPL_MAPEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MAPEND :: ReplyCode
RPL_MAPEND                  = ReplyCode 017
pattern $mRPL_YOURID :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOURID :: ReplyCode
RPL_YOURID                  = ReplyCode 042
pattern $mRPL_SAVENICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SAVENICK :: ReplyCode
RPL_SAVENICK                = ReplyCode 043
pattern $mRPL_ATTEMPTINGJUNC :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ATTEMPTINGJUNC :: ReplyCode
RPL_ATTEMPTINGJUNC          = ReplyCode 050
pattern $mRPL_ATTEMPTINGREROUTE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ATTEMPTINGREROUTE :: ReplyCode
RPL_ATTEMPTINGREROUTE       = ReplyCode 051
pattern $mRPL_REMOTESUPPORT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_REMOTESUPPORT :: ReplyCode
RPL_REMOTESUPPORT           = ReplyCode 105 -- ircd-seven unnamed code
pattern $mRPL_TRACELINK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACELINK :: ReplyCode
RPL_TRACELINK               = ReplyCode 200
pattern $mRPL_TRACECONNECTING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACECONNECTING :: ReplyCode
RPL_TRACECONNECTING         = ReplyCode 201
pattern $mRPL_TRACEHANDSHAKE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEHANDSHAKE :: ReplyCode
RPL_TRACEHANDSHAKE          = ReplyCode 202
pattern $mRPL_TRACEUNKNOWN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEUNKNOWN :: ReplyCode
RPL_TRACEUNKNOWN            = ReplyCode 203
pattern $mRPL_TRACEOPERATOR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEOPERATOR :: ReplyCode
RPL_TRACEOPERATOR           = ReplyCode 204
pattern $mRPL_TRACEUSER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEUSER :: ReplyCode
RPL_TRACEUSER               = ReplyCode 205
pattern $mRPL_TRACESERVER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACESERVER :: ReplyCode
RPL_TRACESERVER             = ReplyCode 206
pattern $mRPL_TRACESERVICE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACESERVICE :: ReplyCode
RPL_TRACESERVICE            = ReplyCode 207
pattern $mRPL_TRACENEWTYPE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACENEWTYPE :: ReplyCode
RPL_TRACENEWTYPE            = ReplyCode 208
pattern $mRPL_TRACECLASS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACECLASS :: ReplyCode
RPL_TRACECLASS              = ReplyCode 209
pattern $mRPL_TRACERECONNECT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACERECONNECT :: ReplyCode
RPL_TRACERECONNECT          = ReplyCode 210
pattern $mRPL_STATS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATS :: ReplyCode
RPL_STATS                   = ReplyCode 210
pattern $mRPL_STATSLINKINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSLINKINFO :: ReplyCode
RPL_STATSLINKINFO           = ReplyCode 211
pattern $mRPL_STATSCOMMANDS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSCOMMANDS :: ReplyCode
RPL_STATSCOMMANDS           = ReplyCode 212
pattern $mRPL_STATSCLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSCLINE :: ReplyCode
RPL_STATSCLINE              = ReplyCode 213
pattern $mRPL_STATSNLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSNLINE :: ReplyCode
RPL_STATSNLINE              = ReplyCode 214
pattern $mRPL_STATSILINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSILINE :: ReplyCode
RPL_STATSILINE              = ReplyCode 215
pattern $mRPL_STATSKLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSKLINE :: ReplyCode
RPL_STATSKLINE              = ReplyCode 216
pattern $mRPL_STATSQLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSQLINE :: ReplyCode
RPL_STATSQLINE              = ReplyCode 217
pattern $mRPL_STATSYLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSYLINE :: ReplyCode
RPL_STATSYLINE              = ReplyCode 218
pattern $mRPL_ENDOFSTATS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFSTATS :: ReplyCode
RPL_ENDOFSTATS              = ReplyCode 219
pattern $mRPL_STATSPLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSPLINE :: ReplyCode
RPL_STATSPLINE              = ReplyCode 220
pattern $mRPL_UMODEIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_UMODEIS :: ReplyCode
RPL_UMODEIS                 = ReplyCode 221
pattern $mRPL_SQLINE_NICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SQLINE_NICK :: ReplyCode
RPL_SQLINE_NICK             = ReplyCode 222
pattern $mRPL_STATSDLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSDLINE :: ReplyCode
RPL_STATSDLINE              = ReplyCode 225
pattern $mRPL_STATSCOUNT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSCOUNT :: ReplyCode
RPL_STATSCOUNT              = ReplyCode 226
pattern $mRPL_SERVICEINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SERVICEINFO :: ReplyCode
RPL_SERVICEINFO             = ReplyCode 231
pattern $mRPL_ENDOFSERVICES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFSERVICES :: ReplyCode
RPL_ENDOFSERVICES           = ReplyCode 232
pattern $mRPL_SERVICE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SERVICE :: ReplyCode
RPL_SERVICE                 = ReplyCode 233
pattern $mRPL_SERVLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SERVLIST :: ReplyCode
RPL_SERVLIST                = ReplyCode 234
pattern $mRPL_SERVLISTEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SERVLISTEND :: ReplyCode
RPL_SERVLISTEND             = ReplyCode 235
pattern $mRPL_STATSVERBOSE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSVERBOSE :: ReplyCode
RPL_STATSVERBOSE            = ReplyCode 236
pattern $mRPL_STATSIAUTH :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSIAUTH :: ReplyCode
RPL_STATSIAUTH              = ReplyCode 239
pattern $mRPL_STATSLLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSLLINE :: ReplyCode
RPL_STATSLLINE              = ReplyCode 241
pattern $mRPL_STATSUPTIME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSUPTIME :: ReplyCode
RPL_STATSUPTIME             = ReplyCode 242
pattern $mRPL_STATSOLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSOLINE :: ReplyCode
RPL_STATSOLINE              = ReplyCode 243
pattern $mRPL_STATSHLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSHLINE :: ReplyCode
RPL_STATSHLINE              = ReplyCode 244
pattern $mRPL_STATSSLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSSLINE :: ReplyCode
RPL_STATSSLINE              = ReplyCode 245
pattern $mRPL_STATSPING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSPING :: ReplyCode
RPL_STATSPING               = ReplyCode 246
pattern $mRPL_STATSXLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSXLINE :: ReplyCode
RPL_STATSXLINE              = ReplyCode 247
pattern $mRPL_STATSULINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSULINE :: ReplyCode
RPL_STATSULINE              = ReplyCode 248
pattern $mRPL_STATSDEBUG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSDEBUG :: ReplyCode
RPL_STATSDEBUG              = ReplyCode 249
pattern $mRPL_STATSCONN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSCONN :: ReplyCode
RPL_STATSCONN               = ReplyCode 250
pattern $mRPL_LUSERCLIENT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSERCLIENT :: ReplyCode
RPL_LUSERCLIENT             = ReplyCode 251
pattern $mRPL_LUSEROP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSEROP :: ReplyCode
RPL_LUSEROP                 = ReplyCode 252
pattern $mRPL_LUSERUNKNOWN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSERUNKNOWN :: ReplyCode
RPL_LUSERUNKNOWN            = ReplyCode 253
pattern $mRPL_LUSERCHANNELS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSERCHANNELS :: ReplyCode
RPL_LUSERCHANNELS           = ReplyCode 254
pattern $mRPL_LUSERME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSERME :: ReplyCode
RPL_LUSERME                 = ReplyCode 255
pattern $mRPL_ADMINME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ADMINME :: ReplyCode
RPL_ADMINME                 = ReplyCode 256
pattern $mRPL_ADMINLOC1 :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ADMINLOC1 :: ReplyCode
RPL_ADMINLOC1               = ReplyCode 257
pattern $mRPL_ADMINLOC2 :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ADMINLOC2 :: ReplyCode
RPL_ADMINLOC2               = ReplyCode 258
pattern $mRPL_ADMINEMAIL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ADMINEMAIL :: ReplyCode
RPL_ADMINEMAIL              = ReplyCode 259
pattern $mRPL_TRACELOG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACELOG :: ReplyCode
RPL_TRACELOG                = ReplyCode 261
pattern $mRPL_ENDOFTRACE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFTRACE :: ReplyCode
RPL_ENDOFTRACE              = ReplyCode 262
pattern $mRPL_LOAD2HI :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOAD2HI :: ReplyCode
RPL_LOAD2HI                 = ReplyCode 263
pattern $mRPL_LOCALUSERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOCALUSERS :: ReplyCode
RPL_LOCALUSERS              = ReplyCode 265
pattern $mRPL_GLOBALUSERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_GLOBALUSERS :: ReplyCode
RPL_GLOBALUSERS             = ReplyCode 266
pattern $mRPL_START_NETSTAT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_START_NETSTAT :: ReplyCode
RPL_START_NETSTAT           = ReplyCode 267
pattern $mRPL_NETSTAT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NETSTAT :: ReplyCode
RPL_NETSTAT                 = ReplyCode 268
pattern $mRPL_END_NETSTAT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_END_NETSTAT :: ReplyCode
RPL_END_NETSTAT             = ReplyCode 269
pattern $mRPL_PRIVS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_PRIVS :: ReplyCode
RPL_PRIVS                   = ReplyCode 270
pattern $mRPL_SILELIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SILELIST :: ReplyCode
RPL_SILELIST                = ReplyCode 271
pattern $mRPL_ENDOFSILELIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFSILELIST :: ReplyCode
RPL_ENDOFSILELIST           = ReplyCode 272
pattern $mRPL_NOTIFY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOTIFY :: ReplyCode
RPL_NOTIFY                  = ReplyCode 273
pattern $mRPL_ENDNOTIFY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDNOTIFY :: ReplyCode
RPL_ENDNOTIFY               = ReplyCode 274
pattern $mRPL_STATSDELTA :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STATSDELTA :: ReplyCode
RPL_STATSDELTA              = ReplyCode 274
pattern $mRPL_WHOISCERTFP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISCERTFP :: ReplyCode
RPL_WHOISCERTFP             = ReplyCode 276
pattern $mRPL_VCHANLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_VCHANLIST :: ReplyCode
RPL_VCHANLIST               = ReplyCode 277
pattern $mRPL_VCHANHELP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_VCHANHELP :: ReplyCode
RPL_VCHANHELP               = ReplyCode 278
pattern $mRPL_GLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_GLIST :: ReplyCode
RPL_GLIST                   = ReplyCode 280
pattern $mRPL_ACCEPTLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ACCEPTLIST :: ReplyCode
RPL_ACCEPTLIST              = ReplyCode 281
pattern $mRPL_ENDOFACCEPT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFACCEPT :: ReplyCode
RPL_ENDOFACCEPT             = ReplyCode 282
pattern $mRPL_ENDOFJUPELIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFJUPELIST :: ReplyCode
RPL_ENDOFJUPELIST           = ReplyCode 283
pattern $mRPL_FEATURE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_FEATURE :: ReplyCode
RPL_FEATURE                 = ReplyCode 284
pattern $mRPL_DATASTR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DATASTR :: ReplyCode
RPL_DATASTR                 = ReplyCode 290
pattern $mRPL_END_CHANINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_END_CHANINFO :: ReplyCode
RPL_END_CHANINFO            = ReplyCode 299
pattern $mRPL_NONE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NONE :: ReplyCode
RPL_NONE                    = ReplyCode 300
pattern $mRPL_AWAY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_AWAY :: ReplyCode
RPL_AWAY                    = ReplyCode 301
pattern $mRPL_USERHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_USERHOST :: ReplyCode
RPL_USERHOST                = ReplyCode 302
pattern $mRPL_ISON :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ISON :: ReplyCode
RPL_ISON                    = ReplyCode 303
pattern $mRPL_TEXT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TEXT :: ReplyCode
RPL_TEXT                    = ReplyCode 304
pattern $mRPL_UNAWAY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_UNAWAY :: ReplyCode
RPL_UNAWAY                  = ReplyCode 305
pattern $mRPL_NOWAWAY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOWAWAY :: ReplyCode
RPL_NOWAWAY                 = ReplyCode 306
pattern $mRPL_WHOISREGNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISREGNICK :: ReplyCode
RPL_WHOISREGNICK            = ReplyCode 307
pattern $mRPL_SUSERHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SUSERHOST :: ReplyCode
RPL_SUSERHOST               = ReplyCode 307
pattern $mRPL_NOTIFYACTION :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOTIFYACTION :: ReplyCode
RPL_NOTIFYACTION            = ReplyCode 308
pattern $mRPL_WHOISADMIN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISADMIN :: ReplyCode
RPL_WHOISADMIN              = ReplyCode 308
pattern $mRPL_NICKTRACE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NICKTRACE :: ReplyCode
RPL_NICKTRACE               = ReplyCode 309
pattern $mRPL_WHOISSADMIN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISSADMIN :: ReplyCode
RPL_WHOISSADMIN             = ReplyCode 309
pattern $mRPL_WHOISHELPER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISHELPER :: ReplyCode
RPL_WHOISHELPER             = ReplyCode 309
pattern $mRPL_WHOISHELPOP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISHELPOP :: ReplyCode
RPL_WHOISHELPOP             = ReplyCode 310
pattern $mRPL_WHOISUSER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISUSER :: ReplyCode
RPL_WHOISUSER               = ReplyCode 311
pattern $mRPL_WHOISSERVER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISSERVER :: ReplyCode
RPL_WHOISSERVER             = ReplyCode 312
pattern $mRPL_WHOISOPERATOR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISOPERATOR :: ReplyCode
RPL_WHOISOPERATOR           = ReplyCode 313
pattern $mRPL_WHOWASUSER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOWASUSER :: ReplyCode
RPL_WHOWASUSER              = ReplyCode 314
pattern $mRPL_ENDOFWHO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFWHO :: ReplyCode
RPL_ENDOFWHO                = ReplyCode 315
pattern $mRPL_WHOISCHANOP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISCHANOP :: ReplyCode
RPL_WHOISCHANOP             = ReplyCode 316
pattern $mRPL_WHOISIDLE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISIDLE :: ReplyCode
RPL_WHOISIDLE               = ReplyCode 317
pattern $mRPL_ENDOFWHOIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFWHOIS :: ReplyCode
RPL_ENDOFWHOIS              = ReplyCode 318
pattern $mRPL_WHOISCHANNELS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISCHANNELS :: ReplyCode
RPL_WHOISCHANNELS           = ReplyCode 319
pattern $mRPL_WHOISSPECIAL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISSPECIAL :: ReplyCode
RPL_WHOISSPECIAL            = ReplyCode 320
pattern $mRPL_LISTSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LISTSTART :: ReplyCode
RPL_LISTSTART               = ReplyCode 321
pattern $mRPL_LIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LIST :: ReplyCode
RPL_LIST                    = ReplyCode 322
pattern $mRPL_LISTEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LISTEND :: ReplyCode
RPL_LISTEND                 = ReplyCode 323
pattern $mRPL_CHANNELMODEIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CHANNELMODEIS :: ReplyCode
RPL_CHANNELMODEIS           = ReplyCode 324
pattern $mRPL_CHANNELMLOCKIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CHANNELMLOCKIS :: ReplyCode
RPL_CHANNELMLOCKIS          = ReplyCode 325
pattern $mRPL_NOCHANPASS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOCHANPASS :: ReplyCode
RPL_NOCHANPASS              = ReplyCode 326
pattern $mRPL_CHPASSUNKNOWN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CHPASSUNKNOWN :: ReplyCode
RPL_CHPASSUNKNOWN           = ReplyCode 327
pattern $mRPL_CHANNEL_URL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CHANNEL_URL :: ReplyCode
RPL_CHANNEL_URL             = ReplyCode 328
pattern $mRPL_CREATIONTIME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CREATIONTIME :: ReplyCode
RPL_CREATIONTIME            = ReplyCode 329
pattern $mRPL_WHOISACCOUNT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISACCOUNT :: ReplyCode
RPL_WHOISACCOUNT            = ReplyCode 330
pattern $mRPL_NOTOPIC :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOTOPIC :: ReplyCode
RPL_NOTOPIC                 = ReplyCode 331
pattern $mRPL_TOPIC :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TOPIC :: ReplyCode
RPL_TOPIC                   = ReplyCode 332
pattern $mRPL_TOPICWHOTIME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TOPICWHOTIME :: ReplyCode
RPL_TOPICWHOTIME            = ReplyCode 333
pattern $mRPL_LISTUSAGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LISTUSAGE :: ReplyCode
RPL_LISTUSAGE               = ReplyCode 334
pattern $mRPL_COMMANDSYNTAX :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_COMMANDSYNTAX :: ReplyCode
RPL_COMMANDSYNTAX           = ReplyCode 334
pattern $mRPL_LISTSYNTAX :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LISTSYNTAX :: ReplyCode
RPL_LISTSYNTAX              = ReplyCode 334
pattern $mRPL_WHOISTEXT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISTEXT :: ReplyCode
RPL_WHOISTEXT               = ReplyCode 337
pattern $mRPL_WHOISACTUALLY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISACTUALLY :: ReplyCode
RPL_WHOISACTUALLY           = ReplyCode 338
pattern $mRPL_BADCHANPASS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_BADCHANPASS :: ReplyCode
RPL_BADCHANPASS             = ReplyCode 339
pattern $mRPL_INVITING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_INVITING :: ReplyCode
RPL_INVITING                = ReplyCode 341
pattern $mRPL_SUMMONING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SUMMONING :: ReplyCode
RPL_SUMMONING               = ReplyCode 342
pattern $mRPL_INVITED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_INVITED :: ReplyCode
RPL_INVITED                 = ReplyCode 345
pattern $mRPL_INVEXLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_INVEXLIST :: ReplyCode
RPL_INVEXLIST               = ReplyCode 346
pattern $mRPL_ENDOFINVEXLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFINVEXLIST :: ReplyCode
RPL_ENDOFINVEXLIST          = ReplyCode 347
pattern $mRPL_EXCEPTLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_EXCEPTLIST :: ReplyCode
RPL_EXCEPTLIST              = ReplyCode 348
pattern $mRPL_ENDOFEXCEPTLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFEXCEPTLIST :: ReplyCode
RPL_ENDOFEXCEPTLIST         = ReplyCode 349
pattern $mRPL_VERSION :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_VERSION :: ReplyCode
RPL_VERSION                 = ReplyCode 351
pattern $mRPL_WHOREPLY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOREPLY :: ReplyCode
RPL_WHOREPLY                = ReplyCode 352
pattern $mRPL_NAMREPLY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NAMREPLY :: ReplyCode
RPL_NAMREPLY                = ReplyCode 353
pattern $mRPL_WHOSPCRPL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOSPCRPL :: ReplyCode
RPL_WHOSPCRPL               = ReplyCode 354
pattern $mRPL_NAMREPLY_ :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NAMREPLY_ :: ReplyCode
RPL_NAMREPLY_               = ReplyCode 355
pattern $mRPL_WHOWASREAL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOWASREAL :: ReplyCode
RPL_WHOWASREAL              = ReplyCode 360
pattern $mRPL_KILLDONE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_KILLDONE :: ReplyCode
RPL_KILLDONE                = ReplyCode 361
pattern $mRPL_CLOSING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CLOSING :: ReplyCode
RPL_CLOSING                 = ReplyCode 362
pattern $mRPL_CLOSEEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CLOSEEND :: ReplyCode
RPL_CLOSEEND                = ReplyCode 363
pattern $mRPL_LINKS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LINKS :: ReplyCode
RPL_LINKS                   = ReplyCode 364
pattern $mRPL_ENDOFLINKS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFLINKS :: ReplyCode
RPL_ENDOFLINKS              = ReplyCode 365
pattern $mRPL_ENDOFNAMES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFNAMES :: ReplyCode
RPL_ENDOFNAMES              = ReplyCode 366
pattern $mRPL_BANLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_BANLIST :: ReplyCode
RPL_BANLIST                 = ReplyCode 367
pattern $mRPL_ENDOFBANLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFBANLIST :: ReplyCode
RPL_ENDOFBANLIST            = ReplyCode 368
pattern $mRPL_ENDOFWHOWAS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFWHOWAS :: ReplyCode
RPL_ENDOFWHOWAS             = ReplyCode 369
pattern $mRPL_INFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_INFO :: ReplyCode
RPL_INFO                    = ReplyCode 371
pattern $mRPL_MOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MOTD :: ReplyCode
RPL_MOTD                    = ReplyCode 372
pattern $mRPL_INFOSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_INFOSTART :: ReplyCode
RPL_INFOSTART               = ReplyCode 373
pattern $mRPL_ENDOFINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFINFO :: ReplyCode
RPL_ENDOFINFO               = ReplyCode 374
pattern $mRPL_MOTDSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MOTDSTART :: ReplyCode
RPL_MOTDSTART               = ReplyCode 375
pattern $mRPL_ENDOFMOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFMOTD :: ReplyCode
RPL_ENDOFMOTD               = ReplyCode 376
pattern $mRPL_WHOISHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISHOST :: ReplyCode
RPL_WHOISHOST               = ReplyCode 378
pattern $mRPL_WHOISMODES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISMODES :: ReplyCode
RPL_WHOISMODES              = ReplyCode 379
pattern $mRPL_YOUREOPER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOUREOPER :: ReplyCode
RPL_YOUREOPER               = ReplyCode 381
pattern $mRPL_REHASHING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_REHASHING :: ReplyCode
RPL_REHASHING               = ReplyCode 382
pattern $mRPL_YOURESERVICE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOURESERVICE :: ReplyCode
RPL_YOURESERVICE            = ReplyCode 383
pattern $mRPL_MYPORTIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MYPORTIS :: ReplyCode
RPL_MYPORTIS                = ReplyCode 384
pattern $mRPL_NOTOPERANYMORE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOTOPERANYMORE :: ReplyCode
RPL_NOTOPERANYMORE          = ReplyCode 385
pattern $mRPL_RSACHALLENGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_RSACHALLENGE :: ReplyCode
RPL_RSACHALLENGE            = ReplyCode 386
pattern $mRPL_TIME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TIME :: ReplyCode
RPL_TIME                    = ReplyCode 391
pattern $mRPL_USERSSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_USERSSTART :: ReplyCode
RPL_USERSSTART              = ReplyCode 392
pattern $mRPL_USERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_USERS :: ReplyCode
RPL_USERS                   = ReplyCode 393
pattern $mRPL_ENDOFUSERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFUSERS :: ReplyCode
RPL_ENDOFUSERS              = ReplyCode 394
pattern $mRPL_NOUSERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOUSERS :: ReplyCode
RPL_NOUSERS                 = ReplyCode 395
pattern $mRPL_HOSTHIDDEN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_HOSTHIDDEN :: ReplyCode
RPL_HOSTHIDDEN              = ReplyCode 396
pattern $mERR_UNKNOWNERROR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UNKNOWNERROR :: ReplyCode
ERR_UNKNOWNERROR            = ReplyCode 400
pattern $mERR_NOSUCHNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOSUCHNICK :: ReplyCode
ERR_NOSUCHNICK              = ReplyCode 401
pattern $mERR_NOSUCHSERVER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOSUCHSERVER :: ReplyCode
ERR_NOSUCHSERVER            = ReplyCode 402
pattern $mERR_NOSUCHCHANNEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOSUCHCHANNEL :: ReplyCode
ERR_NOSUCHCHANNEL           = ReplyCode 403
pattern $mERR_CANNOTSENDTOCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTSENDTOCHAN :: ReplyCode
ERR_CANNOTSENDTOCHAN        = ReplyCode 404
pattern $mERR_TOOMANYCHANNELS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYCHANNELS :: ReplyCode
ERR_TOOMANYCHANNELS         = ReplyCode 405
pattern $mERR_WASNOSUCHNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WASNOSUCHNICK :: ReplyCode
ERR_WASNOSUCHNICK           = ReplyCode 406
pattern $mERR_TOOMANYTARGETS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYTARGETS :: ReplyCode
ERR_TOOMANYTARGETS          = ReplyCode 407
pattern $mERR_NOORIGIN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOORIGIN :: ReplyCode
ERR_NOORIGIN                = ReplyCode 409
pattern $mERR_INVALIDCAPCMD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_INVALIDCAPCMD :: ReplyCode
ERR_INVALIDCAPCMD           = ReplyCode 410
pattern $mERR_NORECIPIENT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NORECIPIENT :: ReplyCode
ERR_NORECIPIENT             = ReplyCode 411
pattern $mERR_NOTEXTTOSEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTEXTTOSEND :: ReplyCode
ERR_NOTEXTTOSEND            = ReplyCode 412
pattern $mERR_NOTOPLEVEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTOPLEVEL :: ReplyCode
ERR_NOTOPLEVEL              = ReplyCode 413
pattern $mERR_WILDTOPLEVEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WILDTOPLEVEL :: ReplyCode
ERR_WILDTOPLEVEL            = ReplyCode 414
pattern $mERR_MSGNEEDREGGEDNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_MSGNEEDREGGEDNICK :: ReplyCode
ERR_MSGNEEDREGGEDNICK       = ReplyCode 415
pattern $mERR_TOOMANYMATCHES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYMATCHES :: ReplyCode
ERR_TOOMANYMATCHES          = ReplyCode 416
pattern $mERR_LENGTHTRUNCATED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_LENGTHTRUNCATED :: ReplyCode
ERR_LENGTHTRUNCATED         = ReplyCode 419
pattern $mERR_UNKNOWNCOMMAND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UNKNOWNCOMMAND :: ReplyCode
ERR_UNKNOWNCOMMAND          = ReplyCode 421
pattern $mERR_NOMOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOMOTD :: ReplyCode
ERR_NOMOTD                  = ReplyCode 422
pattern $mERR_NOADMININFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOADMININFO :: ReplyCode
ERR_NOADMININFO             = ReplyCode 423
pattern $mERR_FILEERROR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_FILEERROR :: ReplyCode
ERR_FILEERROR               = ReplyCode 424
pattern $mERR_NOOPERMOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOOPERMOTD :: ReplyCode
ERR_NOOPERMOTD              = ReplyCode 425
pattern $mERR_TOOMANYAWAY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYAWAY :: ReplyCode
ERR_TOOMANYAWAY             = ReplyCode 429
pattern $mERR_EVENTNICKCHANGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_EVENTNICKCHANGE :: ReplyCode
ERR_EVENTNICKCHANGE         = ReplyCode 430
pattern $mERR_NONICKNAMEGIVEN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NONICKNAMEGIVEN :: ReplyCode
ERR_NONICKNAMEGIVEN         = ReplyCode 431
pattern $mERR_ERRONEUSNICKNAME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ERRONEUSNICKNAME :: ReplyCode
ERR_ERRONEUSNICKNAME        = ReplyCode 432
pattern $mERR_NICKNAMEINUSE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NICKNAMEINUSE :: ReplyCode
ERR_NICKNAMEINUSE           = ReplyCode 433
pattern $mERR_SERVICENAMEINUSE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SERVICENAMEINUSE :: ReplyCode
ERR_SERVICENAMEINUSE        = ReplyCode 434
pattern $mERR_NORULES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NORULES :: ReplyCode
ERR_NORULES                 = ReplyCode 434
pattern $mERR_BANNICKCHANGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BANNICKCHANGE :: ReplyCode
ERR_BANNICKCHANGE           = ReplyCode 435
pattern $mERR_NICKCOLLISION :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NICKCOLLISION :: ReplyCode
ERR_NICKCOLLISION           = ReplyCode 436
pattern $mERR_UNAVAILRESOURCE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UNAVAILRESOURCE :: ReplyCode
ERR_UNAVAILRESOURCE         = ReplyCode 437
pattern $mERR_NICKTOOFAST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NICKTOOFAST :: ReplyCode
ERR_NICKTOOFAST             = ReplyCode 438
pattern $mERR_TARGETTOOFAST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TARGETTOOFAST :: ReplyCode
ERR_TARGETTOOFAST           = ReplyCode 439
pattern $mERR_SERVICESDOWN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SERVICESDOWN :: ReplyCode
ERR_SERVICESDOWN            = ReplyCode 440
pattern $mERR_USERNOTINCHANNEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USERNOTINCHANNEL :: ReplyCode
ERR_USERNOTINCHANNEL        = ReplyCode 441
pattern $mERR_NOTONCHANNEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTONCHANNEL :: ReplyCode
ERR_NOTONCHANNEL            = ReplyCode 442
pattern $mERR_USERONCHANNEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USERONCHANNEL :: ReplyCode
ERR_USERONCHANNEL           = ReplyCode 443
pattern $mERR_NOLOGIN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOLOGIN :: ReplyCode
ERR_NOLOGIN                 = ReplyCode 444
pattern $mERR_SUMMONDISABLED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SUMMONDISABLED :: ReplyCode
ERR_SUMMONDISABLED          = ReplyCode 445
pattern $mERR_USERSDISABLED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USERSDISABLED :: ReplyCode
ERR_USERSDISABLED           = ReplyCode 446
pattern $mERR_NONICKCHANGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NONICKCHANGE :: ReplyCode
ERR_NONICKCHANGE            = ReplyCode 447
pattern $mERR_NOTIMPLEMENTED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTIMPLEMENTED :: ReplyCode
ERR_NOTIMPLEMENTED          = ReplyCode 449
pattern $mERR_NOTREGISTERED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTREGISTERED :: ReplyCode
ERR_NOTREGISTERED           = ReplyCode 451
pattern $mERR_IDCOLLISION :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_IDCOLLISION :: ReplyCode
ERR_IDCOLLISION             = ReplyCode 452
pattern $mERR_NICKLOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NICKLOST :: ReplyCode
ERR_NICKLOST                = ReplyCode 453
pattern $mERR_HOSTILENAME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_HOSTILENAME :: ReplyCode
ERR_HOSTILENAME             = ReplyCode 455
pattern $mERR_ACCEPTFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ACCEPTFULL :: ReplyCode
ERR_ACCEPTFULL              = ReplyCode 456
pattern $mERR_ACCEPTEXIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ACCEPTEXIST :: ReplyCode
ERR_ACCEPTEXIST             = ReplyCode 457
pattern $mERR_ACCEPTNOT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ACCEPTNOT :: ReplyCode
ERR_ACCEPTNOT               = ReplyCode 458
pattern $mERR_NOHIDING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOHIDING :: ReplyCode
ERR_NOHIDING                = ReplyCode 459
pattern $mERR_NOTFORHALFOPS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOTFORHALFOPS :: ReplyCode
ERR_NOTFORHALFOPS           = ReplyCode 460
pattern $mERR_NEEDMOREPARAMS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NEEDMOREPARAMS :: ReplyCode
ERR_NEEDMOREPARAMS          = ReplyCode 461
pattern $mERR_ALREADYREGISTERED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ALREADYREGISTERED :: ReplyCode
ERR_ALREADYREGISTERED       = ReplyCode 462
pattern $mERR_NOPERMFORHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOPERMFORHOST :: ReplyCode
ERR_NOPERMFORHOST           = ReplyCode 463
pattern $mERR_PASSWDMISMATCH :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_PASSWDMISMATCH :: ReplyCode
ERR_PASSWDMISMATCH          = ReplyCode 464
pattern $mERR_YOUREBANNEDCREEP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_YOUREBANNEDCREEP :: ReplyCode
ERR_YOUREBANNEDCREEP        = ReplyCode 465
pattern $mERR_YOUWILLBEBANNED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_YOUWILLBEBANNED :: ReplyCode
ERR_YOUWILLBEBANNED         = ReplyCode 466
pattern $mERR_KEYSET :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_KEYSET :: ReplyCode
ERR_KEYSET                  = ReplyCode 467
pattern $mERR_INVALIDUSERNAME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_INVALIDUSERNAME :: ReplyCode
ERR_INVALIDUSERNAME         = ReplyCode 468
pattern $mERR_ONLYSERVERSCANCHANGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ONLYSERVERSCANCHANGE :: ReplyCode
ERR_ONLYSERVERSCANCHANGE    = ReplyCode 468
pattern $mERR_LINKSET :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_LINKSET :: ReplyCode
ERR_LINKSET                 = ReplyCode 469
pattern $mERR_LINKCHANNEL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_LINKCHANNEL :: ReplyCode
ERR_LINKCHANNEL             = ReplyCode 470
pattern $mERR_CHANNELISFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CHANNELISFULL :: ReplyCode
ERR_CHANNELISFULL           = ReplyCode 471
pattern $mERR_UNKNOWNMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UNKNOWNMODE :: ReplyCode
ERR_UNKNOWNMODE             = ReplyCode 472
pattern $mERR_INVITEONLYCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_INVITEONLYCHAN :: ReplyCode
ERR_INVITEONLYCHAN          = ReplyCode 473
pattern $mERR_BANNEDFROMCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BANNEDFROMCHAN :: ReplyCode
ERR_BANNEDFROMCHAN          = ReplyCode 474
pattern $mERR_BADCHANNELKEY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADCHANNELKEY :: ReplyCode
ERR_BADCHANNELKEY           = ReplyCode 475
pattern $mERR_BADCHANMASK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADCHANMASK :: ReplyCode
ERR_BADCHANMASK             = ReplyCode 476
pattern $mERR_NEEDREGGEDNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NEEDREGGEDNICK :: ReplyCode
ERR_NEEDREGGEDNICK          = ReplyCode 477
pattern $mERR_BANLISTFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BANLISTFULL :: ReplyCode
ERR_BANLISTFULL             = ReplyCode 478
pattern $mERR_BADCHANNAME :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADCHANNAME :: ReplyCode
ERR_BADCHANNAME             = ReplyCode 479
pattern $mERR_THROTTLE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_THROTTLE :: ReplyCode
ERR_THROTTLE                = ReplyCode 480
pattern $mERR_NOPRIVILEGES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOPRIVILEGES :: ReplyCode
ERR_NOPRIVILEGES            = ReplyCode 481
pattern $mERR_CHANOPRIVSNEEDED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CHANOPRIVSNEEDED :: ReplyCode
ERR_CHANOPRIVSNEEDED        = ReplyCode 482
pattern $mERR_CANTKILLSERVER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANTKILLSERVER :: ReplyCode
ERR_CANTKILLSERVER          = ReplyCode 483
pattern $mERR_ISCHANSERVICE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ISCHANSERVICE :: ReplyCode
ERR_ISCHANSERVICE           = ReplyCode 484
pattern $mERR_BANNEDNICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BANNEDNICK :: ReplyCode
ERR_BANNEDNICK              = ReplyCode 485
pattern $mERR_NONONREG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NONONREG :: ReplyCode
ERR_NONONREG                = ReplyCode 486
pattern $mERR_TSLESSCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TSLESSCHAN :: ReplyCode
ERR_TSLESSCHAN              = ReplyCode 488
pattern $mERR_VOICENEEDED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_VOICENEEDED :: ReplyCode
ERR_VOICENEEDED             = ReplyCode 489
pattern $mERR_NOOPERHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOOPERHOST :: ReplyCode
ERR_NOOPERHOST              = ReplyCode 491
pattern $mERR_NOSERVICEHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOSERVICEHOST :: ReplyCode
ERR_NOSERVICEHOST           = ReplyCode 492
pattern $mERR_NOFEATURE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOFEATURE :: ReplyCode
ERR_NOFEATURE               = ReplyCode 493
pattern $mERR_OWNMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_OWNMODE :: ReplyCode
ERR_OWNMODE                 = ReplyCode 494
pattern $mERR_BADLOGTYPE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADLOGTYPE :: ReplyCode
ERR_BADLOGTYPE              = ReplyCode 495
pattern $mERR_BADLOGSYS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADLOGSYS :: ReplyCode
ERR_BADLOGSYS               = ReplyCode 496
pattern $mERR_BADLOGVALUE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADLOGVALUE :: ReplyCode
ERR_BADLOGVALUE             = ReplyCode 497
pattern $mERR_ISOPERLCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ISOPERLCHAN :: ReplyCode
ERR_ISOPERLCHAN             = ReplyCode 498
pattern $mERR_CHANOWNPRIVNEEDED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CHANOWNPRIVNEEDED :: ReplyCode
ERR_CHANOWNPRIVNEEDED       = ReplyCode 499
pattern $mERR_UMODEUNKNOWNFLAG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UMODEUNKNOWNFLAG :: ReplyCode
ERR_UMODEUNKNOWNFLAG        = ReplyCode 501
pattern $mERR_USERSDONTMATCH :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USERSDONTMATCH :: ReplyCode
ERR_USERSDONTMATCH          = ReplyCode 502
pattern $mERR_GHOSTEDCLIENT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_GHOSTEDCLIENT :: ReplyCode
ERR_GHOSTEDCLIENT           = ReplyCode 503
pattern $mERR_USERNOTONSERV :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USERNOTONSERV :: ReplyCode
ERR_USERNOTONSERV           = ReplyCode 504
pattern $mERR_SILELISTFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SILELISTFULL :: ReplyCode
ERR_SILELISTFULL            = ReplyCode 511
pattern $mERR_TOOMANYWATCH :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYWATCH :: ReplyCode
ERR_TOOMANYWATCH            = ReplyCode 512
pattern $mERR_WRONGPONG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WRONGPONG :: ReplyCode
ERR_WRONGPONG               = ReplyCode 513
pattern $mERR_BADEXPIRE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADEXPIRE :: ReplyCode
ERR_BADEXPIRE               = ReplyCode 515
pattern $mERR_DONTCHEAT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_DONTCHEAT :: ReplyCode
ERR_DONTCHEAT               = ReplyCode 516
pattern $mERR_DISABLED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_DISABLED :: ReplyCode
ERR_DISABLED                = ReplyCode 517
pattern $mERR_NOINVITE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOINVITE :: ReplyCode
ERR_NOINVITE                = ReplyCode 518
pattern $mERR_LONGMASK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_LONGMASK :: ReplyCode
ERR_LONGMASK                = ReplyCode 518
pattern $mERR_ADMONLY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_ADMONLY :: ReplyCode
ERR_ADMONLY                 = ReplyCode 519
pattern $mERR_TOOMANYUSERS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYUSERS :: ReplyCode
ERR_TOOMANYUSERS            = ReplyCode 519
pattern $mERR_OPERONLY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_OPERONLY :: ReplyCode
ERR_OPERONLY                = ReplyCode 520
pattern $mERR_MASKTOOWIDE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_MASKTOOWIDE :: ReplyCode
ERR_MASKTOOWIDE             = ReplyCode 520
pattern $mERR_WHOTRUNC :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WHOTRUNC :: ReplyCode
ERR_WHOTRUNC                = ReplyCode 520
pattern $mERR_LISTSYNTAX :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_LISTSYNTAX :: ReplyCode
ERR_LISTSYNTAX              = ReplyCode 521
pattern $mERR_WHOSYNTAX :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WHOSYNTAX :: ReplyCode
ERR_WHOSYNTAX               = ReplyCode 522
pattern $mERR_WHOLIMEXCEED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_WHOLIMEXCEED :: ReplyCode
ERR_WHOLIMEXCEED            = ReplyCode 523
pattern $mERR_HELPNOTFOUND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_HELPNOTFOUND :: ReplyCode
ERR_HELPNOTFOUND            = ReplyCode 524
pattern $mERR_REMOTEPFX :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_REMOTEPFX :: ReplyCode
ERR_REMOTEPFX               = ReplyCode 525
pattern $mERR_PFXUNROUTABLE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_PFXUNROUTABLE :: ReplyCode
ERR_PFXUNROUTABLE           = ReplyCode 526
pattern $mERR_BADHOSTMASK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADHOSTMASK :: ReplyCode
ERR_BADHOSTMASK             = ReplyCode 550
pattern $mERR_HOSTUNAVAIL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_HOSTUNAVAIL :: ReplyCode
ERR_HOSTUNAVAIL             = ReplyCode 551
pattern $mERR_USINGSLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_USINGSLINE :: ReplyCode
ERR_USINGSLINE              = ReplyCode 552
pattern $mERR_STATSSLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_STATSSLINE :: ReplyCode
ERR_STATSSLINE              = ReplyCode 553
pattern $mRPL_LOGON :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOGON :: ReplyCode
RPL_LOGON                   = ReplyCode 600
pattern $mRPL_LOGOFF :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOGOFF :: ReplyCode
RPL_LOGOFF                  = ReplyCode 601
pattern $mRPL_WATCHOFF :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WATCHOFF :: ReplyCode
RPL_WATCHOFF                = ReplyCode 602
pattern $mRPL_WATCHSTAT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WATCHSTAT :: ReplyCode
RPL_WATCHSTAT               = ReplyCode 603
pattern $mRPL_NOWON :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOWON :: ReplyCode
RPL_NOWON                   = ReplyCode 604
pattern $mRPL_NOWOFF :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOWOFF :: ReplyCode
RPL_NOWOFF                  = ReplyCode 605
pattern $mRPL_WATCHLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WATCHLIST :: ReplyCode
RPL_WATCHLIST               = ReplyCode 606
pattern $mRPL_ENDOFWATCHLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFWATCHLIST :: ReplyCode
RPL_ENDOFWATCHLIST          = ReplyCode 607
pattern $mRPL_WATCHCLEAR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WATCHCLEAR :: ReplyCode
RPL_WATCHCLEAR              = ReplyCode 608
pattern $mRPL_ISOPER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ISOPER :: ReplyCode
RPL_ISOPER                  = ReplyCode 610
pattern $mRPL_ISLOCOP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ISLOCOP :: ReplyCode
RPL_ISLOCOP                 = ReplyCode 611
pattern $mRPL_ISNOTOPER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ISNOTOPER :: ReplyCode
RPL_ISNOTOPER               = ReplyCode 612
pattern $mRPL_ENDOFISOPER :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFISOPER :: ReplyCode
RPL_ENDOFISOPER             = ReplyCode 613
pattern $mRPL_DCCSTATUS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DCCSTATUS :: ReplyCode
RPL_DCCSTATUS               = ReplyCode 617
pattern $mRPL_DCCLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DCCLIST :: ReplyCode
RPL_DCCLIST                 = ReplyCode 618
pattern $mRPL_ENDOFDCCLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFDCCLIST :: ReplyCode
RPL_ENDOFDCCLIST            = ReplyCode 619
pattern $mRPL_WHOWASHOST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOWASHOST :: ReplyCode
RPL_WHOWASHOST              = ReplyCode 619
pattern $mRPL_DCCINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DCCINFO :: ReplyCode
RPL_DCCINFO                 = ReplyCode 620
pattern $mRPL_RULES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_RULES :: ReplyCode
RPL_RULES                   = ReplyCode 621
pattern $mRPL_ENDOFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFO :: ReplyCode
RPL_ENDOFO                  = ReplyCode 626
pattern $mRPL_SETTINGS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SETTINGS :: ReplyCode
RPL_SETTINGS                = ReplyCode 630
pattern $mRPL_ENDOFSETTINGS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFSETTINGS :: ReplyCode
RPL_ENDOFSETTINGS           = ReplyCode 631
pattern $mRPL_DUMPING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DUMPING :: ReplyCode
RPL_DUMPING                 = ReplyCode 640
pattern $mRPL_DUMPRPL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_DUMPRPL :: ReplyCode
RPL_DUMPRPL                 = ReplyCode 641
pattern $mRPL_EODUMP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_EODUMP :: ReplyCode
RPL_EODUMP                  = ReplyCode 642
pattern $mRPL_TRACEROUTE_HOP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEROUTE_HOP :: ReplyCode
RPL_TRACEROUTE_HOP          = ReplyCode 660
pattern $mRPL_TRACEROUTE_START :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TRACEROUTE_START :: ReplyCode
RPL_TRACEROUTE_START        = ReplyCode 661
pattern $mRPL_MODECHANGEWARN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MODECHANGEWARN :: ReplyCode
RPL_MODECHANGEWARN          = ReplyCode 662
pattern $mRPL_CHANREDIR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CHANREDIR :: ReplyCode
RPL_CHANREDIR               = ReplyCode 663
pattern $mRPL_SERVMODEIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SERVMODEIS :: ReplyCode
RPL_SERVMODEIS              = ReplyCode 664
pattern $mRPL_OTHERUMODEIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_OTHERUMODEIS :: ReplyCode
RPL_OTHERUMODEIS            = ReplyCode 665
pattern $mRPL_ENDOF_GENERIC :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOF_GENERIC :: ReplyCode
RPL_ENDOF_GENERIC           = ReplyCode 666
pattern $mRPL_STARTTLS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_STARTTLS :: ReplyCode
RPL_STARTTLS                = ReplyCode 670
pattern $mRPL_WHOISSECURE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISSECURE :: ReplyCode
RPL_WHOISSECURE             = ReplyCode 671
pattern $mRPL_UNKNOWNMODES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_UNKNOWNMODES :: ReplyCode
RPL_UNKNOWNMODES            = ReplyCode 672
pattern $mRPL_CANNOTSETMODES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_CANNOTSETMODES :: ReplyCode
RPL_CANNOTSETMODES          = ReplyCode 673
pattern $mRPL_LUSERSTAFF :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LUSERSTAFF :: ReplyCode
RPL_LUSERSTAFF              = ReplyCode 678
pattern $mRPL_TIMEONSERVERIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TIMEONSERVERIS :: ReplyCode
RPL_TIMEONSERVERIS          = ReplyCode 679
pattern $mRPL_NETWORKS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NETWORKS :: ReplyCode
RPL_NETWORKS                = ReplyCode 682
pattern $mRPL_YOURLANGUAGEIS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_YOURLANGUAGEIS :: ReplyCode
RPL_YOURLANGUAGEIS          = ReplyCode 687
pattern $mRPL_LANGUAGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LANGUAGE :: ReplyCode
RPL_LANGUAGE                = ReplyCode 688
pattern $mRPL_WHOISSTAFF :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISSTAFF :: ReplyCode
RPL_WHOISSTAFF              = ReplyCode 689
pattern $mRPL_WHOISLANGUAGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_WHOISLANGUAGE :: ReplyCode
RPL_WHOISLANGUAGE           = ReplyCode 690
pattern $mERR_STARTTLS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_STARTTLS :: ReplyCode
ERR_STARTTLS                = ReplyCode 691
pattern $mRPL_MODLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MODLIST :: ReplyCode
RPL_MODLIST                 = ReplyCode 702
pattern $mRPL_ENDOFMODLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFMODLIST :: ReplyCode
RPL_ENDOFMODLIST            = ReplyCode 703
pattern $mRPL_HELPSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_HELPSTART :: ReplyCode
RPL_HELPSTART               = ReplyCode 704
pattern $mRPL_HELPTXT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_HELPTXT :: ReplyCode
RPL_HELPTXT                 = ReplyCode 705
pattern $mRPL_ENDOFHELP :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFHELP :: ReplyCode
RPL_ENDOFHELP               = ReplyCode 706
pattern $mERR_TARGCHANGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TARGCHANGE :: ReplyCode
ERR_TARGCHANGE              = ReplyCode 707
pattern $mRPL_ETRACEFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ETRACEFULL :: ReplyCode
RPL_ETRACEFULL              = ReplyCode 708
pattern $mRPL_ETRACE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ETRACE :: ReplyCode
RPL_ETRACE                  = ReplyCode 709
pattern $mRPL_KNOCK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_KNOCK :: ReplyCode
RPL_KNOCK                   = ReplyCode 710
pattern $mRPL_KNOCKDLVR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_KNOCKDLVR :: ReplyCode
RPL_KNOCKDLVR               = ReplyCode 711
pattern $mERR_TOOMANYKNOCK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYKNOCK :: ReplyCode
ERR_TOOMANYKNOCK            = ReplyCode 712
pattern $mERR_CHANOPEN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CHANOPEN :: ReplyCode
ERR_CHANOPEN                = ReplyCode 713
pattern $mERR_KNOCKONCHAN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_KNOCKONCHAN :: ReplyCode
ERR_KNOCKONCHAN             = ReplyCode 714
pattern $mERR_KNOCKDISABLED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_KNOCKDISABLED :: ReplyCode
ERR_KNOCKDISABLED           = ReplyCode 715
pattern $mRPL_TARGUMODEG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TARGUMODEG :: ReplyCode
RPL_TARGUMODEG              = ReplyCode 716
pattern $mRPL_TARGNOTIFY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TARGNOTIFY :: ReplyCode
RPL_TARGNOTIFY              = ReplyCode 717
pattern $mRPL_UMODEGMSG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_UMODEGMSG :: ReplyCode
RPL_UMODEGMSG               = ReplyCode 718
pattern $mRPL_OMOTDSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_OMOTDSTART :: ReplyCode
RPL_OMOTDSTART              = ReplyCode 720
pattern $mRPL_OMOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_OMOTD :: ReplyCode
RPL_OMOTD                   = ReplyCode 721
pattern $mRPL_ENDOFOMOTD :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFOMOTD :: ReplyCode
RPL_ENDOFOMOTD              = ReplyCode 722
pattern $mERR_NOPRIVS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOPRIVS :: ReplyCode
ERR_NOPRIVS                 = ReplyCode 723
pattern $mRPL_TESTMASK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TESTMASK :: ReplyCode
RPL_TESTMASK                = ReplyCode 724
pattern $mRPL_TESTLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TESTLINE :: ReplyCode
RPL_TESTLINE                = ReplyCode 725
pattern $mRPL_NOTESTLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NOTESTLINE :: ReplyCode
RPL_NOTESTLINE              = ReplyCode 726
pattern $mRPL_TESTMASKGECOS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_TESTMASKGECOS :: ReplyCode
RPL_TESTMASKGECOS           = ReplyCode 727
pattern $mRPL_QUIETLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_QUIETLIST :: ReplyCode
RPL_QUIETLIST               = ReplyCode 728
pattern $mRPL_ENDOFQUIETLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFQUIETLIST :: ReplyCode
RPL_ENDOFQUIETLIST          = ReplyCode 729
pattern $mRPL_MONONLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MONONLINE :: ReplyCode
RPL_MONONLINE               = ReplyCode 730
pattern $mRPL_MONOFFLINE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MONOFFLINE :: ReplyCode
RPL_MONOFFLINE              = ReplyCode 731
pattern $mRPL_MONLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_MONLIST :: ReplyCode
RPL_MONLIST                 = ReplyCode 732
pattern $mRPL_ENDOFMONLIST :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFMONLIST :: ReplyCode
RPL_ENDOFMONLIST            = ReplyCode 733
pattern $mERR_MONLISTFULL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_MONLISTFULL :: ReplyCode
ERR_MONLISTFULL             = ReplyCode 734
pattern $mRPL_RSACHALLENGE2 :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_RSACHALLENGE2 :: ReplyCode
RPL_RSACHALLENGE2           = ReplyCode 740
pattern $mRPL_ENDOFRSACHALLENGE2 :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_ENDOFRSACHALLENGE2 :: ReplyCode
RPL_ENDOFRSACHALLENGE2      = ReplyCode 741
pattern $mERR_MLOCKRESTRICTED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_MLOCKRESTRICTED :: ReplyCode
ERR_MLOCKRESTRICTED         = ReplyCode 742
pattern $mRPL_SCANMATCHED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SCANMATCHED :: ReplyCode
RPL_SCANMATCHED             = ReplyCode 750
pattern $mRPL_SCANUMODES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SCANUMODES :: ReplyCode
RPL_SCANUMODES              = ReplyCode 751
pattern $mRPL_XINFO :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_XINFO :: ReplyCode
RPL_XINFO                   = ReplyCode 771
pattern $mRPL_XINFOSTART :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_XINFOSTART :: ReplyCode
RPL_XINFOSTART              = ReplyCode 773
pattern $mRPL_XINFOEND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_XINFOEND :: ReplyCode
RPL_XINFOEND                = ReplyCode 774
pattern $mRPL_LOGGEDIN :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOGGEDIN :: ReplyCode
RPL_LOGGEDIN                = ReplyCode 900
pattern $mRPL_LOGGEDOUT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_LOGGEDOUT :: ReplyCode
RPL_LOGGEDOUT               = ReplyCode 901
pattern $mRPL_NICKLOCKED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_NICKLOCKED :: ReplyCode
RPL_NICKLOCKED              = ReplyCode 902
pattern $mRPL_SASLSUCCESS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SASLSUCCESS :: ReplyCode
RPL_SASLSUCCESS             = ReplyCode 903
pattern $mERR_SASLFAIL :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SASLFAIL :: ReplyCode
ERR_SASLFAIL                = ReplyCode 904
pattern $mERR_SASLTOOLONG :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SASLTOOLONG :: ReplyCode
ERR_SASLTOOLONG             = ReplyCode 905
pattern $mERR_SASLABORTED :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SASLABORTED :: ReplyCode
ERR_SASLABORTED             = ReplyCode 906
pattern $mERR_SASLALREADY :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SASLALREADY :: ReplyCode
ERR_SASLALREADY             = ReplyCode 907
pattern $mRPL_SASLMECHS :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bRPL_SASLMECHS :: ReplyCode
RPL_SASLMECHS               = ReplyCode 908
pattern $mERR_CANNOTDOCOMMAND :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTDOCOMMAND :: ReplyCode
ERR_CANNOTDOCOMMAND         = ReplyCode 972
pattern $mERR_CANNOTCHANGEUMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTCHANGEUMODE :: ReplyCode
ERR_CANNOTCHANGEUMODE       = ReplyCode 973
pattern $mERR_CANNOTCHANGECHANMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTCHANGECHANMODE :: ReplyCode
ERR_CANNOTCHANGECHANMODE    = ReplyCode 974
pattern $mERR_CANNOTCHANGESERVERMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTCHANGESERVERMODE :: ReplyCode
ERR_CANNOTCHANGESERVERMODE  = ReplyCode 975
pattern $mERR_CANNOTSENDTONICK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_CANNOTSENDTONICK :: ReplyCode
ERR_CANNOTSENDTONICK        = ReplyCode 976
pattern $mERR_UNKNOWNSERVERMODE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_UNKNOWNSERVERMODE :: ReplyCode
ERR_UNKNOWNSERVERMODE       = ReplyCode 977
pattern $mERR_SERVERMODELOCK :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_SERVERMODELOCK :: ReplyCode
ERR_SERVERMODELOCK          = ReplyCode 979
pattern $mERR_BADCHARENCODING :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_BADCHARENCODING :: ReplyCode
ERR_BADCHARENCODING         = ReplyCode 980
pattern $mERR_TOOMANYLANGUAGES :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TOOMANYLANGUAGES :: ReplyCode
ERR_TOOMANYLANGUAGES        = ReplyCode 981
pattern $mERR_NOLANGUAGE :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NOLANGUAGE :: ReplyCode
ERR_NOLANGUAGE              = ReplyCode 982
pattern $mERR_TEXTTOOSHORT :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_TEXTTOOSHORT :: ReplyCode
ERR_TEXTTOOSHORT            = ReplyCode 983
pattern $mERR_NUMERIC_ERR :: forall {r}. ReplyCode -> ((# #) -> r) -> ((# #) -> r) -> r
$bERR_NUMERIC_ERR :: ReplyCode
ERR_NUMERIC_ERR             = ReplyCode 999

-- | Information describing the category and human decipherable name of a
-- reply.
data ReplyCodeInfo = ReplyCodeInfo
  { ReplyCodeInfo -> ReplyType
replyCodeType :: !ReplyType -- ^ category
  , ReplyCodeInfo -> Text
replyCodeText :: !Text      -- ^ human-decipherable name
  }
  deriving (ReplyCodeInfo -> ReplyCodeInfo -> Bool
(ReplyCodeInfo -> ReplyCodeInfo -> Bool)
-> (ReplyCodeInfo -> ReplyCodeInfo -> Bool) -> Eq ReplyCodeInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
== :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
$c/= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
/= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
Eq, Eq ReplyCodeInfo
Eq ReplyCodeInfo =>
(ReplyCodeInfo -> ReplyCodeInfo -> Ordering)
-> (ReplyCodeInfo -> ReplyCodeInfo -> Bool)
-> (ReplyCodeInfo -> ReplyCodeInfo -> Bool)
-> (ReplyCodeInfo -> ReplyCodeInfo -> Bool)
-> (ReplyCodeInfo -> ReplyCodeInfo -> Bool)
-> (ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo)
-> (ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo)
-> Ord ReplyCodeInfo
ReplyCodeInfo -> ReplyCodeInfo -> Bool
ReplyCodeInfo -> ReplyCodeInfo -> Ordering
ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: ReplyCodeInfo -> ReplyCodeInfo -> Ordering
compare :: ReplyCodeInfo -> ReplyCodeInfo -> Ordering
$c< :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
< :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
$c<= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
<= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
$c> :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
> :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
$c>= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
>= :: ReplyCodeInfo -> ReplyCodeInfo -> Bool
$cmax :: ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo
max :: ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo
$cmin :: ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo
min :: ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo
Ord, Int -> ReplyCodeInfo -> ShowS
[ReplyCodeInfo] -> ShowS
ReplyCodeInfo -> String
(Int -> ReplyCodeInfo -> ShowS)
-> (ReplyCodeInfo -> String)
-> ([ReplyCodeInfo] -> ShowS)
-> Show ReplyCodeInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ReplyCodeInfo -> ShowS
showsPrec :: Int -> ReplyCodeInfo -> ShowS
$cshow :: ReplyCodeInfo -> String
show :: ReplyCodeInfo -> String
$cshowList :: [ReplyCodeInfo] -> ShowS
showList :: [ReplyCodeInfo] -> ShowS
Show, ReadPrec [ReplyCodeInfo]
ReadPrec ReplyCodeInfo
Int -> ReadS ReplyCodeInfo
ReadS [ReplyCodeInfo]
(Int -> ReadS ReplyCodeInfo)
-> ReadS [ReplyCodeInfo]
-> ReadPrec ReplyCodeInfo
-> ReadPrec [ReplyCodeInfo]
-> Read ReplyCodeInfo
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ReplyCodeInfo
readsPrec :: Int -> ReadS ReplyCodeInfo
$creadList :: ReadS [ReplyCodeInfo]
readList :: ReadS [ReplyCodeInfo]
$creadPrec :: ReadPrec ReplyCodeInfo
readPrec :: ReadPrec ReplyCodeInfo
$creadListPrec :: ReadPrec [ReplyCodeInfo]
readListPrec :: ReadPrec [ReplyCodeInfo]
Read)

-- | Compute information for a reply code
replyCodeInfo :: ReplyCode -> ReplyCodeInfo
replyCodeInfo :: ReplyCode -> ReplyCodeInfo
replyCodeInfo (ReplyCode Word
w) =
  case Vector ReplyCodeInfo
replyCodeInfoTable Vector ReplyCodeInfo -> Int -> Maybe ReplyCodeInfo
forall a. Vector a -> Int -> Maybe a
Vector.!? Int
i of
    Maybe ReplyCodeInfo
Nothing -> Int -> ReplyCodeInfo
defaultReplyCodeInfo Int
i
    Just ReplyCodeInfo
info -> ReplyCodeInfo
info
  where
    i :: Int
i = Word -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
w

-- | Categorize a reply code using the unknown category and simply showing
-- the reply code's number as its name.
defaultReplyCodeInfo :: Int -> ReplyCodeInfo
defaultReplyCodeInfo :: Int -> ReplyCodeInfo
defaultReplyCodeInfo = ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
UnknownReply (Text -> ReplyCodeInfo) -> (Int -> Text) -> Int -> ReplyCodeInfo
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
Text.pack (String -> Text) -> (Int -> String) -> Int -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> String
forall a. Show a => a -> String
show

-- | Information about reply codes as derived from ircd-seven.
replyCodeInfoTable :: Vector ReplyCodeInfo
replyCodeInfoTable :: Vector ReplyCodeInfo
replyCodeInfoTable
  = (ReplyCodeInfo -> ReplyCodeInfo -> ReplyCodeInfo)
-> Vector ReplyCodeInfo
-> Vector (Int, ReplyCodeInfo)
-> Vector ReplyCodeInfo
forall a b.
(a -> b -> a) -> Vector a -> Vector (Int, b) -> Vector a
Vector.accumulate
      (\ReplyCodeInfo
_def ReplyCodeInfo
new -> ReplyCodeInfo
new)
      (Int -> (Int -> ReplyCodeInfo) -> Vector ReplyCodeInfo
forall a. Int -> (Int -> a) -> Vector a
Vector.generate Int
1000 Int -> ReplyCodeInfo
defaultReplyCodeInfo)
  (Vector (Int, ReplyCodeInfo) -> Vector ReplyCodeInfo)
-> Vector (Int, ReplyCodeInfo) -> Vector ReplyCodeInfo
forall a b. (a -> b) -> a -> b
$ ((ReplyCode, ReplyCodeInfo) -> (Int, ReplyCodeInfo))
-> Vector (ReplyCode, ReplyCodeInfo) -> Vector (Int, ReplyCodeInfo)
forall a b. (a -> b) -> Vector a -> Vector b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\(ReplyCode Word
code,ReplyCodeInfo
info) -> (Word -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
code, ReplyCodeInfo
info))
  (Vector (ReplyCode, ReplyCodeInfo) -> Vector (Int, ReplyCodeInfo))
-> Vector (ReplyCode, ReplyCodeInfo) -> Vector (Int, ReplyCodeInfo)
forall a b. (a -> b) -> a -> b
$ [(ReplyCode, ReplyCodeInfo)] -> Vector (ReplyCode, ReplyCodeInfo)
forall a. [a] -> Vector a
Vector.fromList
  [ (ReplyCode
RPL_WELCOME               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"welcome")
  , (ReplyCode
RPL_YOURHOST              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"your-host")
  , (ReplyCode
RPL_CREATED               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"created")
  , (ReplyCode
RPL_MYINFO                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"my-info")
  , (ReplyCode
RPL_ISUPPORT              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"isupport")
  , (ReplyCode
RPL_SNOMASK               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"sno-mask")
  , (ReplyCode
RPL_STATMEMTOT            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"stat-mem-tot")
  , (ReplyCode
RPL_REDIR                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"redir")
  , (ReplyCode
RPL_YOURCOOKIE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"your-cookie")
  , (ReplyCode
RPL_MAP                   , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"map")
  , (ReplyCode
RPL_MAPEND                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"map-end")
  , (ReplyCode
RPL_YOURID                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"your-id")
  , (ReplyCode
RPL_SAVENICK              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"save-nick")
  , (ReplyCode
RPL_ATTEMPTINGJUNC        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"attempting-junc")
  , (ReplyCode
RPL_ATTEMPTINGREROUTE     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"attempting-reroute")
  , (ReplyCode
RPL_REMOTESUPPORT         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ClientServerReply Text
"remote-support")
  , (ReplyCode
RPL_TRACELINK             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-link")
  , (ReplyCode
RPL_TRACECONNECTING       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-connecting")
  , (ReplyCode
RPL_TRACEHANDSHAKE        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-handshake")
  , (ReplyCode
RPL_TRACEUNKNOWN          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-unknown")
  , (ReplyCode
RPL_TRACEOPERATOR         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-operator")
  , (ReplyCode
RPL_TRACEUSER             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-user")
  , (ReplyCode
RPL_TRACESERVER           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-server")
  , (ReplyCode
RPL_TRACESERVICE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-service")
  , (ReplyCode
RPL_TRACENEWTYPE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-newtype")
  , (ReplyCode
RPL_TRACECLASS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-class")
  , (ReplyCode
RPL_TRACERECONNECT        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-reconnect")
  , (ReplyCode
RPL_STATS                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats")
  , (ReplyCode
RPL_STATSLINKINFO         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-linkinfo")
  , (ReplyCode
RPL_STATSCOMMANDS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-commands")
  , (ReplyCode
RPL_STATSCLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-cline")
  , (ReplyCode
RPL_STATSNLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-nline")
  , (ReplyCode
RPL_STATSILINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-iline")
  , (ReplyCode
RPL_STATSKLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-kline")
  , (ReplyCode
RPL_STATSQLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-qline")
  , (ReplyCode
RPL_STATSYLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-yline")
  , (ReplyCode
RPL_ENDOFSTATS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-stats")
  , (ReplyCode
RPL_STATSPLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-pline")
  , (ReplyCode
RPL_UMODEIS               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"umode-is")
  , (ReplyCode
RPL_SQLINE_NICK           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"sqline-nick")
  , (ReplyCode
RPL_STATSDLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-dline")
  , (ReplyCode
RPL_STATSCOUNT            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-count")
  , (ReplyCode
RPL_SERVICEINFO           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"service-info")
  , (ReplyCode
RPL_ENDOFSERVICES         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-services")
  , (ReplyCode
RPL_SERVICE               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"service")
  , (ReplyCode
RPL_SERVLIST              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"serv-list")
  , (ReplyCode
RPL_SERVLISTEND           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"serv-list-end")
  , (ReplyCode
RPL_STATSVERBOSE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-verbose")
  , (ReplyCode
RPL_STATSIAUTH            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-iauth")
  , (ReplyCode
RPL_STATSLLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-lline")
  , (ReplyCode
RPL_STATSUPTIME           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-uptime")
  , (ReplyCode
RPL_STATSOLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-oline")
  , (ReplyCode
RPL_STATSHLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-hline")
  , (ReplyCode
RPL_STATSSLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-sline")
  , (ReplyCode
RPL_STATSPING             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-ping")
  , (ReplyCode
RPL_STATSXLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-xline")
  , (ReplyCode
RPL_STATSULINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-uline")
  , (ReplyCode
RPL_STATSDEBUG            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-debug")
  , (ReplyCode
RPL_STATSCONN             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-conn")
  , (ReplyCode
RPL_LUSERCLIENT           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-client")
  , (ReplyCode
RPL_LUSEROP               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-op")
  , (ReplyCode
RPL_LUSERUNKNOWN          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-unknown")
  , (ReplyCode
RPL_LUSERCHANNELS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-channels")
  , (ReplyCode
RPL_LUSERME               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-me")
  , (ReplyCode
RPL_ADMINME               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"admin-me")
  , (ReplyCode
RPL_ADMINLOC1             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"admin-loc1")
  , (ReplyCode
RPL_ADMINLOC2             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"admin-loc2")
  , (ReplyCode
RPL_ADMINEMAIL            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"admin-email")
  , (ReplyCode
RPL_TRACELOG              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"trace-log")
  , (ReplyCode
RPL_ENDOFTRACE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-trace")
  , (ReplyCode
RPL_LOAD2HI               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"load-too-high")
  , (ReplyCode
RPL_LOCALUSERS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"local-users")
  , (ReplyCode
RPL_GLOBALUSERS           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"global-users")
  , (ReplyCode
RPL_START_NETSTAT         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"start-netstat")
  , (ReplyCode
RPL_NETSTAT               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"netstat")
  , (ReplyCode
RPL_END_NETSTAT           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-netstat")
  , (ReplyCode
RPL_PRIVS                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"privs")
  , (ReplyCode
RPL_SILELIST              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"sile-list")
  , (ReplyCode
RPL_ENDOFSILELIST         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-sile-list")
  , (ReplyCode
RPL_NOTIFY                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"notify")
  , (ReplyCode
RPL_ENDNOTIFY             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-notify")
  , (ReplyCode
RPL_STATSDELTA            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"stats-delta")
  , (ReplyCode
RPL_WHOISCERTFP           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-certfp")
  , (ReplyCode
RPL_VCHANLIST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"vchan-list")
  , (ReplyCode
RPL_VCHANHELP             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"vchan-help")
  , (ReplyCode
RPL_GLIST                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"glist")
  , (ReplyCode
RPL_ACCEPTLIST            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"accept-list")
  , (ReplyCode
RPL_ENDOFACCEPT           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-accept")
  , (ReplyCode
RPL_ENDOFJUPELIST         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-jupe-list")
  , (ReplyCode
RPL_FEATURE               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"feature")
  , (ReplyCode
RPL_DATASTR               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"datastr")
  , (ReplyCode
RPL_END_CHANINFO          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-chaninfo")
  , (ReplyCode
RPL_NONE                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"none")
  , (ReplyCode
RPL_AWAY                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"away")
  , (ReplyCode
RPL_USERHOST              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"userhost")
  , (ReplyCode
RPL_ISON                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"ison")
  , (ReplyCode
RPL_TEXT                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"text")
  , (ReplyCode
RPL_UNAWAY                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"unaway")
  , (ReplyCode
RPL_NOWAWAY               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"now-away")
  , (ReplyCode
RPL_WHOISREGNICK          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-regnick")
  , (ReplyCode
RPL_SUSERHOST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"suserhost")
  , (ReplyCode
RPL_NOTIFYACTION          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"notify-action")
  , (ReplyCode
RPL_WHOISADMIN            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-admin")
  , (ReplyCode
RPL_NICKTRACE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nick-trace")
  , (ReplyCode
RPL_WHOISSADMIN           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-sadmin")
  , (ReplyCode
RPL_WHOISHELPER           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-helper")
  , (ReplyCode
RPL_WHOISHELPOP           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-helpop")
  , (ReplyCode
RPL_WHOISUSER             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-user")
  , (ReplyCode
RPL_WHOISSERVER           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-server")
  , (ReplyCode
RPL_WHOISOPERATOR         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-operator")
  , (ReplyCode
RPL_WHOWASUSER            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whowas-user")
  , (ReplyCode
RPL_ENDOFWHO              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-who")
  , (ReplyCode
RPL_WHOISCHANOP           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-chanop")
  , (ReplyCode
RPL_WHOISIDLE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-idle")
  , (ReplyCode
RPL_ENDOFWHOIS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-whois")
  , (ReplyCode
RPL_WHOISCHANNELS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-channels")
  , (ReplyCode
RPL_WHOISSPECIAL          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-special")
  , (ReplyCode
RPL_LISTSTART             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"list-start")
  , (ReplyCode
RPL_LIST                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"list")
  , (ReplyCode
RPL_LISTEND               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"list-end")
  , (ReplyCode
RPL_CHANNELMODEIS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"channel-mode-is")
  , (ReplyCode
RPL_CHANNELMLOCKIS        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"channel-mlock-is")
  , (ReplyCode
RPL_NOCHANPASS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nochanpass")
  , (ReplyCode
RPL_CHPASSUNKNOWN         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"chpass-unknown")
  , (ReplyCode
RPL_CHANNEL_URL           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"channel-url")
  , (ReplyCode
RPL_CREATIONTIME          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"creation-time")
  , (ReplyCode
RPL_WHOISACCOUNT          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-account")
  , (ReplyCode
RPL_NOTOPIC               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"notopic")
  , (ReplyCode
RPL_TOPIC                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"topic")
  , (ReplyCode
RPL_TOPICWHOTIME          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"topic-whotime")
  , (ReplyCode
RPL_LISTUSAGE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"list-usage")
  , (ReplyCode
RPL_COMMANDSYNTAX         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"command-syntax")
  , (ReplyCode
RPL_LISTSYNTAX            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"list-syntax")
  , (ReplyCode
RPL_WHOISTEXT             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-text")
  , (ReplyCode
RPL_WHOISACTUALLY         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-actually")
  , (ReplyCode
RPL_BADCHANPASS           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"bad-chanpass")
  , (ReplyCode
RPL_INVITING              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"inviting")
  , (ReplyCode
RPL_SUMMONING             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"summoning")
  , (ReplyCode
RPL_INVITED               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"invited")
  , (ReplyCode
RPL_INVEXLIST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"invex-list")
  , (ReplyCode
RPL_ENDOFINVEXLIST        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-invex-list")
  , (ReplyCode
RPL_EXCEPTLIST            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"except-list")
  , (ReplyCode
RPL_ENDOFEXCEPTLIST       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-except-list")
  , (ReplyCode
RPL_VERSION               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"version")
  , (ReplyCode
RPL_WHOREPLY              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"who-reply")
  , (ReplyCode
RPL_NAMREPLY              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nam-reply")
  , (ReplyCode
RPL_WHOSPCRPL             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"who-special-reply")
  , (ReplyCode
RPL_NAMREPLY_             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nam-reply_")
  , (ReplyCode
RPL_WHOWASREAL            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whowas-real")
  , (ReplyCode
RPL_KILLDONE              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"kill-done")
  , (ReplyCode
RPL_CLOSING               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"closing")
  , (ReplyCode
RPL_CLOSEEND              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"close-end")
  , (ReplyCode
RPL_LINKS                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"links")
  , (ReplyCode
RPL_ENDOFLINKS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-links")
  , (ReplyCode
RPL_ENDOFNAMES            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-names")
  , (ReplyCode
RPL_BANLIST               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"ban-list")
  , (ReplyCode
RPL_ENDOFBANLIST          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-ban-list")
  , (ReplyCode
RPL_ENDOFWHOWAS           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-whowas")
  , (ReplyCode
RPL_INFO                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"info")
  , (ReplyCode
RPL_MOTD                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"motd")
  , (ReplyCode
RPL_INFOSTART             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"info-start")
  , (ReplyCode
RPL_ENDOFINFO             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-info")
  , (ReplyCode
RPL_MOTDSTART             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"motd-start")
  , (ReplyCode
RPL_ENDOFMOTD             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-motd")
  , (ReplyCode
RPL_WHOISHOST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-host")
  , (ReplyCode
RPL_WHOISMODES            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-modes")
  , (ReplyCode
RPL_YOUREOPER             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"youre-oper")
  , (ReplyCode
RPL_REHASHING             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"rehashing")
  , (ReplyCode
RPL_YOURESERVICE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"youre-service")
  , (ReplyCode
RPL_MYPORTIS              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"my-port-is")
  , (ReplyCode
RPL_NOTOPERANYMORE        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"not-oper-anymore")
  , (ReplyCode
RPL_RSACHALLENGE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"rsa-challenge")
  , (ReplyCode
RPL_TIME                  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"time")
  , (ReplyCode
RPL_USERSSTART            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"users-start")
  , (ReplyCode
RPL_USERS                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"users")
  , (ReplyCode
RPL_ENDOFUSERS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-users")
  , (ReplyCode
RPL_NOUSERS               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nousers")
  , (ReplyCode
RPL_HOSTHIDDEN            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"host-hidden")
  , (ReplyCode
ERR_UNKNOWNERROR          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"unknown-error")
  , (ReplyCode
ERR_NOSUCHNICK            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-such-nick")
  , (ReplyCode
ERR_NOSUCHSERVER          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-such-server")
  , (ReplyCode
ERR_NOSUCHCHANNEL         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-such-channel")
  , (ReplyCode
ERR_CANNOTSENDTOCHAN      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-send-to-chan")
  , (ReplyCode
ERR_TOOMANYCHANNELS       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-channels")
  , (ReplyCode
ERR_WASNOSUCHNICK         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"was-no-such-nick")
  , (ReplyCode
ERR_TOOMANYTARGETS        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-targets")
  , (ReplyCode
ERR_NOORIGIN              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-origin")
  , (ReplyCode
ERR_INVALIDCAPCMD         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"invalid-cap-cmd")
  , (ReplyCode
ERR_NORECIPIENT           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-recipient")
  , (ReplyCode
ERR_NOTEXTTOSEND          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-text-to-send")
  , (ReplyCode
ERR_NOTOPLEVEL            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-top-level")
  , (ReplyCode
ERR_WILDTOPLEVEL          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"wild-top-level")
  , (ReplyCode
ERR_MSGNEEDREGGEDNICK     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"msg-need-regged-nick")
  , (ReplyCode
ERR_TOOMANYMATCHES        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-matches")
  , (ReplyCode
ERR_LENGTHTRUNCATED       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"length-truncated")
  , (ReplyCode
ERR_UNKNOWNCOMMAND        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"unknown-command")
  , (ReplyCode
ERR_NOMOTD                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-motd")
  , (ReplyCode
ERR_NOADMININFO           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-admin-info")
  , (ReplyCode
ERR_FILEERROR             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"file-error")
  , (ReplyCode
ERR_NOOPERMOTD            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-oper-motd")
  , (ReplyCode
ERR_TOOMANYAWAY           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-away")
  , (ReplyCode
ERR_EVENTNICKCHANGE       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"event-nick-change")
  , (ReplyCode
ERR_NONICKNAMEGIVEN       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-nickname-given")
  , (ReplyCode
ERR_ERRONEUSNICKNAME      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"err-no-use-nickname")
  , (ReplyCode
ERR_NICKNAMEINUSE         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"nickname-in-use")
  , (ReplyCode
ERR_SERVICENAMEINUSE      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"service-name-in-use")
  , (ReplyCode
ERR_NORULES               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-rules")
  , (ReplyCode
ERR_BANNICKCHANGE         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"ban-nick-change")
  , (ReplyCode
ERR_NICKCOLLISION         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"nick-collision")
  , (ReplyCode
ERR_UNAVAILRESOURCE       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"unavail-resource")
  , (ReplyCode
ERR_NICKTOOFAST           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"nick-too-fast")
  , (ReplyCode
ERR_TARGETTOOFAST         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"target-too-fast")
  , (ReplyCode
ERR_SERVICESDOWN          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"services-down")
  , (ReplyCode
ERR_USERNOTINCHANNEL      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"user-not-in-channel")
  , (ReplyCode
ERR_NOTONCHANNEL          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"not-on-channel")
  , (ReplyCode
ERR_USERONCHANNEL         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"user-on-channel")
  , (ReplyCode
ERR_NOLOGIN               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-login")
  , (ReplyCode
ERR_SUMMONDISABLED        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"summon-disabled")
  , (ReplyCode
ERR_USERSDISABLED         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"users-disabled")
  , (ReplyCode
ERR_NONICKCHANGE          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-nick-change")
  , (ReplyCode
ERR_NOTIMPLEMENTED        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"not-implemented")
  , (ReplyCode
ERR_NOTREGISTERED         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"not-registered")
  , (ReplyCode
ERR_IDCOLLISION           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"id-collision")
  , (ReplyCode
ERR_NICKLOST              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"nick-lost")
  , (ReplyCode
ERR_HOSTILENAME           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"hostile-name")
  , (ReplyCode
ERR_ACCEPTFULL            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"accept-full")
  , (ReplyCode
ERR_ACCEPTEXIST           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"accept-exist")
  , (ReplyCode
ERR_ACCEPTNOT             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"accept-not")
  , (ReplyCode
ERR_NOHIDING              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-hiding")
  , (ReplyCode
ERR_NOTFORHALFOPS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"not-for-halfops")
  , (ReplyCode
ERR_NEEDMOREPARAMS        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"need-more-params")
  , (ReplyCode
ERR_ALREADYREGISTERED     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"already-registered")
  , (ReplyCode
ERR_NOPERMFORHOST         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-perm-for-host")
  , (ReplyCode
ERR_PASSWDMISMATCH        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"passwd-mismatch")
  , (ReplyCode
ERR_YOUREBANNEDCREEP      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"youre-banned-creep")
  , (ReplyCode
ERR_YOUWILLBEBANNED       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"you-will-be-banned")
  , (ReplyCode
ERR_KEYSET                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"keyset")
  , (ReplyCode
ERR_INVALIDUSERNAME       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"invalid-username")
  , (ReplyCode
ERR_ONLYSERVERSCANCHANGE  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"only-servers-can-change")
  , (ReplyCode
ERR_LINKSET               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"link-set")
  , (ReplyCode
ERR_LINKCHANNEL           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"link-channel")
  , (ReplyCode
ERR_CHANNELISFULL         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"channel-is-full")
  , (ReplyCode
ERR_UNKNOWNMODE           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"unknown-mode")
  , (ReplyCode
ERR_INVITEONLYCHAN        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"invite-only-chan")
  , (ReplyCode
ERR_BANNEDFROMCHAN        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"banned-from-chan")
  , (ReplyCode
ERR_BADCHANNELKEY         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-channel-key")
  , (ReplyCode
ERR_BADCHANMASK           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-chan-mask")
  , (ReplyCode
ERR_NEEDREGGEDNICK        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"need-regged-nick")
  , (ReplyCode
ERR_BANLISTFULL           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"ban-list-full")
  , (ReplyCode
ERR_BADCHANNAME           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-chan-name")
  , (ReplyCode
ERR_THROTTLE              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"throttle")
  , (ReplyCode
ERR_NOPRIVILEGES          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-privileges")
  , (ReplyCode
ERR_CHANOPRIVSNEEDED      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"chano-privs-needed")
  , (ReplyCode
ERR_CANTKILLSERVER        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cant-kill-server")
  , (ReplyCode
ERR_ISCHANSERVICE         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"is-chan-service")
  , (ReplyCode
ERR_BANNEDNICK            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"banned-nick")
  , (ReplyCode
ERR_NONONREG              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-nonreg")
  , (ReplyCode
ERR_TSLESSCHAN            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"tsless-chan")
  , (ReplyCode
ERR_VOICENEEDED           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"voice-needed")
  , (ReplyCode
ERR_NOOPERHOST            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-oper-host")
  , (ReplyCode
ERR_NOSERVICEHOST         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-service-host")
  , (ReplyCode
ERR_NOFEATURE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-feature")
  , (ReplyCode
ERR_OWNMODE               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"own-mode")
  , (ReplyCode
ERR_BADLOGTYPE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-log-type")
  , (ReplyCode
ERR_BADLOGSYS             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-log-sys")
  , (ReplyCode
ERR_BADLOGVALUE           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-log-value")
  , (ReplyCode
ERR_ISOPERLCHAN           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"is-oper-lchan")
  , (ReplyCode
ERR_CHANOWNPRIVNEEDED     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"chan-own-priv-needed")
  , (ReplyCode
ERR_UMODEUNKNOWNFLAG      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"umode-unknown-flag")
  , (ReplyCode
ERR_USERSDONTMATCH        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"users-dont-match")
  , (ReplyCode
ERR_GHOSTEDCLIENT         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"ghosted-client")
  , (ReplyCode
ERR_USERNOTONSERV         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"user-not-on-serv")
  , (ReplyCode
ERR_SILELISTFULL          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"sile-list-full")
  , (ReplyCode
ERR_TOOMANYWATCH          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-watch")
  , (ReplyCode
ERR_WRONGPONG             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"wrong-pong")
  , (ReplyCode
ERR_BADEXPIRE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-expire")
  , (ReplyCode
ERR_DONTCHEAT             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"dont-cheat")
  , (ReplyCode
ERR_DISABLED              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"disabled")
  , (ReplyCode
ERR_NOINVITE              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-invite")
  , (ReplyCode
ERR_LONGMASK              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"long-mask")
  , (ReplyCode
ERR_ADMONLY               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"adm-only")
  , (ReplyCode
ERR_TOOMANYUSERS          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-users")
  , (ReplyCode
ERR_OPERONLY              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"oper-only")
  , (ReplyCode
ERR_MASKTOOWIDE           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"mask-too-wide")
  , (ReplyCode
ERR_WHOTRUNC              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"who-trunc")
  , (ReplyCode
ERR_LISTSYNTAX            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"list-syntax")
  , (ReplyCode
ERR_WHOSYNTAX             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"whosyntax")
  , (ReplyCode
ERR_WHOLIMEXCEED          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"wholimexceed")
  , (ReplyCode
ERR_HELPNOTFOUND          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"help-not-found")
  , (ReplyCode
ERR_REMOTEPFX             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"remote-pfx")
  , (ReplyCode
ERR_PFXUNROUTABLE         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"pfx-unroutable")
  , (ReplyCode
ERR_BADHOSTMASK           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-hostmask")
  , (ReplyCode
ERR_HOSTUNAVAIL           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"host-unavail")
  , (ReplyCode
ERR_USINGSLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"using-sline")
  , (ReplyCode
ERR_STATSSLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"stats-sline")
  , (ReplyCode
RPL_LOGON                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"logon")
  , (ReplyCode
RPL_LOGOFF                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"logoff")
  , (ReplyCode
RPL_WATCHOFF              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"watch-off")
  , (ReplyCode
RPL_WATCHSTAT             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"watch-stat")
  , (ReplyCode
RPL_NOWON                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"now-on")
  , (ReplyCode
RPL_NOWOFF                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"now-off")
  , (ReplyCode
RPL_WATCHLIST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"watch-list")
  , (ReplyCode
RPL_ENDOFWATCHLIST        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-watch-list")
  , (ReplyCode
RPL_WATCHCLEAR            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"watch-clear")
  , (ReplyCode
RPL_ISOPER                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"is-oper")
  , (ReplyCode
RPL_ISLOCOP               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"is-loc-op")
  , (ReplyCode
RPL_ISNOTOPER             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"is-not-oper")
  , (ReplyCode
RPL_ENDOFISOPER           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-is-oper")
  , (ReplyCode
RPL_DCCSTATUS             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"dcc-status")
  , (ReplyCode
RPL_DCCLIST               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"dcc-list")
  , (ReplyCode
RPL_ENDOFDCCLIST          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-dcc-list")
  , (ReplyCode
RPL_WHOWASHOST            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whowas-host")
  , (ReplyCode
RPL_DCCINFO               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"dcc-info")
  , (ReplyCode
RPL_RULES                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"rules")
  , (ReplyCode
RPL_ENDOFO                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-o")
  , (ReplyCode
RPL_SETTINGS              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"settings")
  , (ReplyCode
RPL_ENDOFSETTINGS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-settings")
  , (ReplyCode
RPL_DUMPING               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"dumping")
  , (ReplyCode
RPL_DUMPRPL               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"dump-rpl")
  , (ReplyCode
RPL_EODUMP                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"eodump")
  , (ReplyCode
RPL_TRACEROUTE_HOP        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"traceroute-hop")
  , (ReplyCode
RPL_TRACEROUTE_START      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"traceroute-start")
  , (ReplyCode
RPL_MODECHANGEWARN        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"mode-change-warn")
  , (ReplyCode
RPL_CHANREDIR             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"chan-redir")
  , (ReplyCode
RPL_SERVMODEIS            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"serv-mode-is")
  , (ReplyCode
RPL_OTHERUMODEIS          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"other-umode-is")
  , (ReplyCode
RPL_ENDOF_GENERIC         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-generic")
  , (ReplyCode
RPL_STARTTLS              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"start-tls")
  , (ReplyCode
RPL_WHOISSECURE           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-secure")
  , (ReplyCode
RPL_UNKNOWNMODES          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"unknown-modes")
  , (ReplyCode
RPL_CANNOTSETMODES        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"cannot-set-modes")
  , (ReplyCode
RPL_LUSERSTAFF            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"luser-staff")
  , (ReplyCode
RPL_TIMEONSERVERIS        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"time-on-server-is")
  , (ReplyCode
RPL_NETWORKS              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"networks")
  , (ReplyCode
RPL_YOURLANGUAGEIS        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"your-language-is")
  , (ReplyCode
RPL_LANGUAGE              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"language")
  , (ReplyCode
RPL_WHOISSTAFF            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"whois-staff")
  , (ReplyCode
RPL_WHOISLANGUAGE         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"who-is-language")
  , (ReplyCode
ERR_STARTTLS              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"err-start-tls")
  , (ReplyCode
RPL_MODLIST               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"mod-list")
  , (ReplyCode
RPL_ENDOFMODLIST          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-modlist")
  , (ReplyCode
RPL_HELPSTART             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"help-start")
  , (ReplyCode
RPL_HELPTXT               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"help-txt")
  , (ReplyCode
RPL_ENDOFHELP             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-help")
  , (ReplyCode
ERR_TARGCHANGE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"targ-change")
  , (ReplyCode
RPL_ETRACEFULL            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"etrace-full")
  , (ReplyCode
RPL_ETRACE                , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"etrace")
  , (ReplyCode
RPL_KNOCK                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"knock")
  , (ReplyCode
RPL_KNOCKDLVR             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"knockd-lvr")
  , (ReplyCode
ERR_TOOMANYKNOCK          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-knock")
  , (ReplyCode
ERR_CHANOPEN              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"chan-open")
  , (ReplyCode
ERR_KNOCKONCHAN           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"knock-on-chan")
  , (ReplyCode
ERR_KNOCKDISABLED         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"knock-disabled")
  , (ReplyCode
RPL_TARGUMODEG            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"targ-umodeg")
  , (ReplyCode
RPL_TARGNOTIFY            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"targ-notify")
  , (ReplyCode
RPL_UMODEGMSG             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"umodeg-msg")
  , (ReplyCode
RPL_OMOTDSTART            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"omotd-start")
  , (ReplyCode
RPL_OMOTD                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"omotd")
  , (ReplyCode
RPL_ENDOFOMOTD            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-omotd")
  , (ReplyCode
ERR_NOPRIVS               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-privs")
  , (ReplyCode
RPL_TESTMASK              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"test-mask")
  , (ReplyCode
RPL_TESTLINE              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"test-line")
  , (ReplyCode
RPL_NOTESTLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"no-test-line")
  , (ReplyCode
RPL_TESTMASKGECOS         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"testmask-gecos")
  , (ReplyCode
RPL_QUIETLIST             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"quiet-list")
  , (ReplyCode
RPL_ENDOFQUIETLIST        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-quiet-list")
  , (ReplyCode
RPL_MONONLINE             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"mon-online")
  , (ReplyCode
RPL_MONOFFLINE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"mon-offline")
  , (ReplyCode
RPL_MONLIST               , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"mon-list")
  , (ReplyCode
RPL_ENDOFMONLIST          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-mon-list")
  , (ReplyCode
ERR_MONLISTFULL           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"mon-list-full")
  , (ReplyCode
RPL_RSACHALLENGE2         , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"rsa-challenge2")
  , (ReplyCode
RPL_ENDOFRSACHALLENGE2    , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"end-of-rsa-challenge2")
  , (ReplyCode
ERR_MLOCKRESTRICTED       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"mlock-restricted")
  , (ReplyCode
RPL_SCANMATCHED           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"scan-matched")
  , (ReplyCode
RPL_SCANUMODES            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"scan-umodes")
  , (ReplyCode
RPL_XINFO                 , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"xinfo")
  , (ReplyCode
RPL_XINFOSTART            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"xinfo-start")
  , (ReplyCode
RPL_XINFOEND              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"xinfo-end")
  , (ReplyCode
RPL_LOGGEDIN              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"logged-in")
  , (ReplyCode
RPL_LOGGEDOUT             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"logged-out")
  , (ReplyCode
RPL_NICKLOCKED            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"nick-locked")
  , (ReplyCode
RPL_SASLSUCCESS           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"sasl-success")
  , (ReplyCode
ERR_SASLFAIL              , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"sasl-fail")
  , (ReplyCode
ERR_SASLTOOLONG           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"sasl-toolong")
  , (ReplyCode
ERR_SASLABORTED           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"sasl-aborted")
  , (ReplyCode
ERR_SASLALREADY           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"sasl-already")
  , (ReplyCode
RPL_SASLMECHS             , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
CommandReply Text
"sasl-mechs")
  , (ReplyCode
ERR_CANNOTDOCOMMAND       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-do-command")
  , (ReplyCode
ERR_CANNOTCHANGEUMODE     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-change-umode")
  , (ReplyCode
ERR_CANNOTCHANGECHANMODE  , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-change-chan-mode")
  , (ReplyCode
ERR_CANNOTCHANGESERVERMODE, ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-change-server-mode")
  , (ReplyCode
ERR_CANNOTSENDTONICK      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"cannot-send-to-nick")
  , (ReplyCode
ERR_UNKNOWNSERVERMODE     , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"unknown-server-mode")
  , (ReplyCode
ERR_SERVERMODELOCK        , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"server-mode-lock")
  , (ReplyCode
ERR_BADCHARENCODING       , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"bad-char-encoding")
  , (ReplyCode
ERR_TOOMANYLANGUAGES      , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"too-many-languages")
  , (ReplyCode
ERR_NOLANGUAGE            , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"no-language")
  , (ReplyCode
ERR_TEXTTOOSHORT          , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"text-too-short")
  , (ReplyCode
ERR_NUMERIC_ERR           , ReplyType -> Text -> ReplyCodeInfo
ReplyCodeInfo ReplyType
ErrorReply Text
"numeric-err")
  ]