From J.L.Schonfelder@liverpool.ac.uk Fri Mar 18 11:18:47 1994
Received: from mailhub.liverpool.ac.uk (mail.liv.ac.uk) by dkuug.dk with SMTP id AA04086
  (5.65c8/IDA-1.4.4j for <SC22WG5@dkuug.dk>); Fri, 18 Mar 1994 12:18:33 +0100
Received: from liverpool.ac.uk by mailhub.liverpool.ac.uk with SMTP (PP) 
          id <22230-0@mailhub.liverpool.ac.uk>; Fri, 18 Mar 1994 11:18:48 +0000
From: "Dr.J.L.Schonfelder" <J.L.Schonfelder@liverpool.ac.uk>
Message-Id: <9403181118.AA20830@uxh.liv.ac.uk>
Subject: postscript parameterised datatypes
To: SC22WG5@dkuug.dk (SC22/WG5 members)
Date: Fri, 18 Mar 1994 11:18:47 +0000 (GMT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 71824
X-Charset: ASCII
X-Char-Esc: 29

---------------------------------------------------------------------
%-12345X@PJL ENTER LANGUAGE = POSTSCRIPT
%!PS-Adobe
/wpdict	120 dict def
wpdict	begin
/bdef	{bind def} bind def

/bflg	false def
/Bfont	0 def
/bon	false def

/psz	0 def
/_S	/show load def
/_t	{0 rmoveto} bdef

/_pixelsnap
	{transform .25 sub round .25 add
	 exch .25 sub round .25 add exch itransform
	} bdef
/_pixeldsnap
	{ dtransform round exch round exch idtransform } bdef

/_lt	{_pixelsnap lineto} bdef
/_rlt	{_pixeldsnap rlineto} bdef
/_mt	{_pixelsnap moveto} bdef
/_rmt	{_pixeldsnap rmoveto} bdef

/bshow	{gsave psz 30 div 0 _rmt dup show grestore show} bdef

/DUx	0 def
/DUy	0 def
/hscl	0 def

/M	{_mt
	 2 mul -2 2
	 { -2 roll 0 _rmt _S } for
	} bdef

/makeoutl
	{ dup /OutlineFlag known not
	  { dup dup length 2 add dict begin
	    {1 index /FID ne { def }{ pop pop } ifelse } forall
	    /UniqueID known {/UniqueID UniqueID 10000 add def} if
	    /PaintType PaintType 0 eq { 2 }{ PaintType } ifelse def
	    /StrokeWidth 15 def
	    /OutlineFlag true def
	    /OutlineFont currentdict end definefont
	  } if
	} bdef

/nbuff	50 string def
/orntsv	0 def
/plen	0 def
/pwid	0 def
/picstr	1 string def

/WPencoding StandardEncoding 256 array copy def 0
 [ 127/Aacute/Acircumflex/Adieresis/Agrave/Aring/Atilde/Ccedilla
  /Delta/Eacute/Ecircumflex/Edieresis/Egrave/Eth/Gamma/Iacute
  /Icircumflex/Idieresis/Igrave/Lambda/Ntilde/Oacute
  /Ocircumflex/Odieresis/Ograve/Omega/Otilde/Phi/Pi/Psi
  /Scaron/Sigma/TeXtext32/Theta/Thorn
  209/Uacute/Ucircumflex/Udieresis/Ugrave/Upsilon/Xi/Yacute
  /Ydieresis/Zcaron/aacute/acircumflex/adieresis/agrave
  /aring/atilde/brokenbar
  228/ccedilla/copyright/degree/divide
  236/dotlessj/eacute/ecircumflex/edieresis/egrave
  242/eth/ff/ffi
  246/ffl/iacute
  252/icircumflex/idieresis/igrave/logicalnot
  1/minus/mu/multiply/ntilde/oacute/ocircumflex/odieresis
  /ograve/onehalf/onequarter/onesuperior/otilde/plusminus
  /registered/scaron/thorn/threequarters/threesuperior
  /trademark/twosuperior/uacute/ucircumflex/udieresis
  /ugrave/yacute/ydieresis/zcaron
]
{ dup type /nametype eq
  { WPencoding 2 index 2 index put pop 1 add }
  { exch pop } ifelse
} forall pop

/reencode
{ dup FontDirectory exch known
   { findfont }
   {  dup nbuff cvs dup length 1 sub get 82 eq
   {dup nbuff cvs dup length 1 sub 0 exch getinterval
   findfont begin
   currentdict dup length dict begin
{ 1 index /FID ne {def} {pop pop} ifelse } forall
/FontName exch def

/Encoding WPencoding def
currentdict dup end end
/FontName get exch definefont
     }
     { findfont } ifelse
  } ifelse
} bdef

/WPDLencoding StandardEncoding 256 array copy def 0
[ 127     /SA420000/SD630000/SF010000/SF020000/SF030000
/SF040000/SF050000/SF060000/SF070000/SF080000/SF090000
/SF100000/SF110000/SF140000/SF150000/SF160000/SF190000
/SF200000/SF210000/SF220000/SF230000/SF240000/SF250000/SF260000
/SF270000/SF280000/SF360000/SF370000/SF380000/SF390000/SF400000
/SF410000/SF420000/SF430000
209 /SF440000/SF450000/SF460000/SF470000/SF480000
/SF490000/SF500000/SF510000/SF520000/SF530000/SF540000
/SF570000/SF580000/SF590000/SF600000/SF610000
228 /SM570001/SM590000/SM600000/SM630000
236 /SM680000/SM690000/SM700000/SM750000/SM750002
242 /SM770000/SM790000/SP320000
246 /SS000000/SS010000
252 /SS260000/SS270000/SV040000/apostrophereverse
1/arrowboth/arrowdown/arrowleft/arrowright/arrowup/club
/deutschmark/diamond/diamondopen/exclamdbl/female
/fiveeighths/franc/heart/male/musicalnote/musicalnotedbl
/napostrophe/nsuperior/oneeighths/seveneighths/spade
/threeeights/underscoredbl/SM760000
]
{ dup type /nametype eq
  { WPDLencoding 2 index 2 index put pop 1 add }
  { exch pop } ifelse
} forall pop

/reencodeL
    { dup FontDirectory exch known
      { findfont }
      {  dup nbuff cvs dup length 1 sub get 76 eq
         {    dup nbuff cvs dup length 1 sub 0 exch getinterval
         findfont begin
         currentdict dup length dict begin
         { 1 index /FID ne {def} {pop pop} ifelse } forall
         /FontName exch def
         /Encoding WPDLencoding def
         currentdict dup end end
         /FontName get exch definefont
         }
         { findfont } ifelse
      } ifelse
    } bdef

/ron	false def
/sflg	false def
/slan	0 def
/sp	32 def

/sshow
	{ save exch
	   gsave
	    psz 20 div dup neg _rmt dup show
	   grestore
	   dup
	   save exch
	    Bfont setfont
	    1 setgray show
	   restore
	   currentfont makeoutl setfont show
	   currentpoint 3 -1 roll
	  restore _mt
	} bdef

/Sx	0 def
/Sy	0 def
/Ux	0 def
/Uy	0 def
/W	/widthshow load def

/_B	{/bflg true def
	 sflg not {/_S /bshow load def /bon true def} if
	} bdef
/_b	{/bflg false def
	 bon {/_S /show load def /bon false def} if
	} bdef
/_bd	{save} bdef
/_bp	{save 2 setmiterlimit .06 .06 scale 0 0 _mt} bdef
/_ccprocs
	{/proc2 exch cvlit def
	 /proc1 exch cvlit def
	 /newproc proc1 length proc2 length add
	 array def
	 newproc 0 proc1 putinterval
	 newproc proc1 length proc2 putinterval
	 newproc cvx
	} def
/_clr	{3 {255 div 3 1 roll} repeat
	 ron {6 3 roll pop pop pop} {setrgbcolor} ifelse
	} bdef
/_cp	/closepath load def
/_cw	{stroke initclip _mt 0 2 index
	 _rlt 0 _rlt 0 exch neg
	 _rlt clip newpath
	} bdef
/_d	/setdash load def
/_DU	{currentpoint /DUy exch def /DUx exch def} bdef
/_du	{gsave
	  save
	  8 setlinewidth
      currentpoint -30 add _mt
      DUx DUy -30 add _lt stroke
	  restore
	  8 setlinewidth
	  currentpoint -50 add _mt
	  DUx DUy -50 add _lt stroke
	 grestore
	} bdef
/_ed	{restore} bdef
/_ep	{restore showpage 0 0 _mt} bdef
/_f	/eofill load def
/_ff	{ exch reencode exch
	  3 div dup /psz exch def
	  scalefont dup /Bfont exch def setfont
	} bdef
/_ffs	{ /slan exch 10 div def /hscl exch 1000 div def
	  /psz exch 3 div def
	  [ psz hscl mul 0 slan dup sin exch cos div psz mul psz 0 0 ]
	  exch reencode exch makefont dup /Bfont exch def setfont
	} bdef
/_g	/setgray load def
/_gs	{neg 100 add 100 div setgray} bdef
/_i	{gsave
	  dup /picstr exch 7 add 8 idiv string def
	  3 1 roll translate dup 1 scale
	  dup 1 1 [5 -1 roll 0 0 1 0 0]
	  {currentfile picstr readhexstring pop} image
         grestore
        } bdef
/_is	{save 4 1 roll
	  dup /picstr exch 7 add 8 idiv string def
	  3 1 roll translate dup 1 scale
	  dup 1 1 [5 -1 roll 0 0 1 0 0]
	  {currentfile picstr readhexstring pop} image
	 restore
	} bdef
/_ie	{1 eq { {1 exch sub} currenttransfer _ccprocs settransfer} if
	 /_isx exch def /_isy exch def
	 _isx mul exch _isy mul translate
	 add 2 div /_txc exch def
	 add 2 div /_tyc exch def
	 _txc _isx mul _tyc _isy mul translate
	 360 exch sub rotate
	 1 eq { _isx neg _isy scale }
	 { _isx _isy scale }
	 ifelse _txc neg _tyc neg translate
	} bdef
/_irms	{save
	  12 1 roll
	  1 eq {{1 exch sub} currenttransfer _ccprocs settransfer} if
	  /picstr exch string def translate
	  2 index 6 index sub 2 div 2 index 6 index sub 2 div neg
	  translate
	  5 index 5 index 2 div neg exch 2 div exch
	  2 copy neg exch neg exch 5 2 roll translate
	  360 exch sub rotate
	  3 index 3 index 7 index div exch 8 index div exch scale
	  translate pop pop 2 index 2 index scale
	  3 index 0 eq
	  { [ 3 index 0 0 5 index neg 0 0 ] }
	  { 3 index 1 eq
      { [ 3 index 0 0 5 index 0 7 index ] }
      { 3 index 128 eq
	  { [ 3 index neg 0 0 5 index neg 7 index 0 ] }
	  { [ 3 index neg 0 0 5 index 7 index 7 index ] } ifelse
	    } ifelse
	  } ifelse
          {currentfile picstr readhexstring pop} image
          pop
	 restore
	} bdef

/_l	{_lt} bdef
/_lr	{_rlt} bdef
/_m	{_mt} bdef
/_O	{currentfont makeoutl setfont} bdef
/_o	{Bfont setfont} bdef
/_ornt	{/pwid exch def /plen exch def
	 orntsv 1 eq {0 pwid translate -90 rotate} if
	 orntsv 2 eq {pwid plen translate 180 rotate} if
	 orntsv 3 eq {plen 0 translate 90 rotate} if
	 dup 1 eq {pwid 0 translate 90 rotate} if
	 dup 2 eq {pwid plen translate 180 rotate} if
	 dup 3 eq {0 plen translate -90 rotate} if
	 /orntsv exch def
	} bdef
/_lod1	{currentpoint orntsv plen pwid 6 -1 roll restore save} bdef
/_lod2	{_bp 7 2 roll _ornt _mt} bdef
/_unlod	{currentpoint orntsv plen pwid 7 -2 roll restore restore
	 _bp 6 1 roll _ornt _mt
	} bdef
/_p	{2 copy _mt 1 0 _rlt _mt} bdef
/_pl	{{_lt} repeat} bdef
/_R      { /ron true def /_S /_rshow load def /_t /_red load def} bdef
/_rshow	 { save exch
	   currentpoint
	   /RSy exch def /RSx exch def
	   ron {
		 sflg
		 {	currentpoint
			/Ry exch def /Rx exch def
			dup stringwidth pop Rx Ry psz 4 div add _mt
			Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
			add Ry psz 4 div add _lt stroke Rx Ry _mt 0 0 0 setrgbcolor
			dup show Rx Ry _mt
			sshow
		 }
		 { _redshow
		 }ifelse
	   }
	   {	 sflg {sshow} if
	   }ifelse
	   currentpoint 3 -1 roll
	   restore _mt
	 } bdef
/_red	{ gsave dup
         currentpoint /Ry exch def /Rx exch def
         Rx Ry psz 4 div add _mt
         Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
         add Ry psz 4 div add _lt stroke
         Rx Ry _mt
         grestore
         0 rmoveto
    }bdef
/_redshow {currentpoint
         /Ry exch def /Rx exch def
         dup stringwidth pop Rx Ry psz 4 div add _mt
         Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
         add Ry psz 4 div add _lt stroke Rx Ry _mt 0 0 0 setrgbcolor
         show currentpoint _mt
    }bdef
/_rmxy	{_rmt} bdef
/_s	/stroke load def
/_SH	bon {/bon false def} if
	{/sflg true def /_S /_rshow load def
	} bdef
/_sh	{ ron 	{/sflg false def bflg {_B} if}
		{/_S /show load def /sflg false def bflg {_B} if}ifelse
	}bdef
/_sp	{ gsave stroke grestore } bdef
/_ST     {currentpoint /Sy exch def /Sx exch def} bdef
/_st     {gsave
          currentpoint
          psz 4 div add _mt
          Sx Sy psz 4 div add _lt
          10 setlinewidth
          stroke
          grestore
          } bdef
/_U	{currentpoint /Uy exch def /Ux exch def} bdef
/_u	{gsave
	  currentpoint
	  -30 add _mt
	  Ux Uy -30 add _lt
	  12 setlinewidth
	  stroke
	 grestore
	} bdef
/_w	/setlinewidth load def
end
/#copies 1 def /wpdict2 100 dict def
wpdict begin wpdict2 begin
_bd
/_rhs{readhexstring}bdef/_tr{translate}bdef
/_ix{index}bdef/_mx{matrix}bdef
/ife{ifelse}bdef/_x{exch}bdef
/_is{save 4 1 roll
dup/picstr _x 7 add 8 idiv string def
3 1 roll _tr dup 1 scale
dup 1 1[5 -1 roll 0 0 1 0 0]
{currentfile picstr _rhs pop}image restore}bdef
/_epsi{1 eq{{1 _x sub}currenttransfer _ccprocs settransfer}if
/yp _x def/xp _x def/dhgt _x def/dwid _x def
4 copy sub/swid _x def
sub/shgt _x def
add 2 div/icx _x def add 2 div/icy _x def
xp dwid 2 div add icx sub yp dhgt 2 div sub
icy sub _tr icx icy _tr
360 _x sub rotate
dwid swid div/xsc _x def _x
dhgt shgt div/ysc _x def _x
dup 1 eq{xsc neg/xsc _x def pop}
{dup 2 eq{ysc neg /ysc _x def pop}
{3 eq{ysc neg/ysc _x def xsc neg/xsc _x def}
{}ife}ife}ife
xsc ysc scale
100 div _x 100 div _x scale
icx neg icy neg _tr}bdef
/_c{3{255 div 3 1 roll}repeat setrgbcolor}bdef
/eq3{3 copy 2 _ix eq{eq{true}{false}ife}{pop
pop false}ife}bdef
/g{255 div setgray}bdef
/_clr{ron{6 3 roll pop pop pop}{eq3{pop
pop g}{_c}ife}ife}bdef
/_r{/ron false def eq3{1 sub neg g pop
pop}{setrgbcolor}ife}bdef
/_ircms{save 15 1 roll
1 eq{{1 exch sub}currenttransfer _ccprocs settransfer}if
/pstr _x string def _tr
/Cli _x def/USy _x def/USx _x def/Rot _x def/HTd _x def
/WDd _x def/Bdep _x def/HTs _x def/WDs _x def/MIR _x def
USx 100 div USy 100 div scale
WDd WDs sub 2 div HTd HTs sub 2 div neg _tr
WDs HTs 2 div neg _x 2 div _x _tr
Rot 360 _x sub rotate WDd HTd HTs div _x WDs div _x scale
WDs 2 div neg HTs 2 div _tr
WDs HTs scale WDs HTs Bdep MIR 0
eq{[WDs 0 0 HTs neg 0 0]}{MIR 1 eq{[WDs 0 0 HTs 0 HTs]}
{MIR 128 eq{[WDs neg 0 0 HTs neg WDs 0]}
{[WDs neg 0 0 HTs WDs HTs]}ife}ife}ife
{currentfile pstr _rhs pop}Cli
0 eq{image}{false 3 colorimage}ife
restore}bdef
/_bp{save 2 setlinecap 2 setmiterlimit
.06 .06 scale 0 0 moveto}bdef
/tctm _mx def/trot _mx def/tscale _mx def/rmtx _mx def
/fr{72 0 rmtx defaultmatrix dtransform
/yres _x def/xres _x def
xres dup mul yres dup mul add sqrt}bdef
/sus{/spotf _x def/sang _x def/csz _x def
/m tctm currentmatrix def/rm sang trot rotate def
/sm csz dup tscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 _x def/x1 _x def
/veclength x1 dup mul y1 dup mul add sqrt def
/frcy fr veclength div def /nsang y1 x1 atan def
frcy nsang/spotf load setscreen}bdef
/bitis{/ybit _x def /xbit _x def
/bval bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bval mask and 0 ne}bdef
/bps{/y _x def /x _x def
/xndx x 1 add 2 div bpside mul cvi def
/yndx y 1 add 2 div bpside mul cvi def
xndx yndx bitis
{/onb onb 1 add def 1}{/ofb ofb 1 add def 0}ife}bdef
/stpatt{/csz _x def /angle _x def /bwidth _x def
/bpside _x def /bstring _x def
/onb 0 def /ofb 0 def
csz angle /bps load
sus{}settransfer
ofb ofb onb add div _g}bdef
/_fp{8 1 0 cpi stpatt}bdef
/_pf{gsave eofill grestore}bdef
/_np{newpath}bdef/_lc{setlinecap}bdef
/_sr{/cpi _x def}bdef
/nbuff 50 string def
/_ieq	{gsave
	dup /picstr exch 7 add 8 idiv string def
	3 1 roll translate dup 1 scale
	dup 1 false [5 -1 roll 0 0 1 0 0]
	{currentfile picstr readhexstring pop} imagemask
	grestore} bdef
_bp 0 14032 9922 _ornt /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12470 _m
(To:)_S 67 _t
(X3J3)_S 67 _t
(and)_S 67 _t
(WG5)_S 67 _t
(\(15)_S 67 _t
(March)_S 67 _t
(1994\))_S 1417 12237 _m
(From:)_S 67 _t
(Lawrie)_S 67 _t
(Schonfelder)_S 67 _t
(\(on)_S 67 _t
(behalf)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(UK)_S 67 _t
(panel)_S 67 _t
(IST/5/-/5\))_S 1417 12004 _m
67 _t
3272 11698 _m
/Times-BoldR 900 _ff
(Parameterised)_S 100 _t
(Derived)_S 100 _t
(Types)_S /Times-RomanR 600 _ff
1417 11175 _m
/Times-BoldR 720 _ff
(1)_S 80 _t
(Introduction)_S /Times-RomanR 600 _ff
1417 10932 _m
(This)_S 51 _t
(paper)_S 51 _t
(is)_S 51 _t
(an)_S 51 _t
(further)_S 51 _t
(update)_S 51 _t
(of)_S 51 _t
(the)_S 51 _t
(paper)_S 52 _t
(X3J3/94-042r1)_S 51 _t
(in)_S 51 _t
(the)_S 51 _t
(light)_S 51 _t
(of)_S 51 _t
(committee)_S 51 _t
(input)_S 51 _t
(and)_S 1417 10699 _m
(reflecting)_S 67 _t
(the)_S 67 _t
(views)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(oof)_S 67 _t
(subgroup.)_S 2017 10466 _m
(There)_S 64 _t
(are)_S 65 _t
(six)_S 65 _t
(main)_S 64 _t
(areas)_S 65 _t
(of)_S 65 _t
(language)_S 65 _t
(design)_S 64 _t
(where)_S 65 _t
(an)_S 65 _t
(extension)_S 64 _t
(such)_S 65 _t
(as)_S 65 _t
(this)_S 65 _t
(impacts)_S 1417 10233 _m
(the)_S 67 _t
(existing)_S 67 _t
(langauge)_S 67 _t
(and)_S 67 _t
(where)_S 67 _t
(syntax)_S 67 _t
(and)_S 67 _t
(semantics)_S 67 _t
(must)_S 67 _t
(be)_S 67 _t
(defined.)_S 67 _t
(These)_S 67 _t
(are:)_S 1417 10000 _m
(\267)_S 2017 10000 _m
(the)_S 67 _t
(definition)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(type,)_S 1417 9767 _m
(\267)_S 2017 9767 _m
(declaration)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(of)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(type,)_S 1417 9534 _m
(\267)_S 2017 9534 _m
(constructing)_S 67 _t
(a)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(type,)_S 1417 9301 _m
(\267)_S 2017 9301 _m
(inquiring)_S 67 _t
(as)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(type-parameter)_S 67 _t
(for)_S 67 _t
(an)_S 67 _t
(existing)_S 67 _t
(object)_S 67 _t
(of)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(type,)_S 1417 9068 _m
(\267)_S 2017 9068 _m
(intrinsic)_S 67 _t
(assignment)_S 67 _t
(for)_S 67 _t
(objects)_S 67 _t
(of)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(type,)_S 67 _t
(and)_S 1417 8835 _m
(\267)_S 2017 8835 _m
(argument)_S 67 _t
(association)_S 67 _t
(and)_S 67 _t
(overload)_S 67 _t
(resolution.)_S 1417 8602 _m
(Syntactic)_S 65 _t
(forms)_S 66 _t
(and)_S 65 _t
(semantic)_S 65 _t
(rules)_S 66 _t
(exist)_S 65 _t
(covering)_S 66 _t
(the)_S 65 _t
(use)_S 65 _t
(of)_S 66 _t
(parameterised)_S 65 _t
(intrinsic)_S 66 _t
(types)_S 65 _t
(in)_S 1417 8369 _m
(all)_S 64 _t
(but)_S 64 _t
(the)_S 65 _t
(first)_S 64 _t
(of)_S 65 _t
(these)_S 64 _t
(areas;)_S 64 _t
(for)_S 65 _t
(obvious)_S 64 _t
(reasons)_S 64 _t
(there)_S 65 _t
(is)_S 64 _t
(no)_S 65 _t
(type)_S 64 _t
(definition)_S 64 _t
(for)_S 65 _t
(an)_S 64 _t
(intrinsic)_S 1417 8136 _m
(type.)_S 51 _t
(The)_S 50 _t
(aim)_S 51 _t
(of)_S 51 _t
(all)_S 50 _t
(of)_S 51 _t
(the)_S 51 _t
(following)_S 51 _t
(proposals)_S 50 _t
(is)_S 51 _t
(to)_S 51 _t
(extend)_S 50 _t
(the)_S 51 _t
(notion)_S 51 _t
(of)_S 50 _t
(type)_S 51 _t
(parameterisation)_S 1417 7903 _m
(to)_S 54 _t
(user)_S 54 _t
(defined)_S 54 _t
(types)_S 54 _t
(in)_S 54 _t
(such)_S 54 _t
(a)_S 54 _t
(way)_S 54 _t
(as)_S 54 _t
(to)_S 54 _t
(make)_S 54 _t
(the)_S 54 _t
(manipulation)_S 54 _t
(of)_S 54 _t
(derived)_S 53 _t
(types)_S 54 _t
(and)_S 54 _t
(intrinsic)_S 1417 7670 _m
(types)_S 67 _t
(as)_S 67 _t
(consistent)_S 67 _t
(and)_S 67 _t
(as)_S 67 _t
(similar)_S 67 _t
(as)_S 67 _t
(possible.)_S 67 _t
1417 7174 _m
/Times-BoldR 720 _ff
(2)_S 80 _t
(Technical)_S 80 _t
(Description)_S /Times-RomanR 600 _ff
1417 6931 _m
(In)_S 64 _t
(this)_S 64 _t
(section)_S 64 _t
(the)_S 64 _t
(options)_S 64 _t
(that)_S 64 _t
(received)_S 64 _t
(majority)_S 64 _t
(approval)_S 64 _t
(at)_S 64 _t
(X3J3)_S 64 _t
(meeting)_S 64 _t
(128)_S 64 _t
(in)_S 64 _t
(the)_S 65 _t
(above)_S 1417 6698 _m
(six)_S 71 _t
(areas)_S 70 _t
(are)_S 71 _t
(covered.)_S 71 _t
(The)_S 70 _t
(syntax)_S 71 _t
(and)_S 71 _t
(semantics)_S 71 _t
(are)_S 70 _t
(illustrated)_S 71 _t
(by)_S 71 _t
(example)_S 71 _t
(rather)_S 70 _t
(than)_S 71 _t
(with)_S 1417 6465 _m
(detailed)_S 70 _t
(syntactic)_S 70 _t
(and)_S 70 _t
(semantic)_S 70 _t
(rules.)_S 71 _t
(Since)_S 70 _t
(the)_S 70 _t
(detailed)_S 70 _t
(rules)_S 70 _t
(are)_S 70 _t
(largely)_S 70 _t
(additions)_S 70 _t
(to)_S 70 _t
(rather)_S 1417 6232 _m
(than)_S 53 _t
(replacements)_S 53 _t
(of)_S 53 _t
(the)_S 52 _t
(existing)_S 53 _t
(rules,)_S 53 _t
(these)_S 53 _t
(formal)_S 53 _t
(rules)_S 53 _t
(are)_S 52 _t
(best)_S 53 _t
(defined)_S 53 _t
(in)_S 53 _t
(the)_S 53 _t
(form)_S 52 _t
(of)_S 53 _t
(edits)_S 1417 5999 _m
(to)_S 56 _t
(the)_S 55 _t
(current)_S 56 _t
(standard.)_S 55 _t
(A)_S 56 _t
(proposed)_S 55 _t
(initial)_S 56 _t
(draft)_S 56 _t
(of)_S 55 _t
(edits)_S 56 _t
(which)_S 56 _t
(would)_S 55 _t
(implement)_S 56 _t
(the)_S 55 _t
(proposed)_S 1417 5766 _m
(extensions)_S 67 _t
(are)_S 67 _t
(included)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(next)_S 67 _t
(section.)_S 2017 5533 _m
(The)_S 48 _t
(intrinsic)_S 48 _t
(types)_S 47 _t
(have)_S 48 _t
(two)_S 48 _t
(quite)_S 48 _t
(different)_S 48 _t
(parameters.)_S 96 _t
(There)_S 48 _t
(are)_S 48 _t
(the)_S 48 _t
(static)_S 48 _t
(parameters)_S 1417 5300 _m
(that)_S 76 _t
(determine)_S 76 _t
(the)_S 76 _t
(nature)_S 76 _t
(of)_S 77 _t
(the)_S 76 _t
(machine)_S 76 _t
(representation.)_S 76 _t
(These)_S 76 _t
(are)_S 76 _t
(all)_S 76 _t
(characterised)_S 77 _t
(for)_S 76 _t
(the)_S 1417 5067 _m
(intrinsic)_S 59 _t
(types)_S 58 _t
(by)_S 58 _t
(the)_S 59 _t
(same)_S 58 _t
(keyword,)_S 59 _t
/CourierR 600 _ff
(KIND)_S /Times-RomanR 600 _ff
(.)_S 58 _t
(The)_S 58 _t
(other)_S 59 _t
(parameter)_S 58 _t
(type,)_S 59 _t
(where)_S 58 _t
(the)_S 59 _t
(value)_S 58 _t
(is)_S 58 _t
(not)_S 1417 4834 _m
(necessarily)_S 69 _t
(static,)_S 69 _t
(only)_S 70 _t
(applies)_S 69 _t
(for)_S 70 _t
(the)_S 69 _t
(character)_S 69 _t
(type.)_S 139 _t
(Here)_S 70 _t
(the)_S 69 _t
(parameter,)_S 69 _t
/CourierR 600 _ff
(LEN)_S /Times-RomanR 600 _ff
(,)_S 70 _t
(determines)_S 1417 4601 _m
(the)_S 69 _t
(length)_S 70 _t
(or)_S 70 _t
(the)_S 69 _t
(number)_S 70 _t
(of)_S 69 _t
(characters)_S 70 _t
(in)_S 69 _t
(the)_S 70 _t
(datum.)_S 139 _t
(These)_S 70 _t
(names)_S 70 _t
/CourierR 600 _ff
(KIND)_S /Times-RomanR 600 _ff
69 _t
(and)_S 70 _t
/CourierR 600 _ff
(LEN)_S /Times-RomanR 600 _ff
69 _t
(are)_S 70 _t
(also)_S 1417 4368 _m
(the)_S 99 _t
(generic)_S 98 _t
(names)_S 98 _t
(of)_S 98 _t
(inquiry)_S 98 _t
(functions)_S 98 _t
(used)_S 98 _t
(to)_S 98 _t
(find)_S 98 _t
(the)_S 98 _t
(values)_S 98 _t
(for)_S 98 _t
(these)_S 98 _t
(parameters)_S 98 _t
(for)_S 1417 4135 _m
(appropriate)_S 63 _t
(data)_S 63 _t
(objects.)_S 64 _t
(A)_S 63 _t
(full)_S 64 _t
(parameterised)_S 63 _t
(data)_S 63 _t
(type)_S 63 _t
(proposal)_S 64 _t
(must)_S 63 _t
(allow)_S 63 _t
(for)_S 63 _t
(any)_S 64 _t
(number)_S 1417 3902 _m
(of)_S 66 _t
(both)_S 66 _t
(sorts)_S 65 _t
(of)_S 66 _t
(parameter)_S 66 _t
(for)_S 65 _t
(user)_S 66 _t
(defined)_S 66 _t
(types)_S 65 _t
(and)_S 66 _t
(for)_S 66 _t
(a)_S 66 _t
(mechanism)_S 65 _t
(of)_S 66 _t
(inquiring)_S 66 _t
(as)_S 65 _t
(to)_S 66 _t
(the)_S 1417 3669 _m
(actual)_S 67 _t
(parameter)_S 67 _t
(values.)_S 1417 3203 _m
/Times-BoldR 600 _ff
(2.1)_S 67 _t
(The)_S 67 _t
(Type)_S 67 _t
(Definition)_S /Times-RomanR 600 _ff
1417 2970 _m
(The)_S 73 _t
(view)_S 74 _t
(of)_S 73 _t
(meeting)_S 73 _t
(128)_S 74 _t
(was)_S 73 _t
(that)_S 73 _t
(at)_S 74 _t
(this)_S 73 _t
(stage)_S 73 _t
(only)_S 74 _t
(integer)_S 73 _t
(parameters)_S 73 _t
(should)_S 74 _t
(be)_S 73 _t
(allowed.)_S 1417 2737 _m
(Thus)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(definition)_S 67 _t
(shole)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(syntax)_S 67 _t
(which)_S 67 _t
(would)_S 67 _t
(allow)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(definition)_S 67 _t
(such)_S 67 _t
(as:)_S /CourierR 600 _ff
1417 2312 _m
(TYPE)_S 120 _t
(MATRIX\(wkp,dim\))_S 1417 2112 _m
120 _t
120 _t
(KIND)_S 120 _t
(::)_S 120 _t
(wkp)_S 1417 1912 _m
120 _t
120 _t
(REAL\(wkp\),DIMENSION\(dim,dim\))_S 120 _t
(::)_S 120 _t
(element)_S 8857 1480 _m
(1)_S _ep
_bp /CourierR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12478 _m
(ENDTYPE)_S 120 _t
(MATRIX)_S /Times-RomanR 600 _ff
1417 12037 _m
(The)_S 56 _t
(essential)_S 57 _t
(feature)_S 56 _t
(of)_S 57 _t
(this)_S 57 _t
(proposal)_S 56 _t
(is)_S 57 _t
(that)_S 56 _t
(the)_S 57 _t
(type)_S 57 _t
(is)_S 57 _t
(defined)_S 56 _t
(with)_S 57 _t
(a)_S 56 _t
(dummy)_S 57 _t
(type)_S 57 _t
(parameter)_S 1417 11804 _m
(list,)_S 110 _t
(which)_S 109 _t
(specifies)_S 110 _t
(a)_S 110 _t
(list)_S 109 _t
(of)_S 110 _t
(type)_S 109 _t
(parameter)_S 110 _t
(names)_S 109 _t
(that)_S 110 _t
(may)_S 110 _t
(be)_S 109 _t
(used)_S 110 _t
(as)_S 109 _t
(primaries)_S 110 _t
(in)_S 1417 11571 _m
(specification)_S 67 _t
(or)_S 67 _t
(initialisation)_S 67 _t
(expressions)_S 67 _t
(when)_S 67 _t
(specifying)_S 67 _t
(the)_S 67 _t
(components)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(type.)_S 2017 11338 _m
(The)_S 67 _t
(subgroup)_S 67 _t
(was)_S 67 _t
(convinced)_S 67 _t
(that)_S 67 _t
(as)_S 67 _t
(all)_S 67 _t
(type)_S 67 _t
(definition)_S 67 _t
(information)_S 68 _t
(is)_S 67 _t
(fully)_S 67 _t
(available)_S 1417 11105 _m
(at)_S 73 _t
(compile)_S 73 _t
(time)_S 73 _t
(and)_S 73 _t
(the)_S 73 _t
(processor)_S 73 _t
(is)_S 73 _t
(fully)_S 73 _t
(able)_S 73 _t
(to)_S 73 _t
(distinguish)_S 73 _t
(which)_S 73 _t
(parameters)_S 73 _t
(are)_S 72 _t
(used)_S 73 _t
(as)_S 1417 10872 _m
("kind")_S 64 _t
(parameters)_S 64 _t
(and)_S 63 _t
(which)_S 64 _t
(are)_S 64 _t
(used)_S 64 _t
(as)_S 64 _t
("len")_S 63 _t
(style.)_S 128 _t
(However,)_S 64 _t
(the)_S 63 _t
(committee)_S 64 _t
(voted)_S 64 _t
(that)_S 64 _t
(on)_S 1417 10639 _m
(balance)_S 59 _t
(it)_S 59 _t
(would)_S 59 _t
(prefer)_S 58 _t
(to)_S 59 _t
(see)_S 58 _t
(this)_S 59 _t
(distinction)_S 59 _t
(declared)_S 59 _t
(explicitly.)_S 58 _t
(It)_S 59 _t
(is)_S 59 _t
(therefore)_S 59 _t
(proposed)_S 58 _t
(that)_S 1417 10406 _m
(the)_S 63 _t
(default)_S 63 _t
(for)_S 62 _t
(any)_S 63 _t
(parameter)_S 62 _t
(is)_S 63 _t
(that)_S 62 _t
(it)_S 63 _t
(is)_S 63 _t
(integer)_S 62 _t
(and)_S 63 _t
(nonkind.)_S 62 _t
(If)_S 63 _t
(a)_S 63 _t
(parameter)_S 62 _t
(is)_S 63 _t
(to)_S 62 _t
(be)_S 63 _t
(used)_S 62 _t
(to)_S 1417 10173 _m
(determine)_S 57 _t
(the)_S 58 _t
(kind)_S 57 _t
(of)_S 58 _t
(a)_S 57 _t
(component)_S 57 _t
(it)_S 57 _t
(must)_S 58 _t
(be)_S 57 _t
(declared)_S 57 _t
(to)_S 58 _t
(have)_S 57 _t
(the)_S 57 _t
(KIND)_S 58 _t
(attribute.)_S 57 _t
(Note)_S 57 _t
(that,)_S 1417 9940 _m
(a)_S 74 _t
(parameter)_S 74 _t
(that)_S 74 _t
(is)_S 74 _t
(not)_S 74 _t
(specifically)_S 74 _t
(used)_S 74 _t
(in)_S 74 _t
(this)_S 74 _t
(way)_S 74 _t
(could)_S 74 _t
(also)_S 74 _t
(be)_S 74 _t
(declared)_S 74 _t
(with)_S 74 _t
(the)_S 74 _t
(KIND)_S 1417 9707 _m
(attribute.)_S 76 _t
(In)_S 77 _t
(which)_S 76 _t
(case)_S 77 _t
(it)_S 76 _t
(would)_S 77 _t
(still)_S 76 _t
(be)_S 77 _t
(treated)_S 76 _t
(as)_S 76 _t
(a)_S 77 _t
(kind)_S 76 _t
(parameter)_S 77 _t
(and)_S 76 _t
(any)_S 77 _t
(actual)_S 76 _t
(values)_S 1417 9474 _m
(associated)_S 118 _t
(with)_S 119 _t
(it)_S 119 _t
(in)_S 118 _t
(declaration)_S 119 _t
(of)_S 119 _t
(objects)_S 118 _t
(or)_S 119 _t
(elsewhere)_S 118 _t
(would)_S 119 _t
(have)_S 119 _t
(to)_S 118 _t
(be)_S 119 _t
(given)_S 119 _t
(by)_S 1417 9241 _m
(initialisation)_S 67 _t
(expressions.)_S 67 _t
2017 9008 _m
(Semantic)_S 116 _t
(restrictions)_S 115 _t
(need)_S 115 _t
(to)_S 116 _t
(be)_S 115 _t
(defined)_S 115 _t
(such)_S 115 _t
(that)_S 115 _t
(any)_S 116 _t
(type)_S 115 _t
(parameter)_S 115 _t
(used)_S 115 _t
(to)_S 1417 8775 _m
(determine)_S 76 _t
(the)_S 76 _t
(kind)_S 76 _t
(of)_S 75 _t
(a)_S 76 _t
(component)_S 76 _t
(is)_S 76 _t
(a)_S 76 _t
(static)_S 76 _t
(parameter)_S 76 _t
(and)_S 76 _t
(any)_S 76 _t
(actual)_S 76 _t
(value)_S 76 _t
(provided)_S 76 _t
(for)_S 1417 8542 _m
(such)_S 53 _t
(a)_S 53 _t
(type)_S 53 _t
(parameter)_S 53 _t
(would)_S 54 _t
(have)_S 53 _t
(to)_S 53 _t
(be)_S 53 _t
(a)_S 53 _t
(the)_S 53 _t
(result)_S 53 _t
(of)_S 54 _t
(evaluating)_S 53 _t
(a)_S 53 _t
(scalar)_S 53 _t
(integer)_S 53 _t
(initialisation)_S 1417 8309 _m
(expression.)_S 53 _t
(A)_S 54 _t
(type)_S 53 _t
(parameter)_S 54 _t
(that)_S 53 _t
(is)_S 54 _t
(not)_S 53 _t
(declared)_S 54 _t
(to)_S 53 _t
(have)_S 54 _t
(the)_S 53 _t
(KIND)_S 54 _t
(attribute)_S 53 _t
(must)_S 54 _t
(not)_S 53 _t
(be)_S 54 _t
(used)_S 1417 8076 _m
(to)_S 55 _t
(determine)_S 54 _t
(the)_S 55 _t
(value)_S 55 _t
(of)_S 55 _t
(a)_S 55 _t
(kind)_S 55 _t
(type)_S 54 _t
(parameter)_S 55 _t
(for)_S 55 _t
(any)_S 55 _t
(component.)_S 55 _t
(The)_S 55 _t
(actual)_S 55 _t
(values)_S 55 _t
(of)_S 55 _t
(such)_S 1417 7843 _m
(type)_S 86 _t
(parameters)_S 87 _t
(may)_S 87 _t
(however,)_S 87 _t
(in)_S 87 _t
(the)_S 87 _t
(appropriate)_S 87 _t
(contexts)_S 87 _t
(be)_S 87 _t
(determined)_S 87 _t
(by)_S 87 _t
(non-constant)_S 1417 7610 _m
(specification)_S 67 _t
(expressions.)_S 67 _t
1417 7406 _m
/Times-RomanR 480 _ff
({)_S 53 _t
2017 7406 _m
(Note,)_S 64 _t
(this)_S 64 _t
(proposal)_S 64 _t
(does)_S 64 _t
(not)_S 65 _t
(rule)_S 64 _t
(out)_S 64 _t
(parameters)_S 64 _t
(of)_S 64 _t
(other)_S 64 _t
(types)_S 64 _t
(being)_S 64 _t
(permitted)_S 64 _t
(in)_S 64 _t
(some)_S 64 _t
(future)_S 2017 7213 _m
(extension,)_S 53 _t
(but)_S 53 _t
(it)_S 53 _t
(does)_S 53 _t
(require)_S 53 _t
(that)_S 53 _t
(any)_S 53 _t
(such)_S 53 _t
(parameter)_S 53 _t
(be)_S 53 _t
(explicitly)_S 53 _t
(declared.)_S 53 _t
8900 7213 _m
(})_S /Times-RomanR 600 _ff
1417 6991 _m
(In)_S 73 _t
(the)_S 74 _t
(light)_S 74 _t
(of)_S 73 _t
(committee)_S 74 _t
(comment)_S 74 _t
(it)_S 73 _t
(is)_S 74 _t
(proposed)_S 74 _t
(to)_S 73 _t
(allow)_S 74 _t
(SEQUENCE)_S 74 _t
(to)_S 73 _t
(be)_S 74 _t
(specified)_S 74 _t
(for)_S 1417 6758 _m
(such)_S 135 _t
(types.)_S 134 _t
(However,)_S 135 _t
(the)_S 135 _t
(rules)_S 134 _t
(for)_S 135 _t
(using)_S 135 _t
(objects)_S 134 _t
(of)_S 135 _t
(such)_S 134 _t
(types)_S 135 _t
(in)_S 135 _t
(COMMON)_S 134 _t
(and)_S 1417 6525 _m
(EQUIVALENCE)_S 63 _t
(contexts)_S 63 _t
(should)_S 63 _t
(be)_S 63 _t
(so)_S 63 _t
(phrased)_S 63 _t
(to)_S 63 _t
(ensure)_S 64 _t
(that)_S 63 _t
(two)_S 63 _t
(objects)_S 63 _t
(of)_S 63 _t
(such)_S 63 _t
(types)_S 63 _t
(can)_S 1417 6292 _m
(only)_S 69 _t
(become)_S 70 _t
(storage)_S 69 _t
(associated)_S 70 _t
(when)_S 69 _t
(there)_S 70 _t
(sequence)_S 69 _t
(types)_S 70 _t
(are)_S 69 _t
(the)_S 70 _t
(same)_S 69 _t
(and)_S 70 _t
(have)_S 69 _t
(the)_S 70 _t
(same)_S 1417 6059 _m
(parameters)_S 54 _t
(with)_S 54 _t
(the)_S 54 _t
(same)_S 54 _t
(values.)_S 54 _t
(Similarly)_S 54 _t
(two)_S 54 _t
(sequence)_S 54 _t
(types)_S 54 _t
(are)_S 54 _t
(the)_S 54 _t
(same)_S 54 _t
(only)_S 55 _t
(if)_S 54 _t
(they)_S 54 _t
(have)_S 1417 5826 _m
(the)_S 67 _t
(same)_S 67 _t
(components)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(parameters.)_S 1417 5360 _m
/Times-BoldR 600 _ff
(2.2)_S 67 _t
(Object)_S 67 _t
(declaration)_S /Times-RomanR 600 _ff
1417 5127 _m
(Objects)_S 67 _t
(of)_S 67 _t
(this)_S 67 _t
(type)_S 67 _t
(could)_S 67 _t
(then)_S 67 _t
(be)_S 67 _t
(declared,)_S /CourierR 600 _ff
1417 4702 _m
(type\(MATRIX\(4,3\)\))_S 120 _t
(::)_S 120 _t
(rotate,trans)_S 1417 4502 _m
(type\(MATRIX\(KIND\(0.0\),4\)\))_S 120 _t
(::)_S 120 _t
(metric)_S 1417 4302 _m
(type\(MATRIX\(wkp=8,dim=n\)\))_S 120 _t
(::)_S 120 _t
(weight)_S 1417 4102 _m
(type\(MATRIX\(wkp=8,dim=*\)\))_S 120 _t
(::)_S 120 _t
(hessian)_S /Times-RomanR 600 _ff
1417 3661 _m
(where)_S 69 _t
(the)_S 70 _t
(penultimate)_S 70 _t
(statement)_S 69 _t
(would)_S 70 _t
(be)_S 70 _t
(declaring)_S 69 _t
(an)_S 70 _t
(automatic)_S 70 _t
(or)_S 70 _t
(dummy)_S 69 _t
(object)_S 70 _t
(and)_S 70 _t
(the)_S 1417 3428 _m
(ultimate)_S 57 _t
(would)_S 56 _t
(be)_S 57 _t
(declaring)_S 57 _t
(a)_S 57 _t
(dummy)_S 57 _t
(argument)_S 57 _t
(that)_S 56 _t
(was)_S 57 _t
(to)_S 57 _t
(assume)_S 57 _t
(the)_S 56 _t
(parameter)_S 57 _t
(value)_S 57 _t
(from)_S 1417 3195 _m
(the)_S 79 _t
(associated)_S 79 _t
(actual)_S 80 _t
(argument,)_S 79 _t
(c.f.)_S 79 _t
(similar)_S 79 _t
(usage)_S 80 _t
(with)_S 79 _t
(the)_S 79 _t
(length)_S 79 _t
(parameter)_S 80 _t
(for)_S 79 _t
(characters.)_S 1417 2962 _m
(The)_S 52 _t
(use)_S 52 _t
(of)_S 51 _t
(keyword)_S 52 _t
(forms)_S 52 _t
(for)_S 52 _t
(specifying)_S 52 _t
(which)_S 51 _t
(expression)_S 52 _t
(went)_S 52 _t
(with)_S 52 _t
(which)_S 51 _t
(parameter)_S 52 _t
(should)_S 1417 2729 _m
(follow)_S 72 _t
(the)_S 72 _t
(same)_S 72 _t
(rules)_S 71 _t
(as)_S 72 _t
(for)_S 72 _t
(procedure)_S 72 _t
(arguments;)_S 72 _t
(viz.)_S 72 _t
(the)_S 72 _t
(key)_S 71 _t
(word)_S 72 _t
(can)_S 72 _t
(only)_S 72 _t
(be)_S 72 _t
(ommitted)_S 1417 2496 _m
(if)_S 56 _t
(it)_S 57 _t
(has)_S 56 _t
(been)_S 56 _t
(omitted)_S 56 _t
(from)_S 57 _t
(all)_S 56 _t
(previous)_S 57 _t
(parameter)_S 56 _t
(expressions.)_S 56 _t
(The)_S 57 _t
(expressions)_S 56 _t
(matching)_S 57 _t
(and)_S 1417 2263 _m
(providing)_S 46 _t
(values)_S 47 _t
(for)_S 46 _t
(kind)_S 46 _t
(parameters)_S 46 _t
(will)_S 47 _t
(have)_S 46 _t
(to)_S 46 _t
(be)_S 46 _t
(initialisation)_S 47 _t
(expressions.)_S 46 _t
(Those)_S 46 _t
(matching)_S 1417 2030 _m
(nonkind)_S 67 _t
(parameters)_S 67 _t
(may)_S 67 _t
(be)_S 67 _t
(specification)_S 67 _t
(expressions)_S 67 _t
(and)_S 67 _t
(hence)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(non-constant)_S 1417 1480 _m
/CourierR 600 _ff
(2)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 2017 12470 _m
(The)_S 74 _t
(handling)_S 74 _t
(from)_S 74 _t
(a)_S 74 _t
(descriptional)_S 75 _t
(point)_S 74 _t
(of)_S 74 _t
(view)_S 74 _t
(such)_S 74 _t
/CourierR 600 _ff
(LEN)_S /Times-RomanR 600 _ff
(-style)_S 74 _t
(parameters)_S 74 _t
(is)_S 75 _t
(quite)_S 1417 12237 _m
(straight)_S 67 _t
(forward.)_S 67 _t
(Much)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(necessary)_S 67 _t
(text)_S 67 _t
(already)_S 67 _t
(exists)_S 67 _t
(in)_S 67 _t
(IS)_S 67 _t
(1539)_S 67 _t
(:)_S 67 _t
(1991.)_S 1417 11771 _m
/Times-BoldR 600 _ff
(2.3)_S 67 _t
(The)_S 67 _t
(form)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(Constructor)_S /Times-RomanR 600 _ff
1417 11538 _m
(The)_S 100 _t
(approach)_S 100 _t
(recommended)_S 101 _t
(by)_S 100 _t
(the)_S 101 _t
(subgroup)_S 100 _t
(is)_S 100 _t
(to)_S 101 _t
(follow)_S 100 _t
(the)_S 100 _t
(style)_S 101 _t
(set)_S 100 _t
(for)_S 101 _t
(the)_S 100 _t
(intrinsic)_S 1417 11305 _m
(functions)_S 54 _t
(where)_S 53 _t
(the)_S 54 _t
(type)_S 53 _t
(parameters)_S 54 _t
(of)_S 54 _t
(the)_S 53 _t
(result)_S 54 _t
(need)_S 54 _t
(to)_S 53 _t
(be)_S 54 _t
(set.)_S 107 _t
(The)_S 54 _t
(model)_S 53 _t
(of)_S 54 _t
(the)_S 53 _t
/CourierR 600 _ff
(REAL)_S /Times-RomanR 600 _ff
54 _t
(type)_S 1417 11072 _m
(conversion)_S 70 _t
(function)_S 70 _t
(is)_S 69 _t
(particularly)_S 70 _t
(apposite.)_S 70 _t
(The)_S 70 _t
(extended)_S 69 _t
(form)_S 70 _t
(of)_S 70 _t
(the)_S 70 _t
(constructor)_S 69 _t
(reference)_S 1417 10839 _m
(would)_S 106 _t
(be)_S 106 _t
(to)_S 107 _t
(include)_S 106 _t
(the)_S 106 _t
(parameters)_S 107 _t
(as)_S 106 _t
(an)_S 106 _t
(extra)_S 107 _t
(set)_S 106 _t
(of)_S 106 _t
(arguments)_S 106 _t
(following)_S 106 _t
(the)_S 107 _t
(list)_S 106 _t
(of)_S 1417 10606 _m
(component)_S 67 _t
(expressions.)_S 134 _t
(The)_S 67 _t
(analogy)_S 67 _t
(with)_S /CourierR 600 _ff
1417 10181 _m
(REAL\(A,KIND\))_S /Times-RomanR 600 _ff
1417 9740 _m
(for)_S 134 _t
(the)_S 67 _t
(matrix)_S 67 _t
(type)_S 67 _t
(would)_S 67 _t
(be)_S /CourierR 600 _ff
1417 9315 _m
(MATRIX\(element,wkp,dim\))_S /Times-RomanR 600 _ff
1417 8874 _m
(The)_S 67 _t
(general)_S 67 _t
(form)_S 67 _t
(is)_S 67 _t
(therefore,)_S 1417 8408 _m
(type-name\(component-expr-list,type-param-expr-list\))_S 1417 7971 _m
/Times-RomanR 480 _ff
({)_S 53 _t
2017 7971 _m
(OOF)_S 41 _t
(subgroup)_S 42 _t
(has)_S 41 _t
(additional)_S 42 _t
(proposals)_S 41 _t
(to)_S 42 _t
(greatly)_S 41 _t
(improve)_S 42 _t
(the)_S 41 _t
(friendliness)_S 41 _t
(of)_S 42 _t
(the)_S 41 _t
(value)_S 42 _t
(constructor)_S 2017 7778 _m
(which)_S 53 _t
(will)_S 53 _t
(make)_S 53 _t
(this)_S 53 _t
(form)_S 53 _t
(more)_S 53 _t
(usable.)_S 53 _t
8900 7778 _m
(})_S /Times-RomanR 600 _ff
1417 7323 _m
/Times-BoldR 600 _ff
(2.4)_S 67 _t
(Type)_S 67 _t
(parameter)_S 67 _t
(value)_S 67 _t
(inquiry)_S /Times-RomanR 600 _ff
1417 7090 _m
(Because)_S 51 _t
(of)_S 50 _t
(the)_S 50 _t
(objections)_S 51 _t
(to)_S 50 _t
(allowing)_S 51 _t
(the)_S 50 _t
(parameter)_S 50 _t
(names)_S 51 _t
(to)_S 50 _t
(enter)_S 51 _t
(the)_S 50 _t
(programs)_S 51 _t
(class)_S 67 _t
(1)_S 50 _t
(name)_S 1417 6857 _m
(space,)_S 70 _t
(even)_S 69 _t
(by)_S 69 _t
(way)_S 70 _t
(of)_S 69 _t
(a)_S 70 _t
(generic)_S 69 _t
(procedure)_S 69 _t
(name,)_S 70 _t
(as)_S 69 _t
(is)_S 69 _t
(inherent)_S 69 _t
(in)_S 70 _t
(generalising)_S 69 _t
(the)_S 69 _t
(intrinsic)_S 1417 6624 _m
(inquiry)_S 65 _t
(function)_S 65 _t
(approach)_S 65 _t
(that)_S 65 _t
(applies)_S 65 _t
(for)_S 64 _t
(character,)_S 65 _t
(the)_S 65 _t
(subgroup)_S 65 _t
(is)_S 65 _t
(recommending)_S 65 _t
(that)_S 64 _t
(that)_S 1417 6391 _m
(for)_S 100 _t
(any)_S 100 _t
(object)_S 100 _t
(of)_S 100 _t
(a)_S 100 _t
(parameterised)_S 100 _t
(type,)_S 100 _t
(the)_S 100 _t
(value)_S 100 _t
(of)_S 100 _t
(a)_S 100 _t
(parameter)_S 100 _t
(can)_S 100 _t
(be)_S 100 _t
(obtained)_S 100 _t
(by)_S 101 _t
(a)_S 1417 6158 _m
("parameter)_S 67 _t
(value)_S 67 _t
(selector",)_S 67 _t
(for)_S 67 _t
(example,)_S /CourierR 600 _ff
1417 5733 _m
(rotate%%wkp)_S 120 _t
(=)_S 120 _t
(4)_S 1417 5533 _m
(rotate%%dim)_S 120 _t
(=)_S 120 _t
(3)_S 1417 5333 _m
(hessian%%dim)_S 120 _t
(=)_S 120 _t
(the)_S 120 _t
(current)_S 120 _t
(value)_S 120 _t
(for)_S 120 _t
(the)_S 120 _t
(assumed)_S 120 _t
(dim)_S 120 _t
(parameter)_S /Times-RomanR 600 _ff
1417 5125 _m
(It)_S 72 _t
(is)_S 72 _t
(also)_S 72 _t
(proposed)_S 72 _t
(that)_S 71 _t
(to)_S 72 _t
(ensure)_S 72 _t
(regularity)_S 72 _t
(between)_S 72 _t
(the)_S 72 _t
(intrinsic)_S 71 _t
(and)_S 72 _t
(derived)_S 72 _t
(type)_S 72 _t
(facilities)_S 1417 4892 _m
(that)_S 62 _t
(the)_S 62 _t
(this)_S 62 _t
(form)_S 63 _t
(of)_S 62 _t
(inquiry)_S 62 _t
(also)_S 62 _t
(be)_S 62 _t
(permitted)_S 62 _t
(for)_S 62 _t
(the)_S 62 _t
(intrinsic)_S 62 _t
(types.)_S 62 _t
(It)_S 62 _t
(should)_S 62 _t
(be)_S 62 _t
(possible)_S 62 _t
(to)_S 1417 4659 _m
(say)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(variable)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(CHARACTER,)_S 67 _t
(say,)_S 67 _t
(char)_S /CourierR 600 _ff
1417 4234 _m
(char%%LEN)_S /Times-RomanR 600 _ff
1417 4026 _m
67 _t
1417 3793 _m
(and)_S 67 _t
(have)_S 67 _t
(this)_S 67 _t
(deliver)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(value)_S 67 _t
(as)_S /CourierR 600 _ff
1417 3368 _m
(LEN\(char\))_S /Times-RomanR 600 _ff
1417 2927 _m
(and)_S 67 _t
(for)_S 67 _t
(say)_S 67 _t
(a)_S 67 _t
(real)_S 67 _t
(object,)_S 67 _t
(say,)_S 67 _t
(height)_S /CourierR 600 _ff
1417 2502 _m
(height%%KIND)_S /Times-RomanR 600 _ff
1417 2061 _m
(would)_S 67 _t
(produce)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(value)_S 67 _t
(as)_S 8857 1480 _m
/CourierR 600 _ff
(3)_S /Times-RomanR 600 _ff
_ep
_bp /CourierR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12478 _m
(KIND\(height\))_S /Times-RomanR 600 _ff
1417 12037 _m
(The)_S 67 _t
(form)_S 67 _t
(of)_S 67 _t
(this)_S 67 _t
(inquiry)_S 67 _t
(should)_S 67 _t
(be)_S 1417 11571 _m
(object-name%%type-parameter-name)_S 1417 11105 _m
(Where)_S 63 _t
(the)_S 63 _t
(object-name)_S 62 _t
(must)_S 63 _t
(be)_S 63 _t
(of)_S 62 _t
(a)_S 63 _t
(type)_S 63 _t
(that)_S 62 _t
(has)_S 63 _t
(a)_S 63 _t
(type)_S 62 _t
(parameter)_S 63 _t
(with)_S 62 _t
(the)_S 63 _t
(type-parameter-)_S 1417 10872 _m
(name.)_S 2017 10639 _m
(Where)_S 87 _t
(these)_S 87 _t
(inquiries)_S 86 _t
(relate)_S 87 _t
(to)_S 87 _t
(kind)_S 87 _t
(parameters)_S 86 _t
(they)_S 87 _t
(would)_S 87 _t
(need)_S 87 _t
(to)_S 86 _t
(be)_S 87 _t
(allowed)_S 87 _t
(in)_S 1417 10406 _m
(initialisation)_S 71 _t
(expressions.)_S 71 _t
(Where)_S 72 _t
(they)_S 71 _t
(applied)_S 71 _t
(to)_S 71 _t
(nonkind)_S 72 _t
(parameters)_S 71 _t
(they)_S 71 _t
(would)_S 72 _t
(need)_S 71 _t
(to)_S 71 _t
(be)_S 1417 10173 _m
(allowed)_S 60 _t
(in)_S 60 _t
(specification)_S 60 _t
(expressions.)_S 60 _t
(Their)_S 60 _t
(primary)_S 60 _t
(use,)_S 60 _t
(as)_S 60 _t
(with)_S 60 _t
/CourierR 600 _ff
(KIND\(\))_S /Times-RomanR 600 _ff
60 _t
(and)_S 60 _t
(LEN\(\),)_S 60 _t
(will)_S 60 _t
(be)_S 1417 9940 _m
(for)_S 56 _t
(the)_S 55 _t
(declaration)_S 55 _t
(of)_S 55 _t
(local)_S 56 _t
(objects)_S 55 _t
(which)_S 55 _t
(have)_S 55 _t
(the)_S 56 _t
(same)_S 55 _t
(type)_S 55 _t
(and)_S 55 _t
(type)_S 56 _t
(parameters)_S 55 _t
(as)_S 55 _t
(for)_S 55 _t
(other)_S 1417 9707 _m
(objects;)_S 51 _t
(frequently)_S 51 _t
(these)_S 51 _t
(other)_S 51 _t
(objects)_S 51 _t
(will)_S 51 _t
(be)_S 51 _t
(dummy)_S 51 _t
(arguments)_S 51 _t
(with,)_S 50 _t
(for)_S 51 _t
(nonkind)_S 51 _t
(parameters)_S 1417 9474 _m
(assumed)_S 67 _t
(values)_S 67 _t
(for)_S 67 _t
(their)_S 67 _t
(parameters.)_S 67 _t
1417 9270 _m
/Times-RomanR 480 _ff
({)_S 53 _t
2017 9270 _m
(Note,)_S 53 _t
(unlike)_S 53 _t
(the)_S 53 _t
(component)_S 53 _t
(selection)_S 53 _t
(which)_S 52 _t
(may)_S 53 _t
(identify)_S 53 _t
(a)_S 52 _t
(variable)_S 53 _t
(and)_S 53 _t
(can)_S 53 _t
(hence)_S 53 _t
(be)_S 53 _t
(defined)_S 52 _t
(or)_S 2017 9077 _m
(redefined,)_S 48 _t
(the)_S 49 _t
(type-parameter-value-selector)_S 48 _t
(is)_S 49 _t
(always)_S 49 _t
(a)_S 49 _t
(reference)_S 48 _t
(to)_S 49 _t
(obtain)_S 49 _t
(a)_S 48 _t
(value)_S 49 _t
(and)_S 49 _t
(cannot)_S 49 _t
(be)_S 2017 8884 _m
(defined)_S 53 _t
(or)_S 53 _t
(redefined.)_S 106 _t
8900 8884 _m
(})_S /Times-RomanR 600 _ff
1417 8429 _m
/Times-BoldR 600 _ff
(2.5)_S 67 _t
(Intrinsic)_S 67 _t
(assignment)_S /Times-RomanR 600 _ff
1417 8196 _m
(Intrinsic)_S 48 _t
(assignment)_S 47 _t
(is)_S 48 _t
(defined)_S 47 _t
(only)_S 48 _t
(when)_S 48 _t
(the)_S 47 _t
(variable)_S 48 _t
(and)_S 48 _t
(expression)_S 47 _t
(have)_S 48 _t
(the)_S 48 _t
(same)_S 47 _t
(type,)_S 48 _t
(type)_S 1417 7963 _m
(parameter)_S 51 _t
(values,)_S 51 _t
(and)_S 51 _t
(shape.)_S 50 _t
(There)_S 51 _t
(is)_S 51 _t
(no)_S 51 _t
(attempt)_S 51 _t
(to)_S 51 _t
(define)_S 51 _t
(default)_S 51 _t
(coercions)_S 51 _t
(between)_S 51 _t
(differing)_S 1417 7730 _m
(type)_S 56 _t
(parameter)_S 55 _t
(values.)_S 56 _t
(If)_S 56 _t
(the)_S 55 _t
(user)_S 56 _t
(requires)_S 55 _t
(such)_S 56 _t
(assignments)_S 55 _t
(they)_S 56 _t
(must)_S 55 _t
(provide)_S 56 _t
(an)_S 55 _t
(assignment)_S 1417 7497 _m
(procedure)_S 67 _t
(to)_S 67 _t
(extend)_S 67 _t
(and/or)_S 67 _t
(override)_S 67 _t
(this)_S 67 _t
(default.)_S 1417 7031 _m
/Times-BoldR 600 _ff
(2.6)_S 67 _t
(Argument)_S 67 _t
(association)_S 67 _t
(and)_S 67 _t
(overload)_S 67 _t
(rules)_S /Times-RomanR 600 _ff
1417 6798 _m
(The)_S 53 _t
(rules)_S 53 _t
(for)_S 52 _t
(argument)_S 53 _t
(association)_S 52 _t
(should)_S 53 _t
(be)_S 52 _t
(that)_S 53 _t
(dummy)_S 52 _t
(argument)_S 53 _t
(and)_S 52 _t
(actual)_S 53 _t
(argument)_S 52 _t
(must)_S 1417 6565 _m
(match)_S 76 _t
(in)_S 76 _t
(type,)_S 75 _t
(type-parameters)_S 76 _t
(and)_S 76 _t
(rank)_S 76 _t
(as)_S 75 _t
(for)_S 76 _t
(objects)_S 76 _t
(of)_S 76 _t
(intrinsic)_S 76 _t
(types.)_S 75 _t
(This)_S 76 _t
(matching)_S 76 _t
(of)_S 1417 6332 _m
(parameters)_S 76 _t
(may)_S 77 _t
(be)_S 76 _t
(achieved)_S 77 _t
(for)_S 76 _t
(nonkind)_S 76 _t
(parameters)_S 77 _t
(by)_S 76 _t
(the)_S 77 _t
(dummy)_S 76 _t
(argument)_S 77 _t
(assuming)_S 76 _t
(its)_S 1417 6099 _m
(type-parameter)_S 76 _t
(values)_S 76 _t
(from)_S 76 _t
(the)_S 76 _t
(associated)_S 75 _t
(actual)_S 76 _t
(argument.)_S 76 _t
(The)_S 76 _t
(kind)_S 76 _t
(parameters)_S 76 _t
(cannot)_S 75 _t
(be)_S 1417 5866 _m
(assumed)_S 61 _t
(they)_S 61 _t
(must)_S 60 _t
(always)_S 61 _t
(be)_S 61 _t
(explicitly)_S 60 _t
(specified,)_S 61 _t
(but)_S 61 _t
(as)_S 60 _t
(with)_S 61 _t
(intrinsic)_S 61 _t
(kind)_S 60 _t
(parameters)_S 61 _t
(these)_S 1417 5633 _m
(may)_S 80 _t
(be)_S 80 _t
(used)_S 79 _t
(to)_S 80 _t
(disambiguate)_S 80 _t
(generic)_S 79 _t
(overloads.)_S 80 _t
(Unlike)_S 80 _t
(the)_S 80 _t
(LEN)_S 79 _t
(parameter)_S 80 _t
(with)_S 79 _t
(character)_S 1417 5400 _m
(where)_S 59 _t
(there)_S 60 _t
(are)_S 59 _t
(a)_S 59 _t
(number)_S 59 _t
(of)_S 60 _t
(special)_S 59 _t
(rules)_S 60 _t
(which)_S 59 _t
(relax)_S 59 _t
(this)_S 60 _t
(general)_S 59 _t
(rule,)_S 59 _t
(derived)_S 60 _t
(type)_S 59 _t
(nonkind)_S 1417 5167 _m
(parameters)_S 62 _t
(that)_S 63 _t
(are)_S 62 _t
(defined)_S 63 _t
(explicitly)_S 62 _t
(for)_S 62 _t
(the)_S 63 _t
(dummy)_S 62 _t
(argument)_S 62 _t
(require)_S 63 _t
(an)_S 62 _t
(exact)_S 62 _t
(match)_S 63 _t
(in)_S 62 _t
(the)_S 1417 4934 _m
(actual)_S 67 _t
(argument.)_S 1417 4205 _m
/Times-BoldR 720 _ff
(3)_S 80 _t
(Edits)_S 80 _t
(to)_S 80 _t
(IS)_S 80 _t
(1539)_S 80 _t
(:)_S 80 _t
(1991)_S /Times-RomanR 600 _ff
1417 3962 _m
(The)_S 60 _t
(following)_S 61 _t
(are)_S 60 _t
(a)_S 60 _t
(first)_S 60 _t
(attempt)_S 61 _t
(at)_S 60 _t
(providing)_S 60 _t
(edits)_S 61 _t
(to)_S 60 _t
(the)_S 60 _t
(current)_S 61 _t
(document)_S 60 _t
(to)_S 60 _t
(implement)_S 61 _t
(the)_S 1417 3729 _m
(above)_S 67 _t
(functionality.)_S 67 _t
2017 3496 _m
(Note,)_S 60 _t
(where)_S 61 _t
(new)_S 61 _t
(syntax)_S 61 _t
(rules)_S 60 _t
(are)_S 61 _t
(inserted)_S 60 _t
(they)_S 61 _t
(are)_S 61 _t
(numbered)_S 61 _t
(with)_S 60 _t
(a)_S 61 _t
(decimal)_S 61 _t
(addition)_S 1417 3263 _m
(to)_S 62 _t
(the)_S 62 _t
(rule)_S 61 _t
(number)_S 62 _t
(that)_S 62 _t
(precedes)_S 62 _t
(them.)_S 62 _t
(In)_S 62 _t
(the)_S 61 _t
(actual)_S 62 _t
(document)_S 62 _t
(these)_S 62 _t
(will)_S 62 _t
(have)_S 62 _t
(to)_S 61 _t
(be)_S 62 _t
(properly)_S 1417 3030 _m
(numbered)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(revised)_S 67 _t
(sequence.)_S 1417 2564 _m
/Times-BoldR 600 _ff
(Rationale)_S /Times-RomanR 600 _ff
1417 2331 _m
(Parameterised)_S 104 _t
(derived)_S 104 _t
(types)_S 105 _t
(are)_S 104 _t
(required)_S 104 _t
(for)_S 104 _t
(two)_S 105 _t
(main)_S 104 _t
(reasons.)_S 104 _t
(Firstly,)_S 104 _t
(there)_S 104 _t
(are)_S 105 _t
(many)_S 1417 2098 _m
(circumstances)_S 51 _t
(where)_S 52 _t
(a)_S 51 _t
(derived)_S 51 _t
(type)_S 51 _t
(is)_S 51 _t
(required)_S 51 _t
(to)_S 52 _t
(work)_S 51 _t
(together)_S 51 _t
(with)_S 51 _t
(intrinsic)_S 52 _t
(types)_S 51 _t
(where)_S 51 _t
(the)_S 1417 1480 _m
/CourierR 600 _ff
(4)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12470 _m
(ability)_S 88 _t
(to)_S 88 _t
(parameterise)_S 87 _t
(the)_S 88 _t
(kind)_S 88 _t
(of)_S 87 _t
(the)_S 88 _t
(latter)_S 88 _t
(and)_S 87 _t
(not)_S 88 _t
(the)_S 88 _t
(former)_S 88 _t
(causes)_S 87 _t
(very)_S 88 _t
(considerable)_S 1417 12237 _m
(problems.)_S 81 _t
(In)_S 81 _t
(one)_S 81 _t
(case)_S 80 _t
(different)_S 81 _t
(versions)_S 80 _t
(of)_S 81 _t
(the)_S 81 _t
(program)_S 80 _t
(can)_S 81 _t
(be)_S 80 _t
(selected)_S 81 _t
(by)_S 81 _t
(the)_S 80 _t
(use)_S 81 _t
(of)_S 80 _t
(the)_S 1417 12004 _m
(parameter)_S 51 _t
(but)_S 52 _t
(to)_S 52 _t
(enable)_S 51 _t
(the)_S 52 _t
(derived)_S 51 _t
(type)_S 52 _t
(to)_S 51 _t
(properly)_S 52 _t
(interwork)_S 51 _t
(a)_S 52 _t
(different)_S 51 _t
(type)_S 52 _t
(with)_S 51 _t
(a)_S 52 _t
(different)_S 1417 11771 _m
(name)_S 81 _t
(must)_S 81 _t
(be)_S 81 _t
(used.)_S 81 _t
(This)_S 81 _t
(results)_S 81 _t
(in)_S 81 _t
(very)_S 81 _t
(clumsy)_S 81 _t
(and)_S 81 _t
(inflexible)_S 81 _t
(programs)_S 81 _t
(and)_S 81 _t
(a)_S 80 _t
(significant)_S 1417 11538 _m
(program)_S 46 _t
(maintenance)_S 46 _t
(overhead,)_S 47 _t
(significantly)_S 46 _t
(defeating)_S 46 _t
(the)_S 46 _t
(object)_S 47 _t
(of)_S 46 _t
(the)_S 46 _t
(kind)_S 46 _t
(parameterisation.)_S 1417 11305 _m
(Secondly,)_S 53 _t
(there)_S 53 _t
(are)_S 53 _t
(a)_S 53 _t
(large)_S 53 _t
(number)_S 52 _t
(of)_S 53 _t
(types)_S 53 _t
(where)_S 53 _t
(there)_S 52 _t
(is)_S 53 _t
(a)_S 53 _t
(need)_S 53 _t
(to)_S 53 _t
(manipulate)_S 53 _t
(objects)_S 52 _t
(where)_S 1417 11072 _m
(the)_S 75 _t
(only)_S 75 _t
(difference)_S 76 _t
(between)_S 75 _t
(various)_S 76 _t
(entities)_S 75 _t
(is)_S 76 _t
(in)_S 75 _t
(the)_S 76 _t
(size)_S 75 _t
(of)_S 75 _t
(some)_S 76 _t
(internal)_S 75 _t
(component.)_S 76 _t
(For)_S 1417 10839 _m
(example,)_S 58 _t
(there)_S 59 _t
(are)_S 58 _t
(entities)_S 59 _t
(like)_S 58 _t
(vectors)_S 59 _t
(that)_S 58 _t
(may)_S 59 _t
(differ)_S 58 _t
(in)_S 59 _t
(the)_S 58 _t
(dimentionality)_S 59 _t
(of)_S 59 _t
(the)_S 58 _t
(space)_S 59 _t
(they)_S 1417 10606 _m
(span)_S 94 _t
(and)_S 94 _t
(therefore)_S 94 _t
(in)_S 93 _t
(the)_S 94 _t
(number)_S 94 _t
(of)_S 93 _t
(reals)_S 94 _t
(that)_S 94 _t
(are)_S 94 _t
(involved)_S 93 _t
(in)_S 94 _t
(their)_S 94 _t
(representation)_S 94 _t
(or)_S 93 _t
(in)_S 1417 10373 _m
(matrices)_S 54 _t
(that)_S 55 _t
(differ)_S 54 _t
(in)_S 54 _t
(their)_S 54 _t
(order.)_S 55 _t
(This)_S 54 _t
(is)_S 54 _t
(very)_S 54 _t
(like)_S 54 _t
(the)_S 54 _t
(intrinsic)_S 54 _t
(character)_S 55 _t
(data)_S 54 _t
(type)_S 54 _t
(where)_S 54 _t
(data)_S 1417 10140 _m
(objects)_S 68 _t
(may)_S 68 _t
(differ)_S 67 _t
(in)_S 68 _t
(the)_S 68 _t
(number)_S 67 _t
(of)_S 68 _t
(characters)_S 68 _t
(in)_S 67 _t
(the)_S 68 _t
(string)_S 68 _t
(and)_S 67 _t
(where)_S 68 _t
(this)_S 68 _t
(is)_S 67 _t
(specified)_S 68 _t
(by)_S 67 _t
(a)_S 1417 9907 _m
(length)_S 49 _t
(parameter)_S 48 _t
(on)_S 49 _t
(the)_S 48 _t
(type)_S 49 _t
(rather)_S 48 _t
(than)_S 49 _t
(have)_S 48 _t
(multiple)_S 49 _t
(separate)_S 48 _t
(types)_S 49 _t
(which)_S 49 _t
(differ)_S 48 _t
(only)_S 49 _t
(in)_S 48 _t
(such)_S 1417 9674 _m
(a)_S 67 _t
(size)_S 67 _t
(determining)_S 67 _t
(property.)_S 134 _t
2017 9441 _m
(Both)_S 58 _t
(these)_S 59 _t
(requirements)_S 58 _t
(are)_S 59 _t
(met)_S 58 _t
(by)_S 59 _t
(the)_S 58 _t
(addition)_S 59 _t
(of)_S 58 _t
(parameterised)_S 59 _t
(derived)_S 59 _t
(types)_S 58 _t
(to)_S 59 _t
(the)_S 1417 9208 _m
(language.)_S 1417 8975 _m
/Times-BoldR 600 _ff
(end)_S 67 _t
(of)_S 67 _t
(rationale)_S /Times-RomanR 600 _ff
1417 8509 _m
/Times-BoldR 600 _ff
(3.1)_S 67 _t
/Times-RomanR 600 _ff
(2.4.1.2)_S 2617 8509 _m
([13/22])_S 2017 8276 _m
(before)_S 67 _t
("agreement")_S 67 _t
(add)_S 67 _t
("and)_S 67 _t
(type)_S 67 _t
(parameter")_S 1417 7810 _m
/Times-BoldR 600 _ff
(3.2)_S 67 _t
/Times-RomanR 600 _ff
(4)_S 2017 7810 _m
([25/14])_S 2017 7577 _m
(replace)_S 67 _t
("Intrinsic)_S 67 _t
(data-types)_S 67 _t
(are")_S 67 _t
(by)_S 67 _t
("Data)_S 67 _t
(types)_S 67 _t
(may)_S 67 _t
(be")_S 1417 7111 _m
/Times-BoldR 600 _ff
(3.3)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 7111 _m
([33/3])_S 2017 6876 _m
(Add)_S 67 _t
(to)_S 67 _t
(end)_S 67 _t
(of)_S 67 _t
(R424)_S 67 _t
("[)_S /Times-ItalicR 600 _ff
(\(dummy-type-param-list\))_S /Times-RomanR 600 _ff
(]")_S 2017 6410 _m
(Add)_S 67 _t
(new)_S 67 _t
(rule)_S 1417 6175 _m
(R424.1)_S 134 _t
/Times-ItalicR 600 _ff
(dummy-type-param)_S /Times-RomanR 600 _ff
67 _t
4417 6175 _m
67 _t
/Times-BoldR 600 _ff
(is)_S /Times-RomanR 600 _ff
134 _t
5017 6175 _m
/Times-ItalicR 600 _ff
(type-param-name)_S /Times-RomanR 600 _ff
1417 5709 _m
/Times-BoldR 600 _ff
(3.4)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 5709 _m
([33/16])_S 2017 5476 _m
(Add)_S 67 _t
(following)_S 1417 5010 _m
(A)_S 62 _t
(dummy)_S 62 _t
(type)_S 62 _t
(parameter)_S 62 _t
(that)_S 62 _t
(is)_S 63 _t
(used)_S 62 _t
(to)_S 62 _t
(determine)_S 62 _t
(the)_S 62 _t
(actual)_S 62 _t
(value)_S 63 _t
(of)_S 62 _t
(a)_S 62 _t
(kind)_S 62 _t
(type)_S 63 _t
(parameter)_S 1417 4777 _m
(of)_S 70 _t
(a)_S 69 _t
(component)_S 70 _t
(is)_S 69 _t
(a)_S 70 _t
/Times-BoldR 600 _ff
(kind)_S 70 _t
(type)_S 69 _t
(parameter)_S /Times-RomanR 600 _ff
(.)_S 70 _t
(Any)_S 69 _t
(other)_S 70 _t
(dummy)_S 69 _t
(type)_S 70 _t
(parameter)_S 70 _t
(is)_S 69 _t
(a)_S 70 _t
/Times-BoldR 600 _ff
(nonkind)_S 1417 4544 _m
(type)_S 67 _t
(parameter)_S /Times-RomanR 600 _ff
(.)_S 1417 4078 _m
/Times-BoldR 600 _ff
(3.5)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 4078 _m
([33/26])_S 2017 3845 _m
(Add)_S 67 _t
(constraints)_S 1417 3610 _m
(Constraint:)_S 2617 3610 _m
(If)_S 85 _t
(the)_S 84 _t
/Times-ItalicR 600 _ff
(type-spec)_S /Times-RomanR 600 _ff
84 _t
(specifies)_S 84 _t
(a)_S 84 _t
(value)_S 84 _t
(for)_S 84 _t
(a)_S 84 _t
(kind)_S 85 _t
(type)_S 84 _t
(parameter,)_S 84 _t
(this)_S 84 _t
(must)_S 84 _t
(be)_S 84 _t
(a)_S 2617 3377 _m
(scalar)_S 93 _t
(integer)_S 92 _t
(initialisation)_S 93 _t
(expression,)_S 92 _t
(possibly)_S 185 _t
(involving)_S 93 _t
(as)_S 93 _t
(primaries)_S 92 _t
(the)_S 2617 3144 _m
(names)_S 133 _t
(of)_S 133 _t
(one)_S 133 _t
(or)_S 133 _t
(more)_S 133 _t
(dummy)_S 132 _t
(kind)_S 133 _t
(type)_S 133 _t
(parameters)_S 133 _t
(specified)_S 133 _t
(on)_S 132 _t
(the)_S 2617 2909 _m
/Times-ItalicR 600 _ff
(derived-type-stmt)_S /Times-RomanR 600 _ff
(.)_S 1417 2674 _m
(Constraint:)_S 2617 2674 _m
(If)_S 63 _t
(the)_S 62 _t
/Times-ItalicR 600 _ff
(type-spec)_S /Times-RomanR 600 _ff
63 _t
(specifies)_S 63 _t
(a)_S 62 _t
(value)_S 63 _t
(for)_S 63 _t
(a)_S 63 _t
(nonkind)_S 62 _t
(type)_S 63 _t
(parameter,)_S 63 _t
(this)_S 63 _t
(must)_S 62 _t
(be)_S 63 _t
(a)_S 2617 2441 _m
(scalar)_S 51 _t
(integer)_S 50 _t
(constant)_S 51 _t
(expression,)_S 50 _t
(possibly)_S 51 _t
(involving)_S 50 _t
(as)_S 51 _t
(primaries)_S 51 _t
(dummy)_S 50 _t
(type)_S 2617 2206 _m
(parameter)_S 67 _t
(names)_S 67 _t
(specified)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
/Times-ItalicR 600 _ff
(derived-type-stmt)_S /Times-RomanR 600 _ff
(.)_S 8857 1480 _m
/CourierR 600 _ff
(5)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12470 _m
/Times-BoldR 600 _ff
(3.6)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 12470 _m
([33/37])_S 2017 12237 _m
(Add)_S 74 _t
(at)_S 74 _t
(end)_S 74 _t
(of)_S 74 _t
(line)_S 74 _t
(",)_S 74 _t
(possibly)_S 74 _t
(involving)_S 74 _t
(as)_S 74 _t
(primaries)_S 74 _t
(dummy)_S 74 _t
(type)_S 74 _t
(parameter)_S 74 _t
(names)_S 1417 12002 _m
(specified)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
/Times-ItalicR 600 _ff
(derived-type-stmt)_S /Times-RomanR 600 _ff
(.")_S 1417 11536 _m
/Times-BoldR 600 _ff
(3.7)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 11536 _m
([33/38])_S 2017 11303 _m
(Add)_S 67 _t
(following)_S 67 _t
(paragraph)_S 1417 11070 _m
(If)_S 70 _t
(the)_S 70 _t
(type)_S 70 _t
(has)_S 71 _t
(type)_S 70 _t
(parameters,)_S 70 _t
(actual)_S 70 _t
(values)_S 70 _t
(for)_S 70 _t
(these)_S 71 _t
(must)_S 70 _t
(be)_S 70 _t
(specified)_S 70 _t
(when)_S 70 _t
(an)_S 70 _t
(entity)_S 71 _t
(of)_S 1417 10837 _m
(this)_S 55 _t
(type)_S 55 _t
(is)_S 54 _t
(declared)_S 55 _t
(or)_S 55 _t
(constructed.)_S 55 _t
(These)_S 55 _t
(values)_S 55 _t
(may)_S 54 _t
(be)_S 55 _t
(used)_S 55 _t
(via)_S 55 _t
(the)_S 55 _t
(associated)_S 55 _t
(dummy)_S 54 _t
(type)_S 1417 10604 _m
(parameter)_S 69 _t
(names)_S 70 _t
(to)_S 69 _t
(specify)_S 139 _t
(array)_S 70 _t
(bounds)_S 69 _t
(and)_S 70 _t
(type)_S 69 _t
(parameter)_S 70 _t
(values)_S 69 _t
(for)_S 70 _t
(components)_S 69 _t
(of)_S 70 _t
(the)_S 1417 10371 _m
(type.)_S 1417 9905 _m
/Times-BoldR 600 _ff
(3.8)_S 67 _t
/Times-RomanR 600 _ff
(4.4.1)_S 2617 9905 _m
([34/34])_S 2017 9672 _m
(Add)_S 67 _t
(following)_S 67 _t
(paragraph)_S 1417 9439 _m
(Examples)_S 67 _t
(of)_S 67 _t
(type)_S 67 _t
(definitions)_S 67 _t
(with)_S 67 _t
(type)_S 67 _t
(parameters)_S 67 _t
(are:)_S 1417 8981 _m
/CourierR 600 _ff
(TYPE)_S 120 _t
(VECTOR\(WP,)_S 120 _t
(ORDER\))_S 1417 8781 _m
120 _t
120 _t
(REAL\(KIND=WP\))_S 120 _t
(::)_S 120 _t
(comp\(1:ORDER\))_S 1417 8581 _m
(ENDTYPE)_S 120 _t
(VECTOR)_S /Times-RomanR 600 _ff
1417 8140 _m
(Objects)_S 67 _t
(of)_S 67 _t
(type)_S 67 _t
(VECTOR)_S 67 _t
(could)_S 67 _t
(be)_S 67 _t
(declared:)_S 1417 7682 _m
/CourierR 600 _ff
(TYPE\(VECTOR\(WP=KIND\(0.0\),ORDER=3\)\))_S 120 _t
(::)_S 120 _t
(rotation)_S 1417 7482 _m
(TYPE\(VECTOR\(WP=KIND\(0.0D0\),ORDER=100\)\))_S 120 _t
(::)_S 120 _t
(steepest)_S /Times-RomanR 600 _ff
1417 7041 _m
(The)_S 47 _t
(scalar)_S 47 _t
(variable)_S 47 _t
/CourierR 600 _ff
(rotation)_S /Times-RomanR 600 _ff
47 _t
(is)_S 47 _t
(a)_S 48 _t
(three-vector)_S 47 _t
(with)_S 47 _t
(each)_S 47 _t
(component)_S 47 _t
(represented)_S 47 _t
(by)_S 47 _t
(a)_S 48 _t
(default)_S 1417 6808 _m
(real.)_S 70 _t
(The)_S 69 _t
(scalar)_S 70 _t
(vector)_S 69 _t
/CourierR 600 _ff
(steepest)_S /Times-RomanR 600 _ff
70 _t
(is)_S 69 _t
(vector)_S 70 _t
(in)_S 69 _t
(a)_S 70 _t
(100)_S 70 _t
(dimension)_S 69 _t
(space)_S 70 _t
(and)_S 69 _t
(each)_S 70 _t
(component)_S 1417 6575 _m
(is)_S 67 _t
(represented)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(double)_S 67 _t
(precision)_S 134 _t
(real.)_S 1417 6109 _m
(For)_S 67 _t
(each)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(specified)_S 67 _t
(there)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(value)_S 67 _t
(selector)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(form,)_S 1417 5641 _m
(R429.1)_S 2617 5641 _m
/Times-ItalicR 600 _ff
(type-param-value-selector)_S 5017 5641 _m
/Times-BoldR 600 _ff
(is)_S /Times-RomanR 600 _ff
5617 5641 _m
/Times-ItalicR 600 _ff
(expr)_S /Times-RomanR 600 _ff
67 _t
(%%)_S 67 _t
/Times-ItalicR 600 _ff
(type-param-name)_S /Times-RomanR 600 _ff
67 _t
1417 5173 _m
(Constraint:)_S 2617 5173 _m
(The)_S 80 _t
/Times-ItalicR 600 _ff
(expr)_S /Times-RomanR 600 _ff
80 _t
(must)_S 80 _t
(evaluate)_S 79 _t
(to)_S 80 _t
(a)_S 80 _t
(value)_S 80 _t
(of)_S 79 _t
(a)_S 80 _t
(type)_S 80 _t
(that)_S 80 _t
(has)_S 80 _t
/Times-ItalicR 600 _ff
(type-param-name)_S 79 _t
/Times-RomanR 600 _ff
(as)_S 80 _t
(a)_S 2617 4940 _m
(parameter.)_S 1417 4474 _m
(The)_S 50 _t
(type)_S 50 _t
(parameter)_S 51 _t
(selector)_S 50 _t
(delivers)_S 50 _t
(the)_S 50 _t
(value)_S 50 _t
(of)_S 50 _t
(the)_S 50 _t
(named)_S 50 _t
(type)_S 50 _t
(parameter)_S 50 _t
(for)_S 50 _t
(the)_S 50 _t
(expression,)_S 1417 4241 _m
(for)_S 59 _t
(example,)_S 60 _t
/CourierR 600 _ff
(rotation%%WP)_S /Times-RomanR 600 _ff
60 _t
(would)_S 59 _t
(evaluate)_S 60 _t
(to)_S 59 _t
(4)_S 60 _t
(on)_S 59 _t
(a)_S 60 _t
(system)_S 60 _t
(where)_S 60 _t
(4)_S 59 _t
(was)_S 60 _t
(the)_S 59 _t
(default)_S 60 _t
(real)_S 1417 4008 _m
(kind)_S 67 _t
(and)_S 67 _t
/CourierR 600 _ff
(steepest%%ORDER)_S 120 _t
/Times-RomanR 600 _ff
(would)_S 67 _t
(evaluate)_S 67 _t
(to)_S 67 _t
(100.)_S 67 _t
1417 3542 _m
/Times-BoldR 600 _ff
(3.9)_S 67 _t
/Times-RomanR 600 _ff
(4.4.4)_S 2617 3542 _m
([37/3])_S 2017 3309 _m
(Replace)_S 67 _t
("value)_S 67 _t
(of")_S 67 _t
(by)_S 67 _t
("value)_S 67 _t
(of)_S 67 _t
(the")_S 1417 2843 _m
/Times-BoldR 600 _ff
(3.10)_S 67 _t
/Times-RomanR 600 _ff
(4.4.4)_S 2617 2843 _m
([37/5])_S 2017 2608 _m
(Replace)_S 67 _t
(")_S /Times-ItalicR 600 _ff
(expr-list)_S /Times-RomanR 600 _ff
(")_S 67 _t
(by)_S 67 _t
(")_S /Times-ItalicR 600 _ff
(expr-list)_S /Times-RomanR 600 _ff
([,)_S /Times-ItalicR 600 _ff
(type-param-expr-list)_S /Times-RomanR 600 _ff
(]")_S 2017 2375 _m
(Add)_S 67 _t
(constraint)_S 1417 1480 _m
/CourierR 600 _ff
(6)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12468 _m
(Constraint:)_S 2617 12468 _m
(If)_S 67 _t
(the)_S 67 _t
(derived)_S 66 _t
(type)_S 67 _t
(has)_S 67 _t
(one)_S 67 _t
(or)_S 66 _t
(more)_S 67 _t
(type)_S 67 _t
(parameters,)_S 66 _t
(the)_S 67 _t
/Times-ItalicR 600 _ff
(type-param-expr-list)_S /Times-RomanR 600 _ff
2617 12235 _m
(must)_S 65 _t
(be)_S 65 _t
(present)_S 65 _t
(with)_S 65 _t
(the)_S 65 _t
(same)_S 65 _t
(number)_S 65 _t
(of)_S 65 _t
(expressions.)_S 65 _t
(If)_S 65 _t
(the)_S 65 _t
(derived)_S 65 _t
(type)_S 64 _t
(has)_S 2617 12000 _m
(no)_S 67 _t
(parameters,)_S 134 _t
(the)_S 67 _t
/Times-ItalicR 600 _ff
(type-param-expr-list)_S /Times-RomanR 600 _ff
67 _t
(must)_S 67 _t
(not)_S 67 _t
(be)_S 67 _t
(present.)_S 1417 11767 _m
(Constraint:)_S 2617 11767 _m
(If)_S 64 _t
(the)_S 64 _t
(derived)_S 64 _t
(type)_S 63 _t
(has)_S 64 _t
(one)_S 64 _t
(or)_S 64 _t
(more)_S 64 _t
(kind)_S 64 _t
(type)_S 64 _t
(parameters,)_S 64 _t
(each)_S 64 _t
(corresponding)_S 2617 11532 _m
/Times-ItalicR 600 _ff
(type-param-expr)_S /Times-RomanR 600 _ff
67 _t
(must)_S 67 _t
(be)_S 67 _t
(an)_S 67 _t
(initialisation)_S 67 _t
(expression.)_S 1417 11066 _m
/Times-BoldR 600 _ff
(3.11)_S 67 _t
/Times-RomanR 600 _ff
(4.4.4)_S 2617 11066 _m
([37/10])_S 2017 10833 _m
(Before)_S 67 _t
("A)_S 67 _t
(structure")_S 67 _t
(add)_S 1417 10600 _m
(The)_S 57 _t
(type)_S 57 _t
(parameter)_S 57 _t
(expressions,)_S 56 _t
(if)_S 57 _t
(present,)_S 57 _t
(provide)_S 57 _t
(values)_S 57 _t
(for)_S 56 _t
(the)_S 57 _t
(type)_S 57 _t
(parameters)_S 57 _t
(of)_S 57 _t
(the)_S 56 _t
(type)_S 1417 10367 _m
(and)_S 67 _t
(hence)_S 67 _t
(control)_S 67 _t
(the)_S 67 _t
(shapes)_S 67 _t
(and)_S 67 _t
(type)_S 67 _t
(parameters)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(components.)_S 1417 9901 _m
/Times-BoldR 600 _ff
(3.12)_S 67 _t
/Times-RomanR 600 _ff
(4.4.4)_S 2617 9901 _m
([37/16])_S 2017 9668 _m
(Add)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(paragraph)_S 1417 9435 _m
(An)_S 67 _t
(example)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(constructor)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(parameterised)_S 67 _t
(type)_S 67 _t
(is:)_S 1417 8977 _m
/CourierR 600 _ff
(VECTOR\(0.0,KIND\(0.0D0\),3\))_S /Times-RomanR 600 _ff
1417 8536 _m
(This)_S 56 _t
(would)_S 56 _t
(construct)_S 55 _t
(a)_S 56 _t
(three-vector)_S 55 _t
(whose)_S 56 _t
(components)_S 56 _t
(were)_S 55 _t
(all)_S 56 _t
(zero)_S 56 _t
(and)_S 55 _t
(of)_S 56 _t
(double)_S 55 _t
(precision.)_S 1417 8070 _m
/Times-BoldR 600 _ff
(3.13)_S 67 _t
/Times-RomanR 600 _ff
(5.1)_S 2617 8070 _m
([39/24])_S 2017 7835 _m
(Replace)_S 67 _t
(")_S /Times-ItalicR 600 _ff
(type-name)_S /Times-RomanR 600 _ff
(")_S 67 _t
(by)_S 67 _t
(")_S /Times-ItalicR 600 _ff
(type-name)_S /Times-RomanR 600 _ff
([)_S /Times-ItalicR 600 _ff
(type-selector)_S /Times-RomanR 600 _ff
(]")_S 1417 7369 _m
/Times-BoldR 600 _ff
(3.14)_S 67 _t
/Times-RomanR 600 _ff
(5.1)_S 2617 7369 _m
([39/39])_S 2017 7136 _m
(Add)_S 67 _t
(constraint)_S 1417 6901 _m
(Constraint:)_S 2617 6901 _m
(The)_S 55 _t
/Times-ItalicR 600 _ff
(type-selector)_S /Times-RomanR 600 _ff
55 _t
(must)_S 55 _t
(appear)_S 55 _t
(if)_S 55 _t
(the)_S 55 _t
(type)_S 56 _t
(is)_S 55 _t
(parameterised)_S 55 _t
(and)_S 55 _t
(must)_S 55 _t
(not)_S 55 _t
(appear)_S 2617 6668 _m
(otherwise.)_S 1417 6202 _m
/Times-BoldR 600 _ff
(3.15)_S 67 _t
/Times-RomanR 600 _ff
(5.1.1.7)_S 2617 6202 _m
([43/23])_S 2017 5969 _m
(Add)_S 67 _t
(rules)_S 67 _t
(and)_S 67 _t
(constraints)_S 1417 5734 _m
(R509.1)_S 2617 5734 _m
/Times-ItalicR 600 _ff
(type-selector)_S /Times-RomanR 600 _ff
67 _t
3817 5734 _m
(is)_S 67 _t
4417 5734 _m
(\()_S /Times-ItalicR 600 _ff
(type-param-selector-list)_S /Times-RomanR 600 _ff
(\))_S 1417 5266 _m
(R509.2)_S 2617 5266 _m
/Times-ItalicR 600 _ff
(type-param-selector)_S /Times-RomanR 600 _ff
67 _t
4417 5266 _m
(is)_S 67 _t
5017 5266 _m
([)_S /Times-ItalicR 600 _ff
(type-param-name)_S /Times-RomanR 600 _ff
(=])_S /Times-ItalicR 600 _ff
(type-param-expr)_S /Times-RomanR 600 _ff
1417 4798 _m
(R509.3)_S 2617 4798 _m
/Times-ItalicR 600 _ff
(type-param-expr)_S /Times-RomanR 600 _ff
4417 4798 _m
67 _t
(is)_S 67 _t
5017 4798 _m
/Times-ItalicR 600 _ff
(scalar-int-initialisation-expr)_S /Times-RomanR 600 _ff
4417 4563 _m
67 _t
(or)_S 67 _t
5017 4563 _m
/Times-ItalicR 600 _ff
(type-param-value)_S /Times-RomanR 600 _ff
1417 4095 _m
(Constraint:)_S 2617 4095 _m
(There)_S 81 _t
(must)_S 80 _t
(be)_S 81 _t
(one)_S 81 _t
(and)_S 80 _t
(only)_S 81 _t
(one)_S 81 _t
/Times-ItalicR 600 _ff
(type-param-selector)_S /Times-RomanR 600 _ff
80 _t
(corresponding)_S 81 _t
(to)_S 80 _t
(each)_S 2617 3862 _m
(type)_S 67 _t
(parameter)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(type.)_S 1417 3394 _m
(Constraint:)_S 2617 3394 _m
(The)_S 197 _t
/Times-ItalicR 600 _ff
(type-param-expr)_S /Times-RomanR 600 _ff
198 _t
(must)_S 197 _t
(be)_S 198 _t
(a)_S 198 _t
/Times-ItalicR 600 _ff
(scalar-int-initialisation-expr)_S /Times-RomanR 600 _ff
197 _t
(if)_S 198 _t
(the)_S 2617 3161 _m
(corresponding)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(kind)_S 67 _t
(type)_S 67 _t
(parameter.)_S 1417 2693 _m
(Constraint:)_S 2617 2693 _m
(The)_S 85 _t
/Times-ItalicR 600 _ff
(type-param-name)_S /Times-RomanR 600 _ff
(=)_S 85 _t
(may)_S 85 _t
(be)_S 85 _t
(omitted)_S 85 _t
(if)_S 86 _t
(it)_S 85 _t
(was)_S 85 _t
(omitted)_S 85 _t
(from)_S 85 _t
(all)_S 86 _t
(previous)_S 2617 2458 _m
/Times-ItalicR 600 _ff
(type-param-selector)_S /Times-RomanR 600 _ff
67 _t
(in)_S 67 _t
(the)_S 67 _t
(list.)_S 8857 1480 _m
/CourierR 600 _ff
(7)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 1417 12470 _m
(The)_S 71 _t
(type)_S 71 _t
(selector,)_S 71 _t
(if)_S 70 _t
(present,)_S 71 _t
(specifies)_S 71 _t
(values)_S 71 _t
(for)_S 71 _t
(the)_S 70 _t
(type)_S 71 _t
(parameters)_S 71 _t
(of)_S 71 _t
(the)_S 71 _t
(type)_S 70 _t
(and)_S 71 _t
(hence)_S 1417 12237 _m
(the)_S 67 _t
(type)_S 67 _t
(parameters)_S 67 _t
(and)_S 67 _t
(shapes)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(components)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(type.)_S 1417 11769 _m
/Times-ItalicR 600 _ff
({{{{Note)_S 57 _t
(for)_S 58 _t
(the)_S 58 _t
(editor:)_S 58 _t
(The)_S 57 _t
(rules)_S 58 _t
(associated)_S 58 _t
(with)_S 58 _t
(type-param-values,)_S 57 _t
(in)_S 58 _t
(particular)_S 58 _t
(automatic)_S 1417 11536 _m
(and)_S 67 _t
(assumed)_S 67 _t
(type)_S 67 _t
(parameters,)_S 67 _t
(appear)_S 67 _t
(to)_S 67 _t
(be)_S 68 _t
(covered)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(description)_S 67 _t
(for)_S 67 _t
(character)_S 67 _t
(length.)_S 1417 11303 _m
(A)_S 60 _t
(reordering)_S 60 _t
(of)_S 60 _t
(this)_S 60 _t
(material)_S 60 _t
(might)_S 60 _t
(read)_S 60 _t
(better)_S 60 _t
(but)_S 60 _t
(I)_S 60 _t
(think)_S 60 _t
(the)_S 60 _t
(current)_S 60 _t
(text)_S 60 _t
(is)_S 60 _t
(actually)_S 60 _t
(correct)_S 1417 11070 _m
(even)_S 104 _t
(though)_S 104 _t
(it)_S 104 _t
(now)_S 104 _t
(has)_S 105 _t
(extended)_S 104 _t
(effect.)_S 104 _t
(It)_S 104 _t
(is)_S 104 _t
(probably)_S 104 _t
(now)_S 104 _t
(in)_S 104 _t
(the)_S 105 _t
(wrong)_S 104 _t
(place)_S 104 _t
(in)_S 104 _t
(the)_S 1417 10837 _m
(chapter.}}}})_S /Times-RomanR 600 _ff
1417 10373 _m
/Times-BoldR 600 _ff
(3.16)_S 67 _t
/Times-RomanR 600 _ff
(5.5.2.3)_S 2617 10373 _m
([59/37])_S 2017 10140 _m
(After)_S 67 _t
("type")_S 67 _t
(add)_S 67 _t
("and)_S 67 _t
(type)_S 67 _t
(parameters")_S 1417 9441 _m
/Times-BoldR 600 _ff
(3.17)_S 67 _t
/Times-RomanR 600 _ff
(7.1.4.2)_S 2617 9441 _m
([76/24])_S 2017 9208 _m
(After)_S 67 _t
(the)_S 67 _t
(second)_S 67 _t
("The)_S 67 _t
(type")_S 67 _t
(add)_S 67 _t
("and)_S 67 _t
(type)_S 67 _t
(parameters.")_S 1417 8742 _m
/Times-BoldR 600 _ff
(3.18)_S 67 _t
/Times-RomanR 600 _ff
(7.1.6.1)_S 2617 8742 _m
([77/25)_S 67 _t
(&)_S 67 _t
(78/7)_S 67 _t
(])_S 2017 8509 _m
(After)_S 67 _t
("KIND")_S 67 _t
(add)_S 2017 8276 _m
(",)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(value)_S 67 _t
(selector")_S 1417 7810 _m
/Times-BoldR 600 _ff
(3.19)_S 67 _t
/Times-RomanR 600 _ff
(7.1.6.2)_S 2617 7810 _m
([79/12])_S 2017 7577 _m
(After)_S 67 _t
("KIND")_S 67 _t
(add)_S 2017 7344 _m
(",)_S 67 _t
(a)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(value)_S 67 _t
(selector")_S 1417 6876 _m
/Times-ItalicR 600 _ff
({{{{Note)_S 59 _t
(for)_S 60 _t
(the)_S 59 _t
(editor:)_S 60 _t
(Given)_S 60 _t
(the)_S 59 _t
(difficulty)_S 60 _t
(with)_S 60 _t
(this)_S 59 _t
(text)_S 60 _t
(and)_S 59 _t
(the)_S 60 _t
(fact)_S 59 _t
(that)_S 60 _t
(it)_S 60 _t
(is)_S 59 _t
(the)_S 60 _t
(process)_S 60 _t
(of)_S 1417 6643 _m
(being)_S 70 _t
(totally)_S 70 _t
(rewritten)_S 70 _t
(these)_S 69 _t
(above)_S 70 _t
(edits)_S 70 _t
(may)_S 70 _t
(well)_S 69 _t
(not)_S 70 _t
(be)_S 70 _t
(appropriate)_S 70 _t
(or)_S 70 _t
(correct.)_S 69 _t
(The)_S 70 _t
(intent)_S 1417 6410 _m
(is)_S 52 _t
(to)_S 53 _t
(allow)_S 52 _t
(type)_S 52 _t
(parameter)_S 53 _t
(value)_S 52 _t
(selectors)_S 53 _t
(in)_S 52 _t
(initialisation)_S 53 _t
(and)_S 52 _t
(specification)_S 53 _t
(expressions)_S 52 _t
(in)_S 53 _t
(the)_S 1417 6177 _m
(same)_S 67 _t
(way)_S 67 _t
(as)_S 67 _t
(for)_S 67 _t
(KIND\(\))_S 67 _t
(and)_S 67 _t
(LEN\(\),)_S 67 _t
(in)_S 67 _t
(particular)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(possible)_S 67 _t
(to)_S 67 _t
(write)_S 1417 5944 _m
(FUNCTION)_S 67 _t
(F\(v\))_S 1417 5711 _m
(TYPE\(VECTOR\(WP=4,ORD=*\)\)::)_S 67 _t
(v)_S 1417 5478 _m
(TYPE\(VECTOR\(WP=v%%WP,ORD=v%%ORD\)\)::F)_S 1417 5245 _m
(where)_S 67 _t
(this)_S 67 _t
(has)_S 67 _t
(the)_S 67 _t
(obvious)_S 67 _t
(meaning.}}}})_S /Times-RomanR 600 _ff
134 _t
1417 4779 _m
/Times-BoldR 600 _ff
(3.20)_S 67 _t
/Times-RomanR 600 _ff
(7.1.7)_S 3217 4779 _m
([80/29])_S 2017 4546 _m
(Add)_S 67 _t
(paragraph)_S 1417 4313 _m
(The)_S 45 _t
(appearance)_S 45 _t
(of)_S 45 _t
(a)_S 45 _t
(structure)_S 45 _t
(constructor)_S 45 _t
(requires)_S 45 _t
(the)_S 45 _t
(evaluation)_S 45 _t
(of)_S 45 _t
(the)_S 45 _t
(component)_S 45 _t
(expressions)_S 1417 4080 _m
(and)_S 69 _t
(may)_S 69 _t
(require)_S 70 _t
(the)_S 69 _t
(evaluation)_S 69 _t
(of)_S 69 _t
(type)_S 69 _t
(parameter)_S 69 _t
(expressions.)_S 69 _t
(The)_S 69 _t
(type)_S 69 _t
(of)_S 69 _t
(an)_S 69 _t
(expression)_S 69 _t
(in)_S 1417 3847 _m
(which)_S 71 _t
(a)_S 71 _t
(structure)_S 71 _t
(constructor)_S 71 _t
(appears)_S 71 _t
(does)_S 71 _t
(not)_S 71 _t
(affect,)_S 71 _t
(and)_S 71 _t
(is)_S 71 _t
(not)_S 71 _t
(effected)_S 72 _t
(by,)_S 71 _t
(the)_S 71 _t
(evaluation)_S 1417 3614 _m
(of)_S 104 _t
(such)_S 104 _t
(expressions,)_S 105 _t
(except)_S 104 _t
(that)_S 104 _t
(evaluation)_S 105 _t
(of)_S 104 _t
(the)_S 104 _t
(kind)_S 105 _t
(type)_S 104 _t
(parameters)_S 104 _t
(may)_S 104 _t
(affect)_S 105 _t
(the)_S 1417 3381 _m
(resolution)_S 63 _t
(of)_S 62 _t
(a)_S 63 _t
(generic)_S 63 _t
(reference)_S 62 _t
(to)_S 63 _t
(a)_S 63 _t
(defined)_S 62 _t
(operation)_S 63 _t
(or)_S 63 _t
(function)_S 62 _t
(and)_S 63 _t
(hence)_S 63 _t
(may)_S 63 _t
(affect)_S 62 _t
(the)_S 1417 3148 _m
(expression)_S 67 _t
(type.)_S 1417 2682 _m
/Times-BoldR 600 _ff
(3.21)_S 67 _t
/Times-RomanR 600 _ff
(7.5.1.2)_S 2617 2682 _m
([89/28])_S 2017 2449 _m
(Replace)_S 67 _t
("type,")_S 67 _t
(by)_S 67 _t
("type)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(values,")_S 1417 1983 _m
/Times-BoldR 600 _ff
(3.22)_S 67 _t
/Times-RomanR 600 _ff
(7.5.1.2)_S 2617 1983 _m
([89/41])_S 1417 1480 _m
/CourierR 600 _ff
(8)_S /Times-RomanR 600 _ff
_ep
_bp /Times-RomanR 600 _ff
0 14032 9922 _ornt 
/_r      { sflg {/_t {0 rmoveto}bdef /ron false def}
         { /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
     }bdef
currentpoint 0 -832 _tr _m 2017 12470 _m
(Replace)_S 67 _t
("type)_S 67 _t
(as")_S 67 _t
(by)_S 67 _t
("type)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(type)_S 67 _t
(parameter)_S 67 _t
(values)_S 67 _t
(as")_S 1417 12004 _m
/Times-BoldR 600 _ff
(3.23)_S 67 _t
/Times-RomanR 600 _ff
(12.2.1.1)_S 2617 12004 _m
([166/6])_S 2017 11771 _m
(Replace)_S 67 _t
("or)_S 67 _t
(character)_S 67 _t
(length")_S 67 _t
(by)_S 67 _t
(")_S 67 _t
(character)_S 67 _t
(length,)_S 67 _t
(or)_S 67 _t
(nonkind)_S 67 _t
(type)_S 67 _t
(parameter")_S 1417 11305 _m
/Times-BoldR 600 _ff
(3.24)_S 67 _t
/Times-RomanR 600 _ff
(12.3.1.1)_S 2617 11305 _m
([167/2])_S 2017 11072 _m
(Replace)_S 47 _t
("that")_S 47 _t
(by)_S 47 _t
("that)_S 47 _t
(assumes)_S 47 _t
(the)_S 47 _t
(value)_S 47 _t
(for)_S 47 _t
(a)_S 47 _t
(nonkind)_S 47 _t
(derived)_S 47 _t
(type)_S 47 _t
(parameter)_S 47 _t
(or)_S 46 _t
(that")_S 1417 10839 _m
67 _t
1417 10606 _m
/Times-BoldR 600 _ff
(3.25)_S 67 _t
/Times-RomanR 600 _ff
(12.3.1.1)_S 2617 10606 _m
([167/4])_S 2017 10373 _m
(Add)_S 67 _t
(additional)_S 67 _t
(item)_S 67 _t
(to)_S 67 _t
(list)_S 67 _t
(and)_S 67 _t
(renumber)_S 67 _t
(list)_S 2017 10140 _m
(\(e\))_S 2617 10140 _m
(A)_S 55 _t
(result)_S 55 _t
(with)_S 55 _t
(a)_S 55 _t
(nonconstant)_S 55 _t
(type)_S 55 _t
(parameter)_S 56 _t
(value)_S 55 _t
(\(derived)_S 55 _t
(type)_S 55 _t
(functions)_S 55 _t
(only\))_S 1417 9674 _m
/Times-BoldR 600 _ff
(3.26)_S 67 _t
/Times-RomanR 600 _ff
(12.4.1.1)_S 2617 9674 _m
([172/41])_S 2017 9441 _m
(Add)_S 67 _t
(sentence)_S 1417 9208 _m
(The)_S 66 _t
(value)_S 67 _t
(of)_S 66 _t
(a)_S 66 _t
(type)_S 67 _t
(parameters)_S 66 _t
(of)_S 67 _t
(an)_S 66 _t
(actual)_S 66 _t
(argument)_S 67 _t
(of)_S 66 _t
(a)_S 67 _t
(derived)_S 66 _t
(type)_S 67 _t
(must)_S 66 _t
(agree)_S 67 _t
(with)_S 66 _t
(the)_S 1417 8975 _m
(corresponding)_S 67 _t
(value)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(dummy)_S 67 _t
(argument.)_S 1417 8509 _m
/Times-BoldR 600 _ff
(3.27)_S 67 _t
/Times-RomanR 600 _ff
(14.1.2)_S 2617 8509 _m
([241/26])_S 2017 8276 _m
(Replace)_S 67 _t
(",)_S 67 _t
(in")_S 67 _t
(by)_S 67 _t
(")_S 67 _t
(and)_S 67 _t
(type)_S 67 _t
(parameters,)_S 67 _t
(in")_S 1417 7314 _m
/Times-BoldR 720 _ff
(4)_S 80 _t
(Proposal)_S /Times-RomanR 600 _ff
1417 7071 _m
(That)_S 76 _t
(facilities)_S 76 _t
(for)_S 76 _t
(parameterising)_S 76 _t
(derived)_S 76 _t
(types)_S 76 _t
(as)_S 76 _t
(set)_S 76 _t
(out)_S 76 _t
(above)_S 75 _t
(be)_S 76 _t
(added)_S 76 _t
(to)_S 76 _t
(Fortran)_S 76 _t
(at)_S 76 _t
(the)_S 1417 6838 _m
(1995)_S 67 _t
(revision.)_S 1417 6605 _m
67 _t
8857 1480 _m
/CourierR 600 _ff
(9)_S /Times-RomanR 600 _ff
_ep
_ed end end
%-12345X

---------------------------------------------------------------------

-- 
Dr.J.L.Schonfelder
Director, Computing Services Dept.
University of Liverpool, UK
Phone: +44(51)794 3716
FAX  : +44(51)794 3759
email: jls@liv.ac.uk   

