Complete Read class and portable "readEither" and "readMaybe"