parseURL :: Text -> Maybe URL
Даже если я не видел внутренний код этой функции, я точно знаю, что:
1. Она принимает одно текстовое значение.
2. Она возвращает либо URL, либо ничего.
3. Она не лезет во внешний мир.
Если же я вижу вот это:
parseURL :: Text -> Either ParseError URL
то уже знаю, что она возвращает либо URL, либо информацию об ошибке (если таковая случилась).