Version n+1 of the subtype function