This commit is contained in:
Mylloon 2023-11-20 04:54:40 +01:00
parent 195139e058
commit da6e4547a8
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -30,7 +30,8 @@ let check_equal_types pos ~expected ~given =
let rec check_pattern_linearity
: identifier list -> pattern Position.located -> identifier list
=
fun vars Position.{ value; position } -> failwith "Students! This is your job!"
fun vars Position.{ value; position } ->
failwith "Students! This is your job! (check_pattern_linearity)"
;;
(** Type-checking code *)
@ -39,11 +40,12 @@ let check_type_scheme
: HopixTypes.typing_environment -> Position.t -> HopixAST.type_scheme
-> HopixTypes.aty_scheme * HopixTypes.typing_environment
=
fun env pos (ForallTy (ts, ty)) -> failwith "Students! This is your job!"
fun env pos (ForallTy (ts, ty)) ->
failwith "Students! This is your job! (check_type_scheme)"
;;
let synth_literal : HopixAST.literal -> HopixTypes.aty =
fun l -> failwith "Students! This is your job!"
fun l -> failwith "Students! This is your job! (synth_literal)"
;;
let rec check_pattern
@ -51,33 +53,35 @@ let rec check_pattern
-> HopixTypes.typing_environment
=
fun env Position.({ value = p; position = pos } as pat) expected ->
failwith "Students! This is your job!"
failwith "Students! This is your job! (check_pattern)"
and synth_pattern
: HopixTypes.typing_environment -> HopixAST.pattern Position.located
-> HopixTypes.aty * HopixTypes.typing_environment
=
fun env Position.{ value = p; position = pos } -> failwith "Students! This is your job!"
fun env Position.{ value = p; position = pos } ->
failwith "Students! This is your job! (synth_pattern)"
;;
let rec synth_expression
: HopixTypes.typing_environment -> HopixAST.expression Position.located
-> HopixTypes.aty
=
fun env Position.{ value = e; position = pos } -> failwith "Students! This is your job!"
fun env Position.{ value = e; position = pos } ->
failwith "Students! This is your job! (synth_expression)"
and check_expression
: HopixTypes.typing_environment -> HopixAST.expression Position.located
-> HopixTypes.aty -> unit
=
fun env (Position.{ value = e; position = pos } as exp) expected ->
failwith "Students! This is your job!"
failwith "Students! This is your job! (check_expression)"
and check_value_definition
: HopixTypes.typing_environment -> HopixAST.value_definition
-> HopixTypes.typing_environment
=
fun env def -> failwith "Students! This is your job!"
fun env def -> failwith "Students! This is your job! (check_value_definition)"
;;
let check_definition env = function