diff options
Diffstat (limited to 'users/wpcarro/scratch/compiler/types.ml')
-rw-r--r-- | users/wpcarro/scratch/compiler/types.ml | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/users/wpcarro/scratch/compiler/types.ml b/users/wpcarro/scratch/compiler/types.ml new file mode 100644 index 0000000000..0acd05737c --- /dev/null +++ b/users/wpcarro/scratch/compiler/types.ml @@ -0,0 +1,31 @@ +type literal + = LiteralInt of int + | LiteralBool of bool + | LiteralString of string + +(* Lambda Calculus definition *) +type value = + | ValueLiteral of literal + | ValueVariable of string + | ValueFunction of string * value + | ValueApplication of value * value + | ValueVarApplication of string * value + | ValueBinder of string * value * value + +module FromString = Map.Make (String) + +type _type = + | TypeInt + | TypeBool + | TypeString + | TypeVariable of string + | TypeArrow of _type * _type + +type quantified_type = QuantifiedType of string list * _type + +type set = bool FromString.t +type substitution = _type FromString.t + +type env = quantified_type FromString.t + +type inference = Inference of substitution * _type |