package yocaml

  1. Overview
  2. Docs
Core engine of the YOCaml Static Site Generator

Install

Dune Dependency

Authors

Maintainers

Sources

yocaml-2.1.0.tbz
sha256=e5ab173efd4c356dfee3e9af2165762ec4f1b5d38bdf1000d13e5eb6f18edbae
sha512=77ce2f269a6058c91ed75dee164cf9073147aa5d48c5dbdb2d6b282fc184d3a9b8155e772dd24acb8c0618ef7e47c0222bf65e13ecc3e08fab87351ea4f27192

doc/yocaml/Yocaml/Data/Validation/Syntax/index.html

Module Validation.SyntaxSource

Binding operators are used to link fields together to build a complete validation.

A typical usage is:

  record (fun assoc ->
      let+ field_a = required assoc "fieldA" validator_a
      and+ field_b = optional assoc "fieldB" validator_b
      and+ field_c = required associ "fieldB" validator_c in
      { field_a, field_b, field_c })
Sourceval (let+) : ('a, 'err) Result.t -> ('a -> 'b) -> ('b, 'err) Result.t

let+ x = v in k x is map (fun x -> k x) v.

Sourceval (and+) : 'a validated_record -> 'b validated_record -> ('a * 'b) validated_record

let+ x = v and+ y = w in k x y is map2 (fun x y -> k x y) v w.

Sourceval (let*) : ('a, 'err) Result.t -> ('a -> ('b, 'err) Result.t) -> ('b, 'err) Result.t

let* r = f x in return r tries to produce a result Ok from the expression f x, if the expression returns Error _, the computation chain is interrupted.

Warning: the semantics of let* are significantly different from a succession of let+ ... and+ ... which allow errors to be collected in parallel (independently), whereas let* captures them sequentially. The composition of let* and let+ is tricky and let* should only be used to validate preconditions.

OCaml

Innovation. Community. Security.