prelude: fix bug in Imp declaration

The imp method referenced a type variable 'n' which was not listed as
one of Imp's type parameters. Uses of the `->` in definitions would have
worked fine, but uses of `->` in program result expressions would result
in an error. Take the following program, for example:

    (-> #f #t)

imp now has a type signature with no free type variables in it. It's
furthermore the correct type signature.