\begin{theindex}
\indexspace
\item $A$
\item abstract data type 23, 32
\subitem polymorphic $\sim$ 23
\subitem semi-$\sim$ 23
\item ADT 23
\item alphanumeric identifier 4
\item {\bf and} 9
\item {\bf andif} 27
\item anonymous binding 12
\item anonymous identifier 10
\item anonymous variable 25
\item application programming 3
\item array 31
\subitem $\sim$ index bound 31
\subitem $\sim$ indexing 31
\item {\bf array} 31
\item assignment 25
\indexspace
\item $B$
\item base type 5
\item {\bf begin} 6, 27
\item binding 6, 31, 48
\subitem anonymous $\sim$ 7
\subitem dynamic $\sim$ 7
\subitem function $\sim$ 8
\subitem recursive $\sim$ 7
\subitem repetition of $\sim$ 17
\subitem sequential $\sim$ 6
\subitem simultaneous $\sim$ 6
\subitem static $\sim$ 6
\subitem value $\sim$ 6
\item block 6, 27
\item bound object 6
\item bounded parametric polymorphism 20
\item bracket 4, 9
\indexspace
\item $C$
\item C 38
\item C function 38
\item C library 38
\item call by reference 25, 40
\item call by value 25
\item callback 40
\item capitalization 42
\item {\bf case} 11, 12
\item case analysis 12
\subitem complete $\sim$ 12
\subitem incomplete $\sim$ 12
\item {\bf case of} 12
\item character set 3
\item checkpoint 37
\item coercion 5
\item comment 4, 44
\subitem interface $\sim$ 44
\subitem module $\sim$ 44
\subitem multiline $\sim$ 44
\item compilation unit 48
\item conditional expression 27
\item constant definition 24
\item contravariance rule 18
\item control structure 26
\item convention 4, 42
\item copy-in 40
\item copy-out 39, 40
\item covariance relationship 18
\item currying 10
\item cyclic dependency 36
\indexspace
\item $D$
\item data modeling 3
\item data-intensive application 15
\item declaration
\subitem global $\sim$ 6
\subitem local $\sim$ 6
\item {\bf do} 28
\item dot notation 11, 12, 13, 36
\item {\bf downto} 29
\item {\bf Dyn} 15
\item dynamic binding 7
\item dynamic type 15
\indexspace
\item $E$
\item {\bf else} 13, 27
\item {\bf elsif} 27
\item encapsulation 32
\subitem functional $\sim$ 32
\subitem imperative $\sim$ 33
\subitem method-based $\sim$ 34
\subitem object-oriented $\sim$ 32
\item enumeration type 12
\item equality sign 9
\item equality test 9
\item evaluation 5
\item exception 29, 52
\subitem $\sim$ argument 29
\subitem $\sim$ handling 29
\subitem $\sim$ package 29
\subitem $\sim$ propagation 30
\subitem $\sim$ raising 29
\subitem $\sim$ reraising 30
\subitem $\sim$ signature 29
\subitem $\sim$ type 29
\subitem standard $\sim$ 29
\subitem user-defined $\sim$ 29
\item {\bf Exception} 29
\item {\bf exception} 29
\item {\bf exit} 28, 30
\item export 35
\item {\bf export} 35
\item expression 6
\item {\bf extend} 13
\item external function 38
\item external language 38
\item external library 38
\indexspace
\item $F$
\item factoring rule 8
\item field name 11
\subitem anonymous $\sim$ 11
\subitem non-anonymous $\sim$ 11
\item first class object 35
\item {\bf for} 28
\item formal parameter 7
\item formatting convention 42
\item {\bf Fun} 9
\item {\bf fun} 7
\item function 7
\subitem anonymous $\sim$ 10
\subitem external $\sim$ 38
\subitem $\sim$ abstraction 7
\subitem $\sim$ application 8, 10, 19
\subitem $\sim$ as parameter 10
\subitem $\sim$ as result 10
\subitem $\sim$ as tuple field 11
\subitem $\sim$ binding 8
\subitem $\sim$ body 7
\subitem $\sim$ on type level 19
\subitem $\sim$ overriding 26
\subitem $\sim$ result 8
\subitem $\sim$ result type 9
\subitem $\sim$ signature 9
\subitem generic $\sim$ 19
\subitem higher-order $\sim$ 10
\subitem polymorphic $\sim$ 19
\subitem recursive $\sim$ 9
\subitem simple $\sim$ 7
\item function type 9
\subitem subtyping on $\sim$s 18
\item functional programming 3
\indexspace
\item $G$
\item garbage collector 38
\item generic code 22
\item generic function 19
\indexspace
\item $H$
\item heterogeneous data structure 18
\item {\bf hide} 37
\item higher-order function 10
\indexspace
\item $I$
\item identifier 4, 50
\subitem global $\sim$ 6
\subitem local $\sim$ 6
\subitem use of $\sim$ 6
\subitem user-defined $\sim$ 6
\item identity test 9
\item {\bf if} 27
\item imperative programming 3, 24
\item import 35
\subitem $\sim$ed interface 35
\subitem $\sim$ed module 35
\item {\bf import} 35
\item indentation 43
\item infix notation 8, 22
\item infix operator 8, 22, 51
\item infix symbol 4
\item interactive programming environment 3
\item interface 35, 48
\subitem hidden $\sim$ 37
\subitem $\sim$ comment 44
\subitem $\sim$ definition 36
\item {\bf interface} 35
\item iteration 28
\indexspace
\item $L$
\item labeled Cartesian product 10
\item layout convention 42
\item {\bf Let} 10, 21
\item {\bf let} 6, 24
\item lexical rule 3
\item library 36, 48
\subitem C $\sim$ 38
\subitem enclosing $\sim$ 37
\subitem external $\sim$ 38
\subitem hierarchic $\sim$ structuring 37
\item {\bf library} 36
\item list 14
\item listfix notation 31
\item literal 5
\item loop 28
\subitem enumerating $\sim$ 28
\subitem $\sim$ variable 29
\subitem prechecking $\sim$ 28
\item {\bf loop} 28
\item loss of type information 20
\indexspace
\item $M$
\item method 11, 34
\item method overwriting 34
\item modularization 34
\item module 35, 48
\subitem hidden $\sim$ 37
\subitem $\sim$ comment 44
\subitem $\sim$ definition 36
\item {\bf module} 35
\item multiline comment 44
\item multiple inheritance 18
\item mutable variable 24
\item mutually recursive functions 9
\indexspace
\item $N$
\item naming 6, 31
\item naming convention 42
\item nesting level 43
\item {\bf Nok} 30
\item non-anonymous binding 13
\item non-anonymous signature 13
\item non-parametrized type 15
\indexspace
\item $O$
\item object 34
\item object store 37
\subitem $\sim$ stabilizing 37
\item object-oriented programming 11, 34
\item {\bf of} 12
\item {\bf Ok} 7, 15, 25, 28
\item {\bf ok} 7, 25
\item opaque type 32
\item {\bf open} 17
\item {\bf Oper} 21
\item operator precedence 4
\item optional value 21
\item {\bf orif} 27
\item overloading 5
\indexspace
\item $P$
\item P-Quest 2
\item parallel definition 9
\item parameter format 39
\item parameter passing 7
\subitem $\sim$ mechanism 25
\item parametric polymorphism 19
\item parametrization 19
\item partial specification 15
\item persistence 37
\item persistent data 37
\item pointer type 7
\item polymorphic function 19, 22, 23
\item polymorphic null element 30
\item polymorphic type system 3
\item polymorphism 19
\subitem bounded parametric $\sim$ 20
\subitem parametric $\sim$ 19
\subitem subtype $\sim$ 15
\item postcondition 18
\item precondition 18
\item predefined
\subitem $\sim$ constant 5, 50
\subitem $\sim$ function 5, 51
\subitem $\sim$ identifier 50
\subitem $\sim$ type 5, 50
\subitem subtyping on $\sim$ types 15
\item program extension 17
\item programming
\subitem multi-paradigm $\sim$ 31
\subitem object-oriented $\sim$ 11, 34
\subitem $\sim$ style 31
\item punctuation 42
\indexspace
\item $Q$
\item qualifying identifier 35
\item Quest 2
\indexspace
\item $R$
\item {\bf raise} 29
\item reachability 37
\item read-only access 26
\item readability 4
\item {\bf Rec} 14
\item {\bf rec} 7, 9
\item {\bf Record} 13
\item {\bf record} 13
\item record type 13
\subitem subtyping on $\sim$s 18
\item record value 13
\subitem extension of $\sim$ 13
\item recursive
\subitem $\sim$ binding 9
\subitem $\sim$ data structure 14
\subitem $\sim$ data type 14, 34
\subitem $\sim$ function 9
\subitem $\sim$ type operator 22
\subitem $\sim$ value 14
\item {\bf Repeat} 16
\item repeating component 16
\item repetition of binding 17
\item {\bf reraise} 30
\item reserved keyword 4, 47
\item rollback 37
\item runtime error 13
\indexspace
\item $S$
\item scoping 11, 13
\subitem $\sim$ rule 6
\item semantic concept 3
\item semi-abstract data type 23
\item sequence 27
\item sequential execution 27
\item shared variable 25, 34
\item signature 6, 7, 15, 49
\item space 4, 42
\item spelling 42
\item stack 23, 32
\item standard library 5, 36
\item state 32
\item state-based 32
\item static binding 6
\item static type checking 15
\item static type information 6
\item structural compatibility 16
\item structural equivalence 15
\item subclass 16
\item subsignature 18
\subitem $\sim$ relationship 24
\item subsumption principle 15
\item subsumption rule 26
\item subtype 15
\subitem $\sim$ definition 16
\subitem $\sim$ polymorphism 15, 20
\subitem $\sim$ relationship 15
\item subtyping 15
\subitem $\sim$ for mutable bindings 26
\subitem $\sim$ hierarchies 18
\subitem $\sim$ on function types 18
\subitem $\sim$ on predefined types 15
\subitem $\sim$ on record types 18
\subitem $\sim$ on tuple types 16
\subitem $\sim$ on variant types 17
\item supertype 14, 15
\item syntactic structure 3
\item syntactical rule 3
\item syntax error 9
\item system programming 3
\indexspace
\item $T$
\item {\bf then} 27, 30
\item top level 36
\item trivial specification 15
\item {\bf try} 29
\item tuple 10
\subitem $\sim$ field 10
\subitem $\sim$ field selection 11
\subitem $\sim$ signature 24
\subitem $\sim$ value 11
\subitem $\sim$ with variant 11
\item {\bf Tuple} 10, 11
\item {\bf tuple} 11, 12
\item tuple type 10
\subitem subtyping on $\sim$s 16
\subitem $\sim$ with variants 11
\item type 49
\subitem deferred $\sim$ checking 15
\subitem dynamic $\sim$ 15
\subitem exception $\sim$ 29
\subitem function $\sim$ 9
\subitem non-parametrized $\sim$ 15
\subitem opaque $\sim$ 32
\subitem record $\sim$ 13
\subitem tuple $\sim$ 10
\subitem $\sim$ argument 19
\subitem $\sim$ compatibility 11
\subitem $\sim$ constructor 10
\subitem $\sim$ expression 6
\subitem $\sim$ inference 7, 8, 19
\subitem $\sim$ parameter 19
\subitem variant $\sim$ 11
\item type operator 19, 21, 23
\subitem first-order $\sim$ 22
\subitem higher-order $\sim$ 22
\subitem recursive $\sim$ 22
\subitem simple $\sim$ 21
\subitem $\sim$ application 21
\item type-independent behavior 19
\item {\bf typecase} 15
\item typing 5, 7, 31
\indexspace
\item $U$
\item uninitialized identifier 7
\item {\bf upto} 29
\indexspace
\item $V$
\item value 48
\subitem $\sim$ parameter 25
\item {\bf var} 24
\item variable 24
\subitem mutable $\sim$ 24
\subitem $\sim$ declaration 24
\subitem $\sim$ parameter 25
\item variant 11
\subitem $\sim$ field projection 12
\item variant type 11
\subitem subtyping on $\sim$s 17
\item visibility 8, 24
\indexspace
\item $W$
\item {\bf when} 12, 15, 30
\item {\bf while} 28
\item {\bf with} 11, 13, 29, 30, 36
\indexspace
\item $Others$
\item = 6, 9
\item == 9, 14
\item $\alpha$-conversion 11
\item ? 13
\item ! 13
\item $<$: 15
\item := 24
\end{theindex}
