ircd written in Haskell