Declarers and the type-system

Elan has a constructive type system based on four concrete elementary types and two mechanisms for composing types, and gives to its users the opportunity to add further (abstract) types.

(315,160)<#4625#> (000,150)<#4428#>type-declarer<#4428#> 109 (005,120)<#3404#>(20,20)[rt]<#3404#> (015,120)<#4429#>(0,-1)<#3405#>100<#3405#><#4429#> 110 (000,130)<#4430#>(1,0)<#3406#>110<#3406#><#5084#>#tex2html_wrap6607#(060,010)<#5085#>type-name<#5085#><#5084#> (1,0)<#3409#>110<#3409#><#4430#> 111 (025,120)<#3410#>(20,20)[lb]<#3410#> (025,110)<#4431#>(1,0)<#3411#>095<#3411#> <#5091#>(040,010)<#5094#>INT<#5094#><#5091#> (040,010) (1,0)<#3414#>095<#3414#><#4431#> (255,120)<#3415#>(20,20)[rb]<#3415#> 112 (025,100)<#3416#>(20,20)[lb]<#3416#> (025,090)<#4432#>(1,0)<#3417#>095<#3417#> <#5100#>(040,010)<#5103#>REAL<#5103#><#5100#> (040,010) (1,0)<#3420#>095<#3420#><#4432#> (255,100)<#3421#>(20,20)[rb]<#3421#> 113 (025,080)<#3422#>(20,20)[lb]<#3422#> (025,070)<#4433#>(1,0)<#3423#>095<#3423#> <#5109#>(040,010)<#5112#>BOOL<#5112#><#5109#> (040,010) (1,0)<#3426#>095<#3426#><#4433#> (255,080)<#3427#>(20,20)[rb]<#3427#> 114 (025,060)<#3428#>(20,20)[lb]<#3428#> (025,050)<#4434#>(1,0)<#3429#>095<#3429#> <#5118#>(040,010)<#5121#>TEXT<#5121#><#5118#> (040,010) (1,0)<#3432#>095<#3432#><#4434#> (255,060)<#3433#>(20,20)[rb]<#3433#> 115 (025,040)<#3434#>(20,20)[lb]<#3434#> (025,030)<#4435#>(1,0)<#3435#>005<#3435#> <#5127#>(040,010)<#5130#>ROW<#5130#><#5127#> (040,010) (1,0)<#3438#>030<#3438#><#5132#>#tex2html_wrap6641#(060,010)<#5133#>cardinality<#5133#><#5132#> (1,0)<#3441#>030<#3441#><#5135#>#tex2html_wrap6645#(060,010)<#5136#>type-declarer<#5136#><#5135#> (1,0)<#3444#>005<#3444#><#4435#> (255,040)<#3445#>(20,20)[rb]<#3445#> 116 (025,020)<#3446#>(20,20)[lb]<#3446#> (025,010)<#4436#>(1,0)<#3447#>020<#3447#> <#5142#>(040,010)<#5145#>STRUCT<#5145#><#5142#> (040,010) (1,0)<#3450#>030<#3450#> <#5151#>(010,010)<#5154#>(<#5154#><#5151#> (010,010) (1,0)<#3453#>030<#3453#><#5156#>#tex2html_wrap6661#(040,010)<#5157#>fields<#5157#><#5156#> (1,0)<#3456#>030<#3456#> <#5163#>(010,010)<#5166#>)<#5166#><#5163#> (010,010) (1,0)<#3459#>020<#3459#><#4436#> (255,020)<#3460#>(20,20)[rb]<#3460#> 117 (265,020)<#4437#>(0,1)<#3461#>100<#3461#><#4437#> (275,120)<#3462#>(20,20)[lt]<#3462#> 118 <#4625#>