Duck typing as "Role contract/interface"