# 17 Detecting and Handling Distribution Problems: `Fault`

This module is defunct. It has been replaced since Mozart 1.4.0 by new primitives in module `DP` (Section 11.3). The former functionality could be reproduced, but no effort has been made in that direction, because the new fault model is believed to be superior, although much simpler.

Only the installation of watchers on fault states `tempFail` and `permFail` is still functional. It is redefined as

> `fun {InstallWatcher Entity FStates WatcherProc}
> if {List.all FStates
> fun {$ S} {Member S [tempFail permFail]} end}
> then
> proc {Loop FS}
> case FS of F|Fr then
> if {Member F FStates} then
> thread {WatcherProc Entity F(info:state)} end
> else
> {Loop Fr}
> end
> else skip end
> end
> in
> {DP.getFaultStream Entity thread {Loop} end}
> true
> else
> false
> end
> end`