Have you thought of using the `static` keyword to make this clearer?

~~~rust
fn add_n<static n: int>(x: int) -> int
~~~