Proposal to deprecate and then drop fromJust
Henning Thielemann
lemming at henning-thielemann.de
Tue Feb 24 10:39:30 UTC 2015
On Tue, 24 Feb 2015, Joachim Breitner wrote:
> Hi,
>
> Am Dienstag, den 24.02.2015, 11:14 +0100 schrieb Henning Thielemann:
>> On Tue, 24 Feb 2015, Ivan Lazar Miljenovic wrote:
>>
>>> I've used fromJust in the past when I knew the value would be Just by
>>> construction.
>>
>> If you know that the value is always Just by construction, why don't you
>> express this with the types, i.e. by turning from 'Maybe a' to 'a'?
>
> Not everything can be expressed with types.
>
> Example: You build a graph data structure around Data.Map. Your abstract
> interface makes sure that in your graph, you only reference nodes that
> are in the domain of the map. So it is reasonable to use "fromJust
> (M.lookup key map)"¹ internally.
Yes, there are these cases where the prover capabilities of current
Haskell are too weak. We should use "fromMaybe (error msg)" in this case.
The error message could also give inspectors of the code an idea why the
programmer thinks that the error never occurs.
However, I bet that half of the uses of fromJust on Hackage can be
replaced by something total.
More information about the Libraries
mailing list