alonzo :: UserName -> a -> [Trait a] -> Config -> IO ()
alonzo name brain traits c = run c $ (`evalStateT` brain) $ do
  sendMessage (nick name)
  lift . send $ "USER " ++ name ++ " 0 * :Alonzo - Your friendly IRC bot!"
  forever $ do
    m <- receiveMessage
    sequence_ $ map ($ m) traits
alonzo :: UserName -> a -> [Trait a] -> Config -> IO ()
alonzo name brain traits c = run c $ (`evalStateT` brain) $ do
  sendMessage (nick name)
  lift . send $ "USER " ++ name ++ " 0 * :Alonzo - Your friendly IRC bot!"
  forever $ do
    m <- receiveMessage
    sequence_ $ map ($ m) traits
alonzo name brain traits c = run c $ (`evalStateT` brain) $ do
  sendMessage (nick name)
  lift . send $ "USER " ++ name ++ " 0 * :Alonzo - Your friendly IRC bot!"
  forever $ do
    m <- receiveMessage
    sequence_ $ map ($ m) traits