- class Repair p where
- applyAndTryToFix :: ApplyMonad m => p x y -> m (Maybe (String, p x y))

- class Apply p => RepairToFL p where
- applyAndTryToFixFL :: ApplyMonad m => p x y -> m (Maybe (String, FL p x y))

- mapMaybeSnd :: (a -> b) -> Maybe (c, a) -> Maybe (c, b)
- class Check p where
- isInconsistent :: p x y -> Maybe Doc

# Documentation

`Repair`

and `RepairToFL`

deal with repairing old patches that were
were written out due to bugs or that we no longer wish to support.
`Repair`

is implemented by collections of patches (FL, Named, PatchInfoAnd) that
might need repairing.

applyAndTryToFix :: ApplyMonad m => p x y -> m (Maybe (String, p x y))Source

RepairToFL p => Repair (FL p) | |

RepairToFL p => Repair (Named p) | |

RepairToFL p => Repair (PatchInfoAnd p) |

class Apply p => RepairToFL p whereSource

`RepairToFL`

is implemented by single patches that can be repaired (Prim, Patch, RealPatch)
There is a default so that patch types with no current legacy problems don't need to
have an implementation.

applyAndTryToFixFL :: ApplyMonad m => p x y -> m (Maybe (String, FL p x y))Source

RepairToFL Prim | |

PrimPatch prim => RepairToFL (Patch prim) | |

PrimPatch prim => RepairToFL (RealPatch prim) |

mapMaybeSnd :: (a -> b) -> Maybe (c, a) -> Maybe (c, b)Source