Make the location parameter optional for errors.

It is Position.NoWhere by default. It allows any module to report an
error message even if no position is known without explicitly telling
it.
Prepared the block definition.
Added some typing support.
Nothing important.