First-class types