Module Hegel_jane.Derive

Auxiliary submodule for @@deriving hegel_generator for Core generators.

This module enables the generator deriver to use generators for Core types such as Date.t, Time_ns.t, Time_ns.Span.t and Time_ns.Ofday.t. open Hegel_jane.Derive is required for @@deriving hegel_generator to use generators for Core types.

open! Core
open Hegel_jane.Derive

type event =
  { id : int
  ; day : Date.t
  ; elapsed : Time_ns.Span.t
  }
[@@deriving hegel_generator]

Use Core-typed fields with their short paths (for example, Date.t instead of Core.Date.t).

type good = { day : Date.t } [@@deriving hegel_generator]

(* Does not compile: [Core.Date] has no [hegel_generator]. *)
type bad = { day : Core.Date.t } [@@deriving hegel_generator]

To keep a Core-qualified type, set its generator directly:

type pinned = { day : (Core.Date.t[@hegel.generator Hegel_jane.dates ()]) }
[@@deriving hegel_generator]