Releases of fpath-sexplib0, fpath-base, loc, file-rewriter, sexps-rewriter and provider

Greetings!

I wanted to announce the initial release of 6 utility packages to the opam-repository. They are dependencies to some other ongoing projects I have, perhaps some will find them useful.

These are very early days for this software. Please feel welcome to opening issues or discussions tickets if you are inclined.

Thank you @mseri , @avsm & @shonfeder for your help in making these libraries available!

Below you’ll find short descriptions with links to the packages home pages. Thank you!

Fpath_sexplib0 only depends on fpath and sexplib0. It defines a single module, Fpath_sexplib0, which is designed to be opened to shadow the Fpath module to add small helpers and a sexp_of serializer to it. The package also introduces three new modules to the scope: Fpart, Absolute_path and Relative_path to increase type-safety when manipulating paths that are known to be relative or absolute.

Fpath_base further extends fpath-sexplib0 and adds a dependency on base. It is designed to be compatible with Base-style containers such as Map, Set, Hashtbl, Hash_set.

Loc is an OCaml library to manipulate code locations, which are ranges of lexing positions from a parsed file.

File_rewriter is an OCaml library for applying small rewrites to tweak or refactor your files. It provides a convenient interface to apply surgical textual substitutions on the fly, while navigating the contents of a file through an abstract representation containing code locations.

Sexps_rewriter is a specialized version of the file-rewriter library dedicated to rewriting sexp files, such as dune config files.

Provider is an OCaml library for creating Traits and Interfaces. It allows you to define the functionality needed by a library without committing to a specific implementation - in essence : dynamic dispatch. Provider is a pattern featured in the Eio project (Eio.Resource). I wanted to make it reusable in other projects - in particular I am currently using it as the parametrization story of vcs. This package had already been available for a little while already but was still unannounced.

2 Likes