traits and partial functions