package lpi

  1. Overview
  2. Docs
type variable =
  1. | String of string
  2. | Symbol of string * int
  3. | Dummy
type term =
  1. | Var of variable
  2. | Star
  3. | Pi of abstraction
  4. | Lambda of abstraction
  5. | App of term * term
  6. | Int of int
  7. | Bool of int
  8. | Ann of term * term
  9. | If of term * term * term
  10. | And of term * term
  11. | Or of term * term
  12. | Op of term * term list
  13. | Let of abstraction
  14. | IntType
  15. | BoolType
  16. | List of term * term
  17. | Prod of term list
  18. | BinaryOp of (term * term) -> term
  19. | UnaryOp of term -> term
  20. | Nil of term
  21. | Cons of term * term * term * term
  22. | IsNil of term
  23. | Head of term
  24. | Tail of term
  25. | Seq of term * term
and abstraction = variable * term * term
val fresh : variable -> variable
val subst : (variable * term) list -> term -> term
val makeString : string -> variable
val toString : term -> string