`val check_subtype : InferIR.Tenv.t ‑> InferIR.Typ.t ‑> InferIR.Typ.t ‑> bool`

check_subtype t1 t2 checks whether t1 is a subtype of t2, given the type environment tenv.

`val subtype_case_analysis : InferIR.Tenv.t ‑> InferIR.Exp.t ‑> InferIR.Exp.t ‑> InferIR.Exp.t option * InferIR.Exp.t option`

subtype_case_analysis tenv tecp1 texp2 performs case analysis on `texp1 <: texp2`, and returns the updated types in the true and false case, if they are possible