A Haskell implementation of the Noise protocol