The call occurs_in ty1 ty2 returns true if ty1 occurs as a subtype of
ty2, including the case where ty1 and ty2 are the same. If returns
false otherwise. The type ty1 does not have to be a type variable.
FAILURE CONDITIONS
Never fails.
EXAMPLE
# occurs_in `:A` `:(A)list->bool`;;
val it : bool = true
# occurs_in `:num->num` `:num->num->bool`;;
val it : bool = false
# occurs_in `:num->bool` `:num->num->bool`;;
val it : bool = true