A BitTorrent client written in Haskell for the purposes of learning both