I am not sure this is an answer but languages like Python and R are much less fussy and if you want to use data that they parse quite happily then you have to do something like newtype LaxDouble = LaxDouble { laxDouble :: Double } and write your own Read instance.