The need to specify a refined binding-time type system yields some additional results:
Our type system allows for the specification of completely static, unmemoized function types which may be passed to and returned from operators. The type system also deals with the inherent representation problem.
Sometimes, our binding-time analysis marks functions as static even if they may cause arity mismatches. However, these will only occur during specialization if the original program already had these problems.