Modified the GADT to distinguish bodies
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
2026-01-03 20:43:11 +03:00
parent 6d95977324
commit 17e533dbb8
2 changed files with 37 additions and 18 deletions

View File

@@ -5,19 +5,24 @@ type definition
type clause (* for cond *)
type binding (* for let *)
type lambda_list
type body
type _ t =
(* Literals *)
| LitInt : int -> expression t
| LitDouble : float -> expression t
| LitString : string -> expression t
| LitNil : expression t
| QuotedList : expression t list * expression t option -> expression t
| Body : definition t list * expression t list -> body t
| LambdaList : symbol list * symbol option -> lambda_list t
| Lambda : lambda_list t * definition t list * expression t list -> expression t
| Lambda : lambda_list t * body t -> expression t
| Define : symbol * expression t -> definition t
| LetBinding : symbol * expression t -> binding t
| Let : binding t list * expression t list -> expression t
| Let : binding t list * body t -> expression t
| LetRec : binding t list * expression t list -> expression t
| CondClause : expression t * expression t -> clause t
| Cond : clause t list -> expression t