Abstractors

The abstractor serves to denote values of an abstract type. It will often be used together with a display, to abstract from a composed realization to an abstract object.

(315,040) (000,030)abstractor (000,010)(1,0)030060type-name (1,0)030010: (1,0)030100compact-primary (1,0)030

The part after the colon (a compact-primary) must have the type of the realization of the type-name.

(315,120) (000,110)compact-primary (000,090)(1,0)070080denoter (1,0)070 (025,080)(20,20)[lb] (025,070)(1,0)045080object-name (1,0)045 (195,080)(20,20)[rb] (025,060)(20,20)[lb] (025,050)(1,0)045080choice (1,0)045 (195,060)(20,20)[rb] (025,040)(20,20)[lb] (025,030)(1,0)045080display (1,0)045 (195,040)(20,20)[rb] (025,020)(20,20)[lb] (025,010)(1,0)005010( (1,0)030080expression (1,0)030010) (1,0)005 (195,020)(20,20)[rb] (005,080)(20,20)[rt] (015,080)(0,-1)060 (205,020)(0,1)060 (215,080)(20,20)[lt]

The value of an abstractor is the value of its compact-primary. The type of an abstractor is the type of the type-name, rather than its realization. Since the realization of a type is visible only in its defining packet, an abstractor with a specific type-name can only be used in the packet defining that type-name.