{-# 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  : [email protected]

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")
  ]