closes #8

Surprisingly, everything went smoothly while dealing with this
issue. This just parameterizes the `Program` with two new types, the
type for the reference and the type for the content.

In order to make the interpreter more generic, we should take that
objective into account while dealing with #6.