And it actually does not work! This code
```
catch (animateFixedIO screenmode black (step beg end datap fh) ctrl)
(\e -> putStrLn $ "caught exception" ++ (show (e :: FinishException)))
putStrLn $ "After animation"
```
behaves as if `catch` was not used when the step function runs `throwIO`. I just get
```
<interactive>: Finish
<interactive>: interrupted
<interactive>: warning: too many hs_exit()s
```
under ghci, and
```
animate: Finish
```
when running compiled program.
So, any advice please?
Eugene