To: J3 08-254r1 From: Toon Moene Subject: The new TYPE_IS_EXTENSIBLE intrinsic. Date: 2008 August 13 References: 08-254 Rationale: A library designer, who does not know what types the user will impose upon his interface, might want improved control over user input, which may come from a source external to the program, when using unlimited polymorphic objects together with SAME_TYPE_AS() or EXTENDS_TYPE_OF(). The dynamic type of an unlimited polymorphic object can belong to one of the following three classes: (1) an intrinsic type (2) an extensible type (3) a bind(c) or sequence type As it stands, the language allows him to disambiguate between (1) and (2)+(3) by using SELECT TYPE with all possible intrinsic types and kinds; it is not possible to disambiguate (2) and (3). Therefore, it is suggested to add an intrinsic TYPE_IS_EXTENSIBLE() to the language which allows to do just that. Edits: [322 after the TRIM entry] "TYPE_IS_EXTENSIBLE (A) I True if and only if dynamic type of A is extensible." [393 after 13.7.169] "13.7.169+ <> <> True if and only if the dynamic type of A is extensible. <> Inquiry function <> A may be of any type. It may be a scalar or array. <> Default logical scalar. <> The result is true if and only if A is unlimited polymorphic and an object of extensible type."