A bittorrent implementation in Haskell