+from Data.Either import :: Either
+from StdOverloaded import class fromInt, class toInt, class toString, class fromString
+
+:: IRCMessage =
+ { irc_prefix :: Maybe (Either String IRCUser)
+ , irc_command :: IRCCommands}
+
+:: IRCUser =
+ { irc_nick :: String
+ , irc_user :: Maybe String
+ , irc_host :: Maybe String
+ }
+
+instance toString IRCCommands, IRCReplies, IRCErrors, IRCMessage, IRCUser
+instance fromInt IRCReplies, IRCErrors
+instance toInt IRCReplies, IRCErrors