The simple essence of algebraic subtyping_ principal type inference with subtyping made easy (functional pearl)