Christopher that's 2-category. You've got types, the programs and the action of the optimizing compiler that moves between programs. If you restrict yourself to fixed input and output types to go down a category number, you'll lose power for not much gain in ease.