URI parser written in Haskell, with unit tests. Written to be RFC3986 compliant.