occurs_in : hol_type -> hol_type -> bool

SYNOPSIS
Tests if one type occurs in another.

DESCRIPTION
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

SEE ALSO
free_in, tyvars, vfree_in.