Reference implementation in Haskell

This is for generating test vectors.