1
0
Fork 0
This repository has been archived on 2024-05-03. You can view files and clone it, but cannot push or open issues or pull requests.
unification-pfa/lib/term.mli
2024-03-14 22:23:22 +01:00

28 lines
506 B
OCaml

(*
This module contains the syntax of terms of a minimal programming language.
*)
type binop =
| Plus
| Minus
| Times
| Div
[@@deriving eq, ord, show]
type projection =
| First
| Second
[@@deriving eq, ord, show]
(*
Every value of type Term.t is the abstract syntax tree of a program.
*)
type t =
| Var of Identifier.t
| IntConst of int
| Binop of t * binop * t
| Pair of t * t
| Proj of projection * t
| Fun of Identifier.t * t
| App of t * t
[@@deriving eq, ord, show]