
ndmitchell:
Hi
My last impression is that instead of using -xc it is better to write programs in a debug-friendly style. For example, let g x must return (Just _), but the programmer is not 100% sure that g x is free of bugs. Then, instead of f x = h $ fromJust $ g x one needs too write
There are lots of solutions I use, all of which I think are nicer than your one!
Use a safe module: http://neilmitchell.blogspot.com/2006/11/library-idea-safe-library.html - always works, a little bit of effort (I have such a module in my code). You then get:
f x = h $ fromJustNote "Foo.f" $ g x
On a similar note, LocH would have: $ ./a.out a.out: A.hs:12:20-25: Maybe.fromJust: Nothing Given: 01 import Debug.Trace.Location 02 import qualified Data.Map as M 03 import Data.Maybe 04 05 main = do print f 06 07 f = let m = M.fromList 08 [(1,"1") 09 ,(2,"2") 10 ,(3,"3")] 11 s = M.lookup 4 m 12 in fromJustSafe assert s 13 14 fromJustSafe a s = check a (fromJust s) So there's lots of solutions now! -- Don