Возможно, решение:
## Код:
```
PROCEDURE (VAR i: Item) GetBaseType* (VAR base: Item), NEW;
      VAR n: INTEGER;
   BEGIN
      ASSERT(i.ext = NIL, 31);
      ASSERT(i.ptr # NIL, 20);
      ASSERT(i.typ IN {arrTyp, recTyp, ptrTyp}, 21); n := 0;
...
   END GetBaseType;
```
В документации на предусловие, по всей видимости, опечатка.