Closed n-osborne closed 1 month ago
Given a type:
(*@ type t = {a: integer; b: integer}
In the current state of Gospel, one can write:
(*@ predicate p (x : t) = match x with | { a } -> a = 42
On the equivalent OCaml code, OCaml compiler would report some missing fields.
Also, Gospel fail with a syntax error if we use an OCaml-correct syntax:
(*@ predicate p (x : t) = match x with { a; _ } -> a = 42 *)
I propose to bring Gospel closer to OCaml. I already have some experiments in this direction.
Given a type:
In the current state of Gospel, one can write:
On the equivalent OCaml code, OCaml compiler would report some missing fields.
Also, Gospel fail with a syntax error if we use an OCaml-correct syntax:
I propose to bring Gospel closer to OCaml. I already have some experiments in this direction.