Efficient recursive subtyping