mte/unikernel/duniverse/ocaml-re/lib/dyn.ml

27 lines
543 B
OCaml
Raw Normal View History

2025-11-11 02:07:51 +01:00
type t =
| Int of int
| Tuple of t list
| Enum of string
| String of string
| List of t list
| Variant of string * t list
| Record of (string * t) list
let variant x y = Variant (x, y)
let list x = List x
let int x = Int x
let pair x y = Tuple [ x; y ]
let record fields = Record fields
let enum x = Enum x
let string s = String s
let result ok err = function
| Ok s -> variant "Ok" [ ok s ]
| Error e -> variant "Error" [ err e ]
;;
let option f = function
| None -> enum "None"
| Some s -> variant "Some" [ f s ]
;;