Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generics library in OCaml

Work-in-progress extensions of the Irmin.Type generics library. See mirage/irmin#909 for a discussion of upstreaming these extensions to Irmin itself.

TODO:

  • 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 addr modality 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages