Есть ли веская причина, почему тип Prelude.read
read :: Read a => String -> a
вместо того, чтобы возвращать значение Maybe
?
read :: Read a => String -> Maybe a
Поскольку строка может не обрабатываться Haskell, не будет ли последнее более естественным?
Или даже Either String a
, где Left
будет содержать исходную строку, если она не анализируется, и Right
результат, если он сделал?
Edit:
Я не пытаюсь заставить других писать соответствующую оболочку для меня. Просто добивайтесь уверенности в том, что это безопасно.