FFI Report, CVS Id 1.11
Alastair David Reid
reid at cs.utah.edu
Fri Aug 31 14:33:38 EDT 2001
> The implementation is just something like
> addIOErrorLocAndPath loc path io
> = catch io (\err -> ioError err{loc=loc,path=path})
This reminds me of _scc_:
1) We're annotating the code with programmer-meaningful annotations
which are then used at runtime to help them understand program
behaviour.
2) It has the same nested behaviour as _scc_
3) Just as stacks of cost centres are useful for profiling, it'd be
useful to have stacks of error locations.
When you print an IOError, you'd get a list of (nested) error
locations - it'd feel a lot like the stack dumps you get from
Java.
(It'd also be useful to have a function like this in non-monadic code.
Implementation should be easy and I think the semantics is
straightforward.)
--
Alastair Reid reid at cs.utah.edu http://www.cs.utah.edu/~reid/
More information about the FFI
mailing list