package primavera

  1. Overview
  2. Docs

Primavera

To make our software easy to test (and potentially to vary its runtime or interpretation), OCaml provides several tools likes:

Although these approaches all offer advantages—such as continuity checking for effects and the ability to introduce types for modules—these advantages often capture aspects of very advanced programming. And sometimes, we would like a simpler approach, while still preserving type inference and tracking dependencies within the type system.

Primavera combines OCaml's object model with a Reader Monad to allow certain operations to be abstracted while still being tracked within the type system. See the teletype example for a very brief usage example.

The library also provides functors for building wrappers around parameterized types such as Result, Lwt, or Option, and allows you to describe traversable structures.