[Haskell] The initial view on typed sprintf and sscanf