Module Data_type.Typed

type _ t =
  1. | Boolean : bool t
  2. | UInt8 : int t
  3. | UInt16 : int t
  4. | UInt32 : int t
  5. | UInt64 : int t
  6. | Int8 : int t
  7. | Int16 : int t
  8. | Int32 : int t
  9. | Int64 : int t
  10. | Float32 : float t
  11. | Float64 : float t
  12. | Utf8 : string t
  13. | Binary : string t
  14. | Date : Naive_date.t t
  15. | Datetime : Time_unit.t * Tz.t option -> Naive_datetime.t t
  16. | Duration : Time_unit.t -> Duration.t t
  17. | Time : Naive_time.t t
  18. | List : 'a t -> 'a list t
  19. | Custom : {
    1. data_type : 'a t;
    2. f : 'a -> 'b;
    3. f_inverse : 'b -> 'a;
    } -> 'b t
val strict_type_equal : 'a t -> 'b t -> ('a, 'b) Core.Type_equal.t option

strict_type_equal returns type equality only if the two arguments correspond to the same exact branch.

val flatten_custom : 'a t -> 'a t

flatten_custom extracts out any internal instances of the Custom _ variant to the outermost point e.g. List (Custom { data_type = Boolean; ... }) to Custom { data_type = List Boolean; ... } .

type packed =
  1. | T : 'a t -> packed
val compare_packed : packed -> packed -> int
val sexp_of_packed : packed -> Sexplib0.Sexp.t
val quickcheck_generator_packed : packed Ppx_quickcheck_runtime.Base_quickcheck.Generator.t
val quickcheck_observer_packed : packed Ppx_quickcheck_runtime.Base_quickcheck.Observer.t
val quickcheck_shrinker_packed : packed Ppx_quickcheck_runtime.Base_quickcheck.Shrinker.t
val to_untyped : 'a t -> t
val of_untyped : t -> packed option
module Core : sig ... end