Correct pattern names in runtime definitions

Some definitions in the runtime were wrongly using the abbreviated names
to refer to patterns when asserting that arguments were of the right
type. Now they refer to the full names. The implementation of & and | in
patterns now actually returns the pattern it was creating instead of
undefined.