Work-in-progress extensions of the Irmin.Type generics library. See mirage/irmin#909 for a discussion of upstreaming these extensions to Irmin itself.
-
abstract
addr : * -> *type with a supplied type combinator to allow nesting stores. Should be able to 'count' the holes introduced by the 'addr' combinator, so that the structure of the node can be deteremined (essentially, we need to map it onto a (data, children list) pair -- or perhaps we should/must disallow data? recordifying) -
OR: lift type combinators to allow injection of the
addrmodality and require this injection -
Kleisli composition for
(*, * addr) Optic.mono:
val (//) : ('a, 'b addr) Optic.mono -> ('b, 'c addr) Optic.mono -> ('a, 'c addr) Optic.mono- modify generic type combinators to return optics
- record combinator returns a lens for each field (and works with setters)
- variant combinator returns a prism for each field