Implementing function types, tuple types, and vararg types