Почему Prelude.read Haskell не возвращает Maybe?

Есть ли веская причина, по которой Prelude.read имеет тип

read :: Read a => String -> a

вместо того, чтобы возвращать значение Maybe ?

read :: Read a => String -> Maybe a

Поскольку строка может быть не поддающейся синтаксическому анализу Haskell, не будет ли последнее более естественным?

Или даже Either String a , где Left будет содержать исходную строку, если она не проанализирована, а Right результат, если он будет?

Изменить:

Я не пытаюсь заставить других написать для меня соответствующую оболочку. Просто ищу подтверждения, что это безопасно.

102
задан Bilal Barakat 9 November 2011 в 15:12
поделиться