haskellclass Incremental a where
type Diff a
diff :: a -> a -> Maybe (Diff a)
newtype WrapDelta h x = WrapDelta { unwrapDelta :: Maybe (Delta (h x)) }
instance WrapForall Incremental h xs => Incremental (h :* xs) where
type Delta (h :* xs) = WrapDelta h :* xs