Add %specialise annotation for functions (Part 1 of partial evaluation)
%specialise [n1 t1, n2 t2 ...]
as an annotation before a function type means that the r.h.s. of all
the clauses will be evaluated, but with the name n1 reduced at most
t1 times, etc. The t1 part is optional, and means unlimited (which is
the default for all names at the minute anyway)

e.g.

%specialise [interp, fact 1]
i_factorial : Int -> Int
i_factorial x = interp [] fact x

will run the interpreter on fact, ensuring that fact is only unfolded once
to avoid infinite evalution.

The UK specific spelling is intentional :).