+ ; ( Test.case
+ "Recursive type def: int list"
+ ~code:"\
+ let \n\
+ type intlist = {hd: int, tl: intlist} \n\
+ var lst : intlist := intlist {hd=0, tl = nil} \n\
+ in \n\
+ lst \n\
+ end"
+ )
+ ; ( Test.case
+ "Cycle in type dec"
+ ~code:"\
+ let \n\
+ type a = b \n\
+ type b = a \n\
+ in \n\
+ end \
+ "
+ ~is_error_expected_semant:(Some Error.is_cycle_in_type_dec)
+ )
+ ; ( Test.case
+ "Cycle in type dec"
+ ~code:"\
+ let \n\
+ type a = b \n\
+ type b = c \n\
+ type c = a \n\
+ var x : a := 1 \n\
+ in \n\
+ end \
+ "
+ ~is_error_expected_semant:(Some Error.is_cycle_in_type_dec)
+ )