I have rebased them to current screened and completed the work you started.
This is still very much experimental. I'll have to see if adding more Apply
instances with different state types really works out as I would like it to.
It will certainly add even more constraints like the ones I added in
D.P.RepoPatch.
One thing that irks me is that we loose the ability to express the
coincidence of apply states for p and (PrimOf p) which should hold for /any/
state type. Even further, the Apply instances for all RepoPatch types are
generically given by
apply p = applyPrimFL (effect p)
Can we use quantified constraints to at least express the requirement that
forall s. (PrimPatchBase p, PrimApply s (PrimOf p)) => Apply s p ?
(That would be a very good reason to drop support for ghc < 8.6).
3 patches for repository https://darcs.net/screened:
patch 7794fd4ee1b00d5360591e7cfb4874a5923e5f6e
Author: Ganesh Sittampalam <ganesh@earth.li>
Date: Sat Jun 15 21:43:52 CEST 2024
* enable MultiParamTypeClasses by default
patch 8a86aa01254a3ca680b46e374669fc4caba2ad65
Author: Ganesh Sittampalam <ganesh@earth.li>
Date: Sat Jun 15 21:27:18 CEST 2024
* make ObjectIdOfPatch into an explicit type family
patch 6dcacf7d99a88da0f2cfe71fd772f4c0c0e36e2b
Author: Ganesh Sittampalam <ganesh@earth.li>
Date: Mon Jun 17 01:05:16 CEST 2024
* WIP: Apply as an MPTC
Attachments
|