module Position_for_polymorphic_variant_errors = struct type t1 = [ `A ] [@@deriving of_sexp] type t2 = [ `B ] [@@deriving of_sexp] type t3 = A of [ t1 | t2 ] [@@deriving of_sexp] let (_ : t3) = t3_of_sexp (List [ Atom "A"; Atom "C" ]) end [%%expect {| Exception: (Of_sexp_error "examples.mlt.Position_for_polymorphic_variant_errors.t3_of_sexp: no matching variant found" (invalid_sexp C)) |}] let _ = [%sexp_of: 'a] [%%expect {| Line _, characters _-_: Error: ppx_sexp_conv: unbound type variable 'a |}] let _ = [%of_sexp: 'a] [%%expect {| Line _, characters _-_: Error: ppx_sexp_conv: unbound type variable 'a |}] let _ = [%sexp (() : 'a)] [%%expect {| Line _, characters _-_: Error: ppx_sexp_conv: unbound type variable 'a |}] type 'a t = | None | Something_else of { value : 'a } [@@deriving sexp] [%%expect {| |}] module Record_with_defaults = struct open Sexplib0.Sexp_conv let a_field = "a_field" let b_field = "b_field" type record_with_defaults = { a : string [@default a_field] ; b : string [@default b_field] } [@@deriving of_sexp] end [%%expect {| |}] module Polymorphic_recursion = struct type 'a t = T of 'a t t [@@deriving sexp_grammar] end [%%expect {| |}]