Specify parameters at the type level; allows "semisupercompilation"