Objects as behavioral types