anchor.diff:  let printTime() =
       cprintf ConsoleColor.Green "%s" (time())
   
  -let printMessage sender content =
  +let printStatusMessage channel user status =
       printTime()
  -    cprintf ConsoleColor.Yellow " %s" sender
  -    cprintf ConsoleColor.White ": %s" content
  -    printfn ""
  -
  -let printStatusMessage source status event =
  -    printTime()
  -    cprintf ConsoleColor.Yellow " %s" source
  -    cprintf ConsoleColor.White " %s " status
  -    cprintf ConsoleColor.Yellow "%s" event
  +    cprintf ConsoleColor.Cyan " <%s> " channel
  +    cprintf ConsoleColor.Yellow "%s " user
  +    cprintf ConsoleColor.White "%s " status
       printfn ""
   
   type PipeStatus<'a> =
  
positive.code: let cprintf color fmt =
      Printf.kprintf
          (fun s ->
              let old = Console.ForegroundColor
              Console.ForegroundColor <- color
              Console.Write s
              Console.ForegroundColor <- old
          )
          fmt
  
  
negative.code:         Continue (code,line)
  
  let processMessage (code,line:string) =
      let getIndexOrEnd (str:string) (list:string[]) =
          let res = list
                  |> Array.map (fun s -> str.IndexOf s)
                  |> Array.filter (fun x -> x <> -1)
  
          if res.Length > 0 then res.[0] else str.Length
  
      let getMessage() =
          line.Substring(line.IndexOf " :"+2)
  
      let getChannel() =
          let start = line.Substring (line.IndexOf "#"+1)
          let eIdx = [|" "; "\r"|] |> getIndexOrEnd start
          start.Substring(0, eIdx)
  
      let username =
          let eIdx = line.IndexOf '!'
  