@@ -1,3 +1,13 @@
3Infrastructure for writing patches which act on other types.
3Infrastructure for writing patches which act on other types.
5+A `Patch` type represents a kind of change made to a datastructure.
9+ type PatchTarget p :: *
10+ -- | Apply the patch p a to the value a. If no change is needed, return
12+ apply :: p -> PatchTarget p -> Maybe (PatchTarget p)