Opinionated OCaml linter with Merlin integration for code quality, naming conventions, and style checks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

sexp, toml: converge on value/codec submodule layout

Sexp:
- Expose Value and Codec as submodules on the main Sexp.
- Keep `type t = Value.t` and `type 'a codec = 'a Codec.t` top-level
aliases for ergonomic pattern-matching and codec annotations.
- Move flat top-level re-exports (string/int/bool/decode_string/encode_*)
out — users reach them via `Sexp.Codec.X` or `Sexp.Value.X`. One less
surface to learn; every codec package can expose the same two submodules.

Toml:
- Move sibling sublibs into nested layout matching jsont:
`lib_bytesrw/ -> lib/bytesrw/`, `lib_eio/ -> lib/eio/`, etc.
- Drop the one-line `lib/codec.{ml,mli}` stub.

Downstream (monopam, merlint) updated to use `Sexp.Value.parse_string_many`
and `Sexp.Error` directly.

+1 -1
+1 -1
lib/dune.ml
··· 94 94 95 95 (* Parse all S-expressions in the file *) 96 96 let stanzas = 97 - match Sexp.parse_string_many content with 97 + match Sexp.Value.parse_string_many content with 98 98 | Ok s -> s 99 99 | Error e -> raise (Sexp.Error e) 100 100 in