Try to clean up specification of templates and instantiation

Every time I look at the formal semantics, I find fault with them.

Change-Id: I7b15e066150a2674ba1b7cd7484403e893bdd030