glirc-2.0: src/Irc/Codes.hs
{-# Language PatternSynonyms #-}
{-|
Module : Irc.Codes
Description : Helpers for interpreting IRC reply codes
Copyright : (c) Eric Mertens, 2016
License : ISC
Maintainer : emertens@gmail.com
This module defines support for working with IRC's numeric reply
codes. Pattern synonyms are provided for each of the possible IRC reply codes.
Reply code information was extracted from https://www.alien.net.au/irc/irc2numerics.html
-}
module Irc.Codes where
-- | Categories for reply codes
data ReplyType
= ClientServerReply -- ^ 0-99 Messages between client and server
| CommandReply -- ^ 200-399 Responses to commands
| ErrorReply -- ^ 200-399 Errors
| CustomReply -- ^ Uncategorized
-- | Categorize replies according to the ranges provided in RFC 2812
replyType :: Int {- reply code -} -> ReplyType
replyType x
| 000 <= x, x < 100 = ClientServerReply
| 200 <= x, x < 400 = CommandReply
| 400 <= x, x < 600 = ErrorReply
| otherwise = CustomReply
pattern RPL_WELCOME :: Int
pattern RPL_WELCOME = 001
pattern RPL_YOURHOST :: Int
pattern RPL_YOURHOST = 002
pattern RPL_CREATED :: Int
pattern RPL_CREATED = 003
pattern RPL_MYINFO :: Int
pattern RPL_MYINFO = 004
pattern RPL_ISUPPORT :: Int
pattern RPL_ISUPPORT = 005
pattern RPL_SNOMASK :: Int
pattern RPL_SNOMASK = 008
pattern RPL_STATMEMTOT :: Int
pattern RPL_STATMEMTOT = 009
pattern RPL_BOUNCE :: Int
pattern RPL_BOUNCE = 010
pattern RPL_STATMEM :: Int
pattern RPL_STATMEM = 010
pattern RPL_YOURCOOKIE :: Int
pattern RPL_YOURCOOKIE = 014
pattern RPL_YOURID :: Int
pattern RPL_YOURID = 042
pattern RPL_SAVENICK :: Int
pattern RPL_SAVENICK = 043
pattern RPL_ATTEMPTINGJUNC :: Int
pattern RPL_ATTEMPTINGJUNC = 050
pattern RPL_ATTEMPTINGREROUTE :: Int
pattern RPL_ATTEMPTINGREROUTE = 051
pattern RPL_TRACELINK :: Int
pattern RPL_TRACELINK = 200
pattern RPL_TRACECONNECTING :: Int
pattern RPL_TRACECONNECTING = 201
pattern RPL_TRACEHANDSHAKE :: Int
pattern RPL_TRACEHANDSHAKE = 202
pattern RPL_TRACEUNKNOWN :: Int
pattern RPL_TRACEUNKNOWN = 203
pattern RPL_TRACEOPERATOR :: Int
pattern RPL_TRACEOPERATOR = 204
pattern RPL_TRACEUSER :: Int
pattern RPL_TRACEUSER = 205
pattern RPL_TRACESERVER :: Int
pattern RPL_TRACESERVER = 206
pattern RPL_TRACESERVICE :: Int
pattern RPL_TRACESERVICE = 207
pattern RPL_TRACENEWTYPE :: Int
pattern RPL_TRACENEWTYPE = 208
pattern RPL_TRACECLASS :: Int
pattern RPL_TRACECLASS = 209
pattern RPL_TRACERECONNECT :: Int
pattern RPL_TRACERECONNECT = 210
pattern RPL_STATS :: Int
pattern RPL_STATS = 210
pattern RPL_STATSLINKINFO :: Int
pattern RPL_STATSLINKINFO = 211
pattern RPL_STATSCOMMANDS :: Int
pattern RPL_STATSCOMMANDS = 212
pattern RPL_STATSCLINE :: Int
pattern RPL_STATSCLINE = 213
pattern RPL_STATSILINE :: Int
pattern RPL_STATSILINE = 215
pattern RPL_STATSKLINE :: Int
pattern RPL_STATSKLINE = 216
pattern RPL_STATSYLINE :: Int
pattern RPL_STATSYLINE = 218
pattern RPL_ENDOFSTATS :: Int
pattern RPL_ENDOFSTATS = 219
pattern RPL_UMODEIS :: Int
pattern RPL_UMODEIS = 221
pattern RPL_SQLINE_NICK :: Int
pattern RPL_SQLINE_NICK = 222
pattern RPL_STATSDLINE :: Int
pattern RPL_STATSDLINE = 225
pattern RPL_STATSZLINE :: Int
pattern RPL_STATSZLINE = 225
pattern RPL_STATSCOUNT :: Int
pattern RPL_STATSCOUNT = 226
pattern RPL_SERVICEINFO :: Int
pattern RPL_SERVICEINFO = 231
pattern RPL_ENDOFSERVICES :: Int
pattern RPL_ENDOFSERVICES = 232
pattern RPL_SERVICE :: Int
pattern RPL_SERVICE = 233
pattern RPL_SERVLIST :: Int
pattern RPL_SERVLIST = 234
pattern RPL_SERVLISTEND :: Int
pattern RPL_SERVLISTEND = 235
pattern RPL_STATSVERBOSE :: Int
pattern RPL_STATSVERBOSE = 236
pattern RPL_STATSIAUTH :: Int
pattern RPL_STATSIAUTH = 239
pattern RPL_STATSLLINE :: Int
pattern RPL_STATSLLINE = 241
pattern RPL_STATSUPTIME :: Int
pattern RPL_STATSUPTIME = 242
pattern RPL_STATSOLINE :: Int
pattern RPL_STATSOLINE = 243
pattern RPL_STATSHLINE :: Int
pattern RPL_STATSHLINE = 244
pattern RPL_STATSSLINE :: Int
pattern RPL_STATSSLINE = 245
pattern RPL_STATSPING :: Int
pattern RPL_STATSPING = 246
pattern RPL_STATSDEFINE :: Int
pattern RPL_STATSDEFINE = 248
pattern RPL_STATSDEBUG :: Int
pattern RPL_STATSDEBUG = 249
pattern RPL_STATSCONN :: Int
pattern RPL_STATSCONN = 250
pattern RPL_LUSERCLIENT :: Int
pattern RPL_LUSERCLIENT = 251
pattern RPL_LUSEROP :: Int
pattern RPL_LUSEROP = 252
pattern RPL_LUSERUNKNOWN :: Int
pattern RPL_LUSERUNKNOWN = 253
pattern RPL_LUSERCHANNELS :: Int
pattern RPL_LUSERCHANNELS = 254
pattern RPL_LUSERME :: Int
pattern RPL_LUSERME = 255
pattern RPL_ADMINME :: Int
pattern RPL_ADMINME = 256
pattern RPL_ADMINLOC1 :: Int
pattern RPL_ADMINLOC1 = 257
pattern RPL_ADMINLOC2 :: Int
pattern RPL_ADMINLOC2 = 258
pattern RPL_ADMINEMAIL :: Int
pattern RPL_ADMINEMAIL = 259
pattern RPL_TRACELOG :: Int
pattern RPL_TRACELOG = 261
pattern RPL_TRACEPING :: Int
pattern RPL_TRACEPING = 262
pattern RPL_TRACEEND :: Int
pattern RPL_TRACEEND = 262
pattern RPL_TRYAGAIN :: Int
pattern RPL_TRYAGAIN = 263
pattern RPL_LOCALUSERS :: Int
pattern RPL_LOCALUSERS = 265
pattern RPL_GLOBALUSERS :: Int
pattern RPL_GLOBALUSERS = 266
pattern RPL_START_NETSTAT :: Int
pattern RPL_START_NETSTAT = 267
pattern RPL_NETSTAT :: Int
pattern RPL_NETSTAT = 268
pattern RPL_END_NETSTAT :: Int
pattern RPL_END_NETSTAT = 269
pattern RPL_PRIVS :: Int
pattern RPL_PRIVS = 270
pattern RPL_SILELIST :: Int
pattern RPL_SILELIST = 271
pattern RPL_ENDOFSILELIST :: Int
pattern RPL_ENDOFSILELIST = 272
pattern RPL_NOTIFY :: Int
pattern RPL_NOTIFY = 273
pattern RPL_ENDNOTIFY :: Int
pattern RPL_ENDNOTIFY = 274
pattern RPL_STATSDELTA :: Int
pattern RPL_STATSDELTA = 274
pattern RPL_VCHANEXIST :: Int
pattern RPL_VCHANEXIST = 276
pattern RPL_VCHANLIST :: Int
pattern RPL_VCHANLIST = 277
pattern RPL_VCHANHELP :: Int
pattern RPL_VCHANHELP = 278
pattern RPL_GLIST :: Int
pattern RPL_GLIST = 280
pattern RPL_ENDOFGLIST :: Int
pattern RPL_ENDOFGLIST = 281
pattern RPL_ACCEPTLIST :: Int
pattern RPL_ACCEPTLIST = 281
pattern RPL_ENDOFACCEPT :: Int
pattern RPL_ENDOFACCEPT = 282
pattern RPL_JUPELIST :: Int
pattern RPL_JUPELIST = 282
pattern RPL_ENDOFJUPELIST :: Int
pattern RPL_ENDOFJUPELIST = 283
pattern RPL_FEATURE :: Int
pattern RPL_FEATURE = 284
pattern RPL_GLIST_HASH :: Int
pattern RPL_GLIST_HASH = 285
pattern RPL_CHANINFO_HANDLE :: Int
pattern RPL_CHANINFO_HANDLE = 285
pattern RPL_NEWHOSTIS :: Int
pattern RPL_NEWHOSTIS = 285
pattern RPL_CHANINFO_USERS :: Int
pattern RPL_CHANINFO_USERS = 286
pattern RPL_CHKHEAD :: Int
pattern RPL_CHKHEAD = 286
pattern RPL_CHANINFO_CHOPS :: Int
pattern RPL_CHANINFO_CHOPS = 287
pattern RPL_CHANUSER :: Int
pattern RPL_CHANUSER = 287
pattern RPL_CHANINFO_VOICES :: Int
pattern RPL_CHANINFO_VOICES = 288
pattern RPL_PATCHHEAD :: Int
pattern RPL_PATCHHEAD = 288
pattern RPL_CHANINFO_AWAY :: Int
pattern RPL_CHANINFO_AWAY = 289
pattern RPL_PATCHCON :: Int
pattern RPL_PATCHCON = 289
pattern RPL_CHANINFO_OPERS :: Int
pattern RPL_CHANINFO_OPERS = 290
pattern RPL_HELPHDR :: Int
pattern RPL_HELPHDR = 290
pattern RPL_DATASTR :: Int
pattern RPL_DATASTR = 290
pattern RPL_CHANINFO_BANNED :: Int
pattern RPL_CHANINFO_BANNED = 291
pattern RPL_HELPOP :: Int
pattern RPL_HELPOP = 291
pattern RPL_ENDOFCHECK :: Int
pattern RPL_ENDOFCHECK = 291
pattern RPL_CHANINFO_BANS :: Int
pattern RPL_CHANINFO_BANS = 292
pattern RPL_HELPTLR :: Int
pattern RPL_HELPTLR = 292
pattern RPL_CHANINFO_INVITE :: Int
pattern RPL_CHANINFO_INVITE = 293
pattern RPL_HELPHLP :: Int
pattern RPL_HELPHLP = 293
pattern RPL_CHANINFO_INVITES :: Int
pattern RPL_CHANINFO_INVITES = 294
pattern RPL_HELPFWD :: Int
pattern RPL_HELPFWD = 294
pattern RPL_CHANINFO_KICK :: Int
pattern RPL_CHANINFO_KICK = 295
pattern RPL_HELPIGN :: Int
pattern RPL_HELPIGN = 295
pattern RPL_CHANINFO_KICKS :: Int
pattern RPL_CHANINFO_KICKS = 296
pattern RPL_END_CHANINFO :: Int
pattern RPL_END_CHANINFO = 299
pattern RPL_NONE :: Int
pattern RPL_NONE = 300
pattern RPL_AWAY :: Int
pattern RPL_AWAY = 301
pattern RPL_USERHOST :: Int
pattern RPL_USERHOST = 302
pattern RPL_ISON :: Int
pattern RPL_ISON = 303
pattern RPL_TEXT :: Int
pattern RPL_TEXT = 304
pattern RPL_UNAWAY :: Int
pattern RPL_UNAWAY = 305
pattern RPL_NOWAWAY :: Int
pattern RPL_NOWAWAY = 306
pattern RPL_WHOISREGNICK :: Int
pattern RPL_WHOISREGNICK = 307
pattern RPL_SUSERHOST :: Int
pattern RPL_SUSERHOST = 307
pattern RPL_NOTIFYACTION :: Int
pattern RPL_NOTIFYACTION = 308
pattern RPL_WHOISADMIN :: Int
pattern RPL_WHOISADMIN = 308
pattern RPL_NICKTRACE :: Int
pattern RPL_NICKTRACE = 309
pattern RPL_WHOISSADMIN :: Int
pattern RPL_WHOISSADMIN = 309
pattern RPL_WHOISHELPER :: Int
pattern RPL_WHOISHELPER = 309
pattern RPL_WHOISSVCMSG :: Int
pattern RPL_WHOISSVCMSG = 310
pattern RPL_WHOISHELPOP :: Int
pattern RPL_WHOISHELPOP = 310
pattern RPL_WHOISSERVICE :: Int
pattern RPL_WHOISSERVICE = 310
pattern RPL_WHOISUSER :: Int
pattern RPL_WHOISUSER = 311
pattern RPL_WHOISSERVER :: Int
pattern RPL_WHOISSERVER = 312
pattern RPL_WHOISOPERATOR :: Int
pattern RPL_WHOISOPERATOR = 313
pattern RPL_WHOWASUSER :: Int
pattern RPL_WHOWASUSER = 314
pattern RPL_ENDOFWHO :: Int
pattern RPL_ENDOFWHO = 315
pattern RPL_WHOISCHANOP :: Int
pattern RPL_WHOISCHANOP = 316
pattern RPL_WHOISIDLE :: Int
pattern RPL_WHOISIDLE = 317
pattern RPL_ENDOFWHOIS :: Int
pattern RPL_ENDOFWHOIS = 318
pattern RPL_WHOISCHANNELS :: Int
pattern RPL_WHOISCHANNELS = 319
pattern RPL_WHOISVIRT :: Int
pattern RPL_WHOISVIRT = 320
pattern RPL_WHOIS_HIDDEN :: Int
pattern RPL_WHOIS_HIDDEN = 320
pattern RPL_WHOISSPECIAL :: Int
pattern RPL_WHOISSPECIAL = 320
pattern RPL_LISTSTART :: Int
pattern RPL_LISTSTART = 321
pattern RPL_LIST :: Int
pattern RPL_LIST = 322
pattern RPL_LISTEND :: Int
pattern RPL_LISTEND = 323
pattern RPL_CHANNELMODEIS :: Int
pattern RPL_CHANNELMODEIS = 324
pattern RPL_UNIQOPIS :: Int
pattern RPL_UNIQOPIS = 325
pattern RPL_CHANNELPASSIS :: Int
pattern RPL_CHANNELPASSIS = 325
pattern RPL_NOCHANPASS :: Int
pattern RPL_NOCHANPASS = 326
pattern RPL_CHPASSUNKNOWN :: Int
pattern RPL_CHPASSUNKNOWN = 327
pattern RPL_CHANNEL_URL :: Int
pattern RPL_CHANNEL_URL = 328
pattern RPL_CREATIONTIME :: Int
pattern RPL_CREATIONTIME = 329
pattern RPL_WHOWAS_TIME :: Int
pattern RPL_WHOWAS_TIME = 330
pattern RPL_WHOISACCOUNT :: Int
pattern RPL_WHOISACCOUNT = 330
pattern RPL_NOTOPIC :: Int
pattern RPL_NOTOPIC = 331
pattern RPL_TOPIC :: Int
pattern RPL_TOPIC = 332
pattern RPL_TOPICWHOTIME :: Int
pattern RPL_TOPICWHOTIME = 333
pattern RPL_LISTUSAGE :: Int
pattern RPL_LISTUSAGE = 334
pattern RPL_COMMANDSYNTAX :: Int
pattern RPL_COMMANDSYNTAX = 334
pattern RPL_LISTSYNTAX :: Int
pattern RPL_LISTSYNTAX = 334
pattern RPL_CHANPASSOK :: Int
pattern RPL_CHANPASSOK = 338
pattern RPL_WHOISACTUALLY :: Int
pattern RPL_WHOISACTUALLY = 338
pattern RPL_BADCHANPASS :: Int
pattern RPL_BADCHANPASS = 339
pattern RPL_INVITING :: Int
pattern RPL_INVITING = 341
pattern RPL_SUMMONING :: Int
pattern RPL_SUMMONING = 342
pattern RPL_INVITED :: Int
pattern RPL_INVITED = 345
pattern RPL_INVITELIST :: Int
pattern RPL_INVITELIST = 346
pattern RPL_ENDOFINVITELIST :: Int
pattern RPL_ENDOFINVITELIST = 347
pattern RPL_EXCEPTLIST :: Int
pattern RPL_EXCEPTLIST = 348
pattern RPL_ENDOFEXCEPTLIST :: Int
pattern RPL_ENDOFEXCEPTLIST = 349
pattern RPL_VERSION :: Int
pattern RPL_VERSION = 351
pattern RPL_WHOREPLY :: Int
pattern RPL_WHOREPLY = 352
pattern RPL_NAMREPLY :: Int
pattern RPL_NAMREPLY = 353
pattern RPL_WHOSPCRPL :: Int
pattern RPL_WHOSPCRPL = 354
pattern RPL_NAMREPLY_ :: Int
pattern RPL_NAMREPLY_ = 355
pattern RPL_KILLDONE :: Int
pattern RPL_KILLDONE = 361
pattern RPL_CLOSING :: Int
pattern RPL_CLOSING = 362
pattern RPL_CLOSEEND :: Int
pattern RPL_CLOSEEND = 363
pattern RPL_LINKS :: Int
pattern RPL_LINKS = 364
pattern RPL_ENDOFLINKS :: Int
pattern RPL_ENDOFLINKS = 365
pattern RPL_ENDOFNAMES :: Int
pattern RPL_ENDOFNAMES = 366
pattern RPL_BANLIST :: Int
pattern RPL_BANLIST = 367
pattern RPL_ENDOFBANLIST :: Int
pattern RPL_ENDOFBANLIST = 368
pattern RPL_ENDOFWHOWAS :: Int
pattern RPL_ENDOFWHOWAS = 369
pattern RPL_INFO :: Int
pattern RPL_INFO = 371
pattern RPL_MOTD :: Int
pattern RPL_MOTD = 372
pattern RPL_INFOSTART :: Int
pattern RPL_INFOSTART = 373
pattern RPL_ENDOFINFO :: Int
pattern RPL_ENDOFINFO = 374
pattern RPL_MOTDSTART :: Int
pattern RPL_MOTDSTART = 375
pattern RPL_ENDOFMOTD :: Int
pattern RPL_ENDOFMOTD = 376
pattern RPL_KICKEXPIRED :: Int
pattern RPL_KICKEXPIRED = 377
pattern RPL_SPAM :: Int
pattern RPL_SPAM = 377
pattern RPL_BANEXPIRED :: Int
pattern RPL_BANEXPIRED = 378
pattern RPL_WHOISHOST :: Int
pattern RPL_WHOISHOST = 378
pattern RPL_KICKLINKED :: Int
pattern RPL_KICKLINKED = 379
pattern RPL_BANLINKED :: Int
pattern RPL_BANLINKED = 380
pattern RPL_YOURHELPER :: Int
pattern RPL_YOURHELPER = 380
pattern RPL_YOUREOPER :: Int
pattern RPL_YOUREOPER = 381
pattern RPL_REHASHING :: Int
pattern RPL_REHASHING = 382
pattern RPL_YOURESERVICE :: Int
pattern RPL_YOURESERVICE = 383
pattern RPL_MYPORTIS :: Int
pattern RPL_MYPORTIS = 384
pattern RPL_NOTOPERANYMORE :: Int
pattern RPL_NOTOPERANYMORE = 385
pattern RPL_QLIST :: Int
pattern RPL_QLIST = 386
pattern RPL_IRCOPS :: Int
pattern RPL_IRCOPS = 386
pattern RPL_ENDOFQLIST :: Int
pattern RPL_ENDOFQLIST = 387
pattern RPL_ENDOFIRCOPS :: Int
pattern RPL_ENDOFIRCOPS = 387
pattern RPL_TIME :: Int
pattern RPL_TIME = 391
pattern RPL_USERSSTART :: Int
pattern RPL_USERSSTART = 392
pattern RPL_USERS :: Int
pattern RPL_USERS = 393
pattern RPL_ENDOFUSERS :: Int
pattern RPL_ENDOFUSERS = 394
pattern RPL_NOUSERS :: Int
pattern RPL_NOUSERS = 395
pattern RPL_HOSTHIDDEN :: Int
pattern RPL_HOSTHIDDEN = 396
pattern ERR_UNKNOWNERROR :: Int
pattern ERR_UNKNOWNERROR = 400
pattern ERR_NOSUCHNICK :: Int
pattern ERR_NOSUCHNICK = 401
pattern ERR_NOSUCHSERVER :: Int
pattern ERR_NOSUCHSERVER = 402
pattern ERR_NOSUCHCHANNEL :: Int
pattern ERR_NOSUCHCHANNEL = 403
pattern ERR_CANNOTSENDTOCHAN :: Int
pattern ERR_CANNOTSENDTOCHAN = 404
pattern ERR_TOOMANYCHANNELS :: Int
pattern ERR_TOOMANYCHANNELS = 405
pattern ERR_WASNOSUCHNICK :: Int
pattern ERR_WASNOSUCHNICK = 406
pattern ERR_TOOMANYTARGETS :: Int
pattern ERR_TOOMANYTARGETS = 407
pattern ERR_NOSUCHSERVICE :: Int
pattern ERR_NOSUCHSERVICE = 408
pattern ERR_NOCOLORSONCHAN :: Int
pattern ERR_NOCOLORSONCHAN = 408
pattern ERR_NOORIGIN :: Int
pattern ERR_NOORIGIN = 409
pattern ERR_NORECIPIENT :: Int
pattern ERR_NORECIPIENT = 411
pattern ERR_NOTEXTTOSEND :: Int
pattern ERR_NOTEXTTOSEND = 412
pattern ERR_NOTOPLEVEL :: Int
pattern ERR_NOTOPLEVEL = 413
pattern ERR_WILDTOPLEVEL :: Int
pattern ERR_WILDTOPLEVEL = 414
pattern ERR_BADMASK :: Int
pattern ERR_BADMASK = 415
pattern ERR_TOOMANYMATCHES :: Int
pattern ERR_TOOMANYMATCHES = 416
pattern ERR_QUERYTOOLONG :: Int
pattern ERR_QUERYTOOLONG = 416
pattern ERR_LENGTHTRUNCATED :: Int
pattern ERR_LENGTHTRUNCATED = 419
pattern ERR_UNKNOWNCOMMAND :: Int
pattern ERR_UNKNOWNCOMMAND = 421
pattern ERR_NOMOTD :: Int
pattern ERR_NOMOTD = 422
pattern ERR_NOADMININFO :: Int
pattern ERR_NOADMININFO = 423
pattern ERR_FILEERROR :: Int
pattern ERR_FILEERROR = 424
pattern ERR_NOOPERMOTD :: Int
pattern ERR_NOOPERMOTD = 425
pattern ERR_TOOMANYAWAY :: Int
pattern ERR_TOOMANYAWAY = 429
pattern ERR_EVENTNICKCHANGE :: Int
pattern ERR_EVENTNICKCHANGE = 430
pattern ERR_NONICKNAMEGIVEN :: Int
pattern ERR_NONICKNAMEGIVEN = 431
pattern ERR_ERRONEUSNICKNAME :: Int
pattern ERR_ERRONEUSNICKNAME = 432
pattern ERR_NICKNAMEINUSE :: Int
pattern ERR_NICKNAMEINUSE = 433
pattern ERR_SERVICENAMEINUSE :: Int
pattern ERR_SERVICENAMEINUSE = 434
pattern ERR_NORULES :: Int
pattern ERR_NORULES = 434
pattern ERR_SERVICECONFUSED :: Int
pattern ERR_SERVICECONFUSED = 435
pattern ERR_BANONCHAN :: Int
pattern ERR_BANONCHAN = 435
pattern ERR_NICKCOLLISION :: Int
pattern ERR_NICKCOLLISION = 436
pattern ERR_UNAVAILRESOURCE :: Int
pattern ERR_UNAVAILRESOURCE = 437
pattern ERR_BANNICKCHANGE :: Int
pattern ERR_BANNICKCHANGE = 437
pattern ERR_NICKTOOFAST :: Int
pattern ERR_NICKTOOFAST = 438
pattern ERR_DEAD :: Int
pattern ERR_DEAD = 438
pattern ERR_TARGETTOOFAST :: Int
pattern ERR_TARGETTOOFAST = 439
pattern ERR_SERVICESDOWN :: Int
pattern ERR_SERVICESDOWN = 440
pattern ERR_USERNOTINCHANNEL :: Int
pattern ERR_USERNOTINCHANNEL = 441
pattern ERR_NOTONCHANNEL :: Int
pattern ERR_NOTONCHANNEL = 442
pattern ERR_USERONCHANNEL :: Int
pattern ERR_USERONCHANNEL = 443
pattern ERR_NOLOGIN :: Int
pattern ERR_NOLOGIN = 444
pattern ERR_SUMMONDISABLED :: Int
pattern ERR_SUMMONDISABLED = 445
pattern ERR_USERSDISABLED :: Int
pattern ERR_USERSDISABLED = 446
pattern ERR_NONICKCHANGE :: Int
pattern ERR_NONICKCHANGE = 447
pattern ERR_NOTIMPLEMENTED :: Int
pattern ERR_NOTIMPLEMENTED = 449
pattern ERR_NOTREGISTERED :: Int
pattern ERR_NOTREGISTERED = 451
pattern ERR_IDCOLLISION :: Int
pattern ERR_IDCOLLISION = 452
pattern ERR_NICKLOST :: Int
pattern ERR_NICKLOST = 453
pattern ERR_HOSTILENAME :: Int
pattern ERR_HOSTILENAME = 455
pattern ERR_ACCEPTFULL :: Int
pattern ERR_ACCEPTFULL = 456
pattern ERR_ACCEPTEXIST :: Int
pattern ERR_ACCEPTEXIST = 457
pattern ERR_ACCEPTNOT :: Int
pattern ERR_ACCEPTNOT = 458
pattern ERR_NOHIDING :: Int
pattern ERR_NOHIDING = 459
pattern ERR_NOTFORHALFOPS :: Int
pattern ERR_NOTFORHALFOPS = 460
pattern ERR_NEEDMOREPARAMS :: Int
pattern ERR_NEEDMOREPARAMS = 461
pattern ERR_ALREADYREGISTERED :: Int
pattern ERR_ALREADYREGISTERED = 462
pattern ERR_NOPERMFORHOST :: Int
pattern ERR_NOPERMFORHOST = 463
pattern ERR_PASSWDMISMATCH :: Int
pattern ERR_PASSWDMISMATCH = 464
pattern ERR_YOUREBANNEDCREEP :: Int
pattern ERR_YOUREBANNEDCREEP = 465
pattern ERR_YOUWILLBEBANNED :: Int
pattern ERR_YOUWILLBEBANNED = 466
pattern ERR_KEYSET :: Int
pattern ERR_KEYSET = 467
pattern ERR_INVALIDUSERNAME :: Int
pattern ERR_INVALIDUSERNAME = 468
pattern ERR_ONLYSERVERSCANCHANGE :: Int
pattern ERR_ONLYSERVERSCANCHANGE = 468
pattern ERR_LINKSET :: Int
pattern ERR_LINKSET = 469
pattern ERR_LINKCHANNEL :: Int
pattern ERR_LINKCHANNEL = 470
pattern ERR_KICKEDFROMCHAN :: Int
pattern ERR_KICKEDFROMCHAN = 470
pattern ERR_CHANNELISFULL :: Int
pattern ERR_CHANNELISFULL = 471
pattern ERR_UNKNOWNMODE :: Int
pattern ERR_UNKNOWNMODE = 472
pattern ERR_INVITEONLYCHAN :: Int
pattern ERR_INVITEONLYCHAN = 473
pattern ERR_BANNEDFROMCHAN :: Int
pattern ERR_BANNEDFROMCHAN = 474
pattern ERR_BADCHANNELKEY :: Int
pattern ERR_BADCHANNELKEY = 475
pattern ERR_BADCHANMASK :: Int
pattern ERR_BADCHANMASK = 476
pattern ERR_NOCHANMODES :: Int
pattern ERR_NOCHANMODES = 477
pattern ERR_NEEDREGGEDNICK :: Int
pattern ERR_NEEDREGGEDNICK = 477
pattern ERR_BANLISTFULL :: Int
pattern ERR_BANLISTFULL = 478
pattern ERR_BADCHANNAME :: Int
pattern ERR_BADCHANNAME = 479
pattern ERR_LINKFAIL :: Int
pattern ERR_LINKFAIL = 479
pattern ERR_NOULINE :: Int
pattern ERR_NOULINE = 480
pattern ERR_CANNOTKNOCK :: Int
pattern ERR_CANNOTKNOCK = 480
pattern ERR_NOPRIVILEGES :: Int
pattern ERR_NOPRIVILEGES = 481
pattern ERR_CHANOPRIVSNEEDED :: Int
pattern ERR_CHANOPRIVSNEEDED = 482
pattern ERR_CANTKILLSERVER :: Int
pattern ERR_CANTKILLSERVER = 483
pattern ERR_RESTRICTED :: Int
pattern ERR_RESTRICTED = 484
pattern ERR_ISCHANSERVICE :: Int
pattern ERR_ISCHANSERVICE = 484
pattern ERR_DESYNC :: Int
pattern ERR_DESYNC = 484
pattern ERR_ATTACKDENY :: Int
pattern ERR_ATTACKDENY = 484
pattern ERR_UNIQOPRIVSNEEDED :: Int
pattern ERR_UNIQOPRIVSNEEDED = 485
pattern ERR_KILLDENY :: Int
pattern ERR_KILLDENY = 485
pattern ERR_CANTKICKADMIN :: Int
pattern ERR_CANTKICKADMIN = 485
pattern ERR_ISREALSERVICE :: Int
pattern ERR_ISREALSERVICE = 485
pattern ERR_NONONREG :: Int
pattern ERR_NONONREG = 486
pattern ERR_HTMDISABLED :: Int
pattern ERR_HTMDISABLED = 486
pattern ERR_ACCOUNTONLY :: Int
pattern ERR_ACCOUNTONLY = 486
pattern ERR_CHANTOORECENT :: Int
pattern ERR_CHANTOORECENT = 487
pattern ERR_MSGSERVICES :: Int
pattern ERR_MSGSERVICES = 487
pattern ERR_TSLESSCHAN :: Int
pattern ERR_TSLESSCHAN = 488
pattern ERR_VOICENEEDED :: Int
pattern ERR_VOICENEEDED = 489
pattern ERR_SECUREONLYCHAN :: Int
pattern ERR_SECUREONLYCHAN = 489
pattern ERR_NOOPERHOST :: Int
pattern ERR_NOOPERHOST = 491
pattern ERR_NOSERVICEHOST :: Int
pattern ERR_NOSERVICEHOST = 492
pattern ERR_NOFEATURE :: Int
pattern ERR_NOFEATURE = 493
pattern ERR_BADFEATURE :: Int
pattern ERR_BADFEATURE = 494
pattern ERR_BADLOGTYPE :: Int
pattern ERR_BADLOGTYPE = 495
pattern ERR_BADLOGSYS :: Int
pattern ERR_BADLOGSYS = 496
pattern ERR_BADLOGVALUE :: Int
pattern ERR_BADLOGVALUE = 497
pattern ERR_ISOPERLCHAN :: Int
pattern ERR_ISOPERLCHAN = 498
pattern ERR_CHANOWNPRIVNEEDED :: Int
pattern ERR_CHANOWNPRIVNEEDED = 499
pattern ERR_UMODEUNKNOWNFLAG :: Int
pattern ERR_UMODEUNKNOWNFLAG = 501
pattern ERR_USERSDONTMATCH :: Int
pattern ERR_USERSDONTMATCH = 502
pattern ERR_GHOSTEDCLIENT :: Int
pattern ERR_GHOSTEDCLIENT = 503
pattern ERR_VWORLDWARN :: Int
pattern ERR_VWORLDWARN = 503
pattern ERR_USERNOTONSERV :: Int
pattern ERR_USERNOTONSERV = 504
pattern ERR_SILELISTFULL :: Int
pattern ERR_SILELISTFULL = 511
pattern ERR_TOOMANYWATCH :: Int
pattern ERR_TOOMANYWATCH = 512
pattern ERR_BADPING :: Int
pattern ERR_BADPING = 513
pattern ERR_INVALID_ERROR :: Int
pattern ERR_INVALID_ERROR = 514
pattern ERR_TOOMANYDCC :: Int
pattern ERR_TOOMANYDCC = 514
pattern ERR_BADEXPIRE :: Int
pattern ERR_BADEXPIRE = 515
pattern ERR_DONTCHEAT :: Int
pattern ERR_DONTCHEAT = 516
pattern ERR_DISABLED :: Int
pattern ERR_DISABLED = 517
pattern ERR_NOINVITE :: Int
pattern ERR_NOINVITE = 518
pattern ERR_LONGMASK :: Int
pattern ERR_LONGMASK = 518
pattern ERR_ADMONLY :: Int
pattern ERR_ADMONLY = 519
pattern ERR_TOOMANYUSERS :: Int
pattern ERR_TOOMANYUSERS = 519
pattern ERR_OPERONLY :: Int
pattern ERR_OPERONLY = 520
pattern ERR_MASKTOOWIDE :: Int
pattern ERR_MASKTOOWIDE = 520
pattern ERR_WHOTRUNC :: Int
pattern ERR_WHOTRUNC = 520
pattern ERR_LISTSYNTAX :: Int
pattern ERR_LISTSYNTAX = 521
pattern ERR_WHOSYNTAX :: Int
pattern ERR_WHOSYNTAX = 522
pattern ERR_WHOLIMEXCEED :: Int
pattern ERR_WHOLIMEXCEED = 523
pattern ERR_QUARANTINED :: Int
pattern ERR_QUARANTINED = 524
pattern ERR_OPERSPVERIFY :: Int
pattern ERR_OPERSPVERIFY = 524
pattern ERR_REMOTEPFX :: Int
pattern ERR_REMOTEPFX = 525
pattern ERR_PFXUNROUTABLE :: Int
pattern ERR_PFXUNROUTABLE = 526
pattern ERR_BADHOSTMASK :: Int
pattern ERR_BADHOSTMASK = 550
pattern ERR_HOSTUNAVAIL :: Int
pattern ERR_HOSTUNAVAIL = 551
pattern ERR_USINGSLINE :: Int
pattern ERR_USINGSLINE = 552
pattern ERR_STATSSLINE :: Int
pattern ERR_STATSSLINE = 553
pattern RPL_LOGON :: Int
pattern RPL_LOGON = 600
pattern RPL_LOGOFF :: Int
pattern RPL_LOGOFF = 601
pattern RPL_WATCHOFF :: Int
pattern RPL_WATCHOFF = 602
pattern RPL_WATCHSTAT :: Int
pattern RPL_WATCHSTAT = 603
pattern RPL_NOWON :: Int
pattern RPL_NOWON = 604
pattern RPL_NOWOFF :: Int
pattern RPL_NOWOFF = 605
pattern RPL_WATCHLIST :: Int
pattern RPL_WATCHLIST = 606
pattern RPL_ENDOFWATCHLIST :: Int
pattern RPL_ENDOFWATCHLIST = 607
pattern RPL_WATCHCLEAR :: Int
pattern RPL_WATCHCLEAR = 608
pattern RPL_ISOPER :: Int
pattern RPL_ISOPER = 610
pattern RPL_ISLOCOP :: Int
pattern RPL_ISLOCOP = 611
pattern RPL_ISNOTOPER :: Int
pattern RPL_ISNOTOPER = 612
pattern RPL_ENDOFISOPER :: Int
pattern RPL_ENDOFISOPER = 613
pattern RPL_DCCSTATUS :: Int
pattern RPL_DCCSTATUS = 617
pattern RPL_DCCLIST :: Int
pattern RPL_DCCLIST = 618
pattern RPL_ENDOFDCCLIST :: Int
pattern RPL_ENDOFDCCLIST = 619
pattern RPL_WHOWASHOST :: Int
pattern RPL_WHOWASHOST = 619
pattern RPL_DCCINFO :: Int
pattern RPL_DCCINFO = 620
pattern RPL_RULES :: Int
pattern RPL_RULES = 621
pattern RPL_ENDOFO :: Int
pattern RPL_ENDOFO = 626
pattern RPL_SETTINGS :: Int
pattern RPL_SETTINGS = 630
pattern RPL_ENDOFSETTINGS :: Int
pattern RPL_ENDOFSETTINGS = 631
pattern RPL_DUMPING :: Int
pattern RPL_DUMPING = 640
pattern RPL_DUMPRPL :: Int
pattern RPL_DUMPRPL = 641
pattern RPL_EODUMP :: Int
pattern RPL_EODUMP = 642
pattern RPL_TRACEROUTE_HOP :: Int
pattern RPL_TRACEROUTE_HOP = 660
pattern RPL_TRACEROUTE_START :: Int
pattern RPL_TRACEROUTE_START = 661
pattern RPL_MODECHANGEWARN :: Int
pattern RPL_MODECHANGEWARN = 662
pattern RPL_CHANREDIR :: Int
pattern RPL_CHANREDIR = 663
pattern RPL_SERVMODEIS :: Int
pattern RPL_SERVMODEIS = 664
pattern RPL_OTHERUMODEIS :: Int
pattern RPL_OTHERUMODEIS = 665
pattern RPL_ENDOF_GENERIC :: Int
pattern RPL_ENDOF_GENERIC = 666
pattern RPL_WHOWASDETAILS :: Int
pattern RPL_WHOWASDETAILS = 670
pattern RPL_WHOISSECURE :: Int
pattern RPL_WHOISSECURE = 671
pattern RPL_UNKNOWNMODES :: Int
pattern RPL_UNKNOWNMODES = 672
pattern RPL_CANNOTSETMODES :: Int
pattern RPL_CANNOTSETMODES = 673
pattern RPL_LUSERSTAFF :: Int
pattern RPL_LUSERSTAFF = 678
pattern RPL_TIMEONSERVERIS :: Int
pattern RPL_TIMEONSERVERIS = 679
pattern RPL_NETWORKS :: Int
pattern RPL_NETWORKS = 682
pattern RPL_YOURLANGUAGEIS :: Int
pattern RPL_YOURLANGUAGEIS = 687
pattern RPL_LANGUAGE :: Int
pattern RPL_LANGUAGE = 688
pattern RPL_WHOISSTAFF :: Int
pattern RPL_WHOISSTAFF = 689
pattern RPL_WHOISLANGUAGE :: Int
pattern RPL_WHOISLANGUAGE = 690
pattern RPL_ENDOFMODLIST :: Int
pattern RPL_ENDOFMODLIST = 703
pattern RPL_HELPSTART :: Int
pattern RPL_HELPSTART = 704
pattern RPL_HELPTXT :: Int
pattern RPL_HELPTXT = 705
pattern RPL_ENDOFHELP :: Int
pattern RPL_ENDOFHELP = 706
pattern RPL_ETRACEFULL :: Int
pattern RPL_ETRACEFULL = 708
pattern RPL_ETRACE :: Int
pattern RPL_ETRACE = 709
pattern RPL_KNOCK :: Int
pattern RPL_KNOCK = 710
pattern RPL_KNOCKDLVR :: Int
pattern RPL_KNOCKDLVR = 711
pattern ERR_TOOMANYKNOCK :: Int
pattern ERR_TOOMANYKNOCK = 712
pattern ERR_CHANOPEN :: Int
pattern ERR_CHANOPEN = 713
pattern ERR_KNOCKONCHAN :: Int
pattern ERR_KNOCKONCHAN = 714
pattern ERR_KNOCKDISABLED :: Int
pattern ERR_KNOCKDISABLED = 715
pattern RPL_TARGUMODEG :: Int
pattern RPL_TARGUMODEG = 716
pattern RPL_TARGNOTIFY :: Int
pattern RPL_TARGNOTIFY = 717
pattern RPL_UMODEGMSG :: Int
pattern RPL_UMODEGMSG = 718
pattern RPL_ENDOFOMOTD :: Int
pattern RPL_ENDOFOMOTD = 722
pattern ERR_NOPRIVS :: Int
pattern ERR_NOPRIVS = 723
pattern RPL_TESTMARK :: Int
pattern RPL_TESTMARK = 724
pattern RPL_TESTLINE :: Int
pattern RPL_TESTLINE = 725
pattern RPL_NOTESTLINE :: Int
pattern RPL_NOTESTLINE = 726
pattern RPL_QUIETLIST :: Int
pattern RPL_QUIETLIST = 728
pattern RPL_ENDOFQUIETLIST :: Int
pattern RPL_ENDOFQUIETLIST = 729
pattern RPL_XINFO :: Int
pattern RPL_XINFO = 771
pattern RPL_XINFOSTART :: Int
pattern RPL_XINFOSTART = 773
pattern RPL_XINFOEND :: Int
pattern RPL_XINFOEND = 774
pattern ERR_CANNOTDOCOMMAND :: Int
pattern ERR_CANNOTDOCOMMAND = 972
pattern ERR_CANNOTCHANGEUMODE :: Int
pattern ERR_CANNOTCHANGEUMODE = 973
pattern ERR_CANNOTCHANGECHANMODE :: Int
pattern ERR_CANNOTCHANGECHANMODE = 974
pattern ERR_CANNOTCHANGESERVERMODE :: Int
pattern ERR_CANNOTCHANGESERVERMODE = 975
pattern ERR_CANNOTSENDTONICK :: Int
pattern ERR_CANNOTSENDTONICK = 976
pattern ERR_UNKNOWNSERVERMODE :: Int
pattern ERR_UNKNOWNSERVERMODE = 977
pattern ERR_SERVERMODELOCK :: Int
pattern ERR_SERVERMODELOCK = 979
pattern ERR_BADCHARENCODING :: Int
pattern ERR_BADCHARENCODING = 980
pattern ERR_TOOMANYLANGUAGES :: Int
pattern ERR_TOOMANYLANGUAGES = 981
pattern ERR_NOLANGUAGE :: Int
pattern ERR_NOLANGUAGE = 982
pattern ERR_TEXTTOOSHORT :: Int
pattern ERR_TEXTTOOSHORT = 983
pattern ERR_NUMERIC_ERR :: Int
pattern ERR_NUMERIC_ERR = 999