W dokumentacji dla Control.Exception w wersji 4.4.0.0 podano przykład tworzenia hierarchii wyjątków. Przykład pokazuje, w jaki sposób można złapać uogólnienia określonych wyjątków, deklarując wystąpienia klasy wyjątków pod kątem wyjątku nadrzędnego. To jest fajne, ale w jaki sposób uczynić moje wyjątki dziećmi istniejących wyjątków. Na przykład chcę, aby wyjątki, które są przechwytywane przez ograniczenia typu na IOException. Przykład ten pokazuje, w Control.Exception:Haskell Extensible IO Exceptions?
*Main> throw MismatchedParentheses catch (\e -> putStrLn ("Caught " ++ show (e :: SomeCompilerException)))
Caught MismatchedParentheses
*Main> throw MismatchedParentheses catch (\e -> putStrLn ("Caught " ++ show (e :: IOException)))
*** Exception: MismatchedParentheses
Jak mogę uzyskać ograniczeń IOException złapać wyjątki?
Wygląda na to, że Haddock nie renderował poprawnie dokumentacji. Kliknij hiperłącze 'Source', aby zobaczyć poprawną definicję (jeśli go tutaj skopiuję, SO prawdopodobnie też je wyrenderuje ...) –