Совсем недавно обнаружил для себя заужение типа результата переопределённой функции.
> -- Цитата:
> PROCEDURE (v: View) ThisModel (): TextModels.ModelEXTENSBIBLEResult type is narrowed.
## Код:
```
MODULE PrivNarrow;

   TYPE
      Item* = POINTER TO ABSTRACT RECORD END;
      
      List* = POINTER TO ABSTRACT RECORD END;
      
      MyItem* = POINTER TO ABSTRACT RECORD (Item) END;
      
      MyList* = POINTER TO ABSTRACT RECORD (List) END;
      
   PROCEDURE (l: List) Set* (x: Item), NEW, ABSTRACT;
   PROCEDURE (l: List) Get* (): Item, NEW, ABSTRACT;
   
   PROCEDURE (l: MyList) Set* (x: Item), ABSTRACT; (* параметр не захотело заужать *)
   PROCEDURE (l: MyList) Get* (): MyItem, ABSTRACT;

END PrivNarrow.
```
