anchor.diff:          state
       | LoginSuccess username ->
           printTime()
  -        cprintf ConsoleColor.White "Logged in as "
  -        cprintf ConsoleColor.Yellow "%s" username
  +        cprintf ConsoleColor.Gray "Logged in as "
  +        cprintf ConsoleColor.DarkYellow "%s" username
           printfn ""
           state
       | LoginFailed reason ->
           printTime()
  -        cprintf ConsoleColor.Red "Failed to login: "
  -        cprintf ConsoleColor.White "%s" reason
  +        cprintf ConsoleColor.DarkRed "Failed to login: "
  +        cprintf ConsoleColor.Gray "%s" reason
           printfn ""
           state
positive.code:         state
      | ModeratorJoin (channel, user) ->
          printTime()
          cprintf ConsoleColor.Cyan "<%s> " channel
          cprintf ConsoleColor.Magenta "Moderator "
          cprintf ConsoleColor.White "%s" user
          cprintf ConsoleColor.Magenta " joined"
          printfn ""
  
          let newMods = (channel, user)::state.mods
          {state with mods = newMods}
      | ModeratorLeft (channel, user) ->
          printTime()
          cprintf ConsoleColor.Cyan "<%s> " channel
          cprintf ConsoleColor.Magenta "Moderator "
          cprintf ConsoleColor.White "%s" user
          cprintf ConsoleColor.Magenta " left"
          printfn ""
  
          // TODO: Ensure only moderators from the current channel are removed
  
negative.code: 
  let private printTime() =
      let time = DateTime.Now.ToString "[hh:mm:ss tt]"
      cprintf ConsoleColor.DarkGray "%s " time
  
  let private printStatusMessage channel user status =
      printTime()
      cprintf ConsoleColor.DarkCyan "<%s> " channel
      cprintf ConsoleColor.DarkYellow "%s " user
      cprintf ConsoleColor.DarkMagenta "%s " status
      printfn ""
  
  let processMessage msg state =
  