
On 2008 Aug 27, at 16:49, Daniel Fischer wrote:
Am Mittwoch, 27. August 2008 22:34 schrieb Aaron Tomb:
When you do use Maybe, you have to explicitly handle the Just and Nothing cases separately. Pattern matching reminds you that both are possible. I tend to view fromJust as a function you should only use if you're _very_, _very_ sure that the Nothing case is impossible. But, if so, why are you using a Maybe type in the first place?
Good question. Maybe because you use a function which returns a Maybe result but you know in your use case it's always a Just. But then still a case fun args of Just val -> use val Nothing -> error $ LOCATION ++ " Hey, that ought to be impossible! Go investigate!"
would be cleaner. If fromJust is more efficient and this code is called many times in your programme, that could count as a reason.
I have more than once seen a NULL dereference not get caught until later (admittedly I think most POSIX-like systems unmap page 0 these days; but think of embedded systems or other non-POSIX environments). even fromJust gives you more of an ability to track the problem down in that case. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH