Initial commit

I had to mark people implementing this in Java and just felt the
need to see how nice it could be to do it in Haskell. Tries are
really nice to work with.