Appendix D
Index

Emboldened terms indicate where a term has been defined in the text. A term starting with an upper­case character generally refers to an identifier in the syntactic description or to a predefined function or operator in the library.



\

\   19, 113

A

abort                              27

abstract data type       10, 54

predefined                     43

AbstractTypeDef      54, 115

actual node-id                     3

algebraic data type            45

algebraic data type definition   47

AlgebraicTypeDef 45, 47, 48, 49, 94, 115

anonymous node variable 16

AnyChar           32, 117, 119

Application               18, 113

arity of a function       26, 27

array               31, 38, 39, 42

comprehension              40

generator                      35

index                             40

index                             38

selection                        42

Array                        39, 114

ArrayDenotation       39, 114

ArrayExpr           35, 40, 114

ArrayIndex               42, 114

ArrayPattern              42, 113

ArraySelection          42, 114

ArrayType                38, 116

ArrayUpdate             40, 114

arrow type                        43

ArrowType                       43

ASCII                                31

B

basic type                    31, 32

BasicType                 31, 115

BasicValue                31, 113

BasicValuePattern     32, 113

block structure                  20

Bool                    31, 32, 120

BoolDenotation         32, 117

BooleanExpr             35, 112

boxing                             106

BrackGraph              18, 113

BrackPattern             16, 112

BrackType 26, 28, 29, 45, 48, 91, 94, 115

C

CAF                                108

cartesian product         26, 43

case                   20, 114, 120

case expression                 20

CaseAltDef               20, 114

CaseExpr                  20, 114

Char                        31, 120

Char                                32

CharDel              32, 33, 117

CharDenotation         32, 117

CharsDenotation 32, 33, 117

class            58, 63, 116, 120

enumeration type          35

ClassContext             59, 112

ClassDef                         116

ClassMemberDef      58, 116

ClassName                  5, 117

CleanProgram             7, 111

code                          13, 120

Comment                        119

conditional expression      20

console mode                      7

constant

global                              9

local                                9

Constant Applicative Form 108

constant value             32, 45

Constructor               18, 113

constructor symbol             1

ConstructorDef 45, 47, 48, 49, 94, 115

ConstructorName        5, 117

context

lazy                             106

strict                            106

contractum                          1

corresponding module        6

curried application           27

curried constructor application      46

curried type                       43

currying                            18

cyclic graph                      24

D

data constructor   16, 45, 47

data structure                    45

DataRoot                             4

decimal number        31, 117

default                            121

DefDefinition           10, 111

definition            7, 111, 120

global                              9

local                                9

definition module    6, 10, 54

DefinitionModule       7, 111

DefOfFunction         15, 112

DefOfMacro           108, 115

depending module            11

dictionary                         57

Digit                                    6

directed arc                         1

DotDotexpression     34, 114

E

E.                               47, 48

enumeration type              35

existentially quantified variable     47, 48

ExplicitImportDef     11, 112

export                             120

export                             116

expression

initial                               1

F

False                         32, 117

field name             50, 52, 53

FieldName                  5, 117

File                                  120

Fix                            45, 115

Fix                                    26

fixity                      16, 19, 27

flat type                             65

foreign function                12

formal argument         16, 19

formal node-id                    3

from                  11, 112, 120

function                               1

alternative                     15

arity of a                       27

constant                         24

curried application of a 27

definition                       15

global                              9

local                                9

partial                  1, 17, 27

total                               27

Function                    18, 112

Function                            15

function definition               1

function object                  43

function symbol                   1

function type                    26

functional array update    40

functional record update  52

functional reduction strategy   2

FunctionAltDef         15, 112

FunctionBody           15, 112

FunctionDef              15, 112

FunctionDef                      26

FunctionName            5, 116

FunctionType 26, 28, 29, 59, 112

FunctionTypeDef      26, 112

FunnyId                      6, 117

G

garbage collection           108

garbage collector               25

generator

array                              33

list                                 35

Generator                  35, 114

Generators                35, 114

global definition                  9

Global definition               10

global graph                       4

global graph definition   108

global scope                      11

Gofer                                  ii

graph                                  1

Graph                                  4

graph definition                24

graph rewrite rule         1, 15

GraphDef          24, 107, 112

GraphExpr                18, 113

GraphPattern       16, 46, 113

GraphVariable          18, 113

guard                          17, 35

nested                            18

guard                                15

Guard                  17, 35, 112

guarded function body      15

H

head normal form               8

hexadecimal number 31, 117

HexDigit                   32, 117

Hilt B.V.                        viii

Hindley                             45

Hugs                                   ii

I

I/O library                        i, 8

IdChar                         6, 117

identifier                             6

Identifier                         119

if 120

if 20, 114

ImplDefinition            8, 111

implementation           7, 111

implementation               120

ImplementationModule 7, 111

implicit import.;ib.import

implicit                          12

ImplicitImportDef     12, 112

import               12, 112, 120

import statement               11

ImportDef                 11, 112

Imports                     11, 112

in 120

in 21, 114

infix              26, 45, 46, 120

infix position              16, 46

infixl     26, 45, 46, 115, 120

infixr           26, 45, 115, 120

Initial                        3, 4

initial expression             7, 8

instance 58, 64, 70, 72, 75, 116, 120, 121

Int               31, 32, 115, 120

IntDenotation            31, 117

IntegerExpr               42, 114

K

keyword                          120

L

LambdaAbstr            19, 113

lay-out rule                         9

lazy context                     106

lazy evaluation                105

lazy semantics                   49

left hand-side of a graph    1

let                21, 23, 112, 114

let // begin of let expression 120

let!                            23, 112

LetBeforeExpression 23, 112

LetExpresssion          21, 114

Lexeme                           119

LexProgram                    119

LGraphExpr              33, 114

LGraphPattern           36, 113

list                               32, 36

List                            33, 114

list list generator               35

ListDenotation          33, 114

ListExpr                    35, 114

ListPattern                 36, 113

ListType                    33, 115

Literal                             119

local definition                    9

LocalDef             21, 22, 112

LocalFunctionAltDefs 21, 112

LocalFunctionDefs   22, 112

LowerCaseChar          6, 117

LowerCaseId               5, 117

M

macro

global                              9

local                                9

macro definition              108

MacroDef               108, 115

MacroFixityDef      108, 115

MacroName                5, 117

main module                       7

Milner                               45

Miranda                              ii

mode

console                            7

module                7, 111, 120

corresponding                 6

definition                        6

depending                     11

implementation               6

pass-through                  12

Module                       7, 111

ModuleName              5, 116

N

name space                     120

name spaces                       6

nested guards                    18

nested scope                       6

node                                    1

node variable                    16

anonymous                   17

node-id                               1

actual                              3

applied                            1

formal                             3

node-id variable               16

node-identifier                    1

normal form                        2

O

object oriented programming   51

octal number             31, 117

OctDigit                    32, 117

of                      20, 114, 120

operator                16, 19, 27

constructor                    46

Operator                          113

otherwise                          17

overloaded                        58

overloading                         6

P

partial function       1, 17, 27

partial match                       2

pass-through module         12

pattern                          1, 16

constructor                    46

record                            26

Pattern                       16, 112

pattern match                    17

pattern variable                16

PatternVariable         16, 113

polymorphic algebraic data type    45

Prec                           45, 115

Prec                                   26

precedence                       27

precedence                 16, 19

PredefAbstrType       44, 116

program                              1

program graph                   1

projection function            25

Q

Qualifier                   35, 114

QuantifiedVariables 26, 28, 45, 46, 47, 48, 94, 115

R

Real                    31, 32, 120

RealDenotation         32, 117

recompilation                    10

record                         52, 53

Record                      52, 114

record pattern                    26

record selection                53

record type                       50

RecordDenotation     52, 114

RecordExpr               52, 114

RecordPattern           53, 113

RecordSelection        53, 114

RecordTypeDef        51, 115

RecordUpdate           52, 114

redex                                   1

redirection                          1

redirection of a node          2

reducer                               2

reducible expression           1

reduct                                 1

reduction strategy               2

reference                             1

ReservedChar           32, 117

ReservedKeywordOrSymbol =      120

rewrite of a redex                1

rewrite rules

comparing                       1

right hand-side of a graph  1

root normal form            2, 8

root stable form                  8

RootExpression         18, 112

rule

alternative                     15

rule alternative                  17

S

scope                6, 9, 20, 108

nested                              6

surrounding                     6

selection

by field name                50

by index                        39

by position                    50

Selection 40, 42, 52, 53, 114

Selection of a Record Field 53

Selection of an Array Element 42

selector                             25

Selector       25, 35, 112, 114

selector variable         19, 25

SelectorVariable          5, 117

sharing                             24

sharing analysis                96

Sign                           32, 117

SimpleType                     115

SML                                    ii

Special                      32, 117

SpecialChar                 6, 117

Start                        3, 4, 7

start rule                             3

StartNode                            4

Strict           37, 49, 107, 115

strict context                   106

strict semantics                 49

StringDel             32, 39, 117

StringDenotation       39, 117

strong root normal form     2

strong type system            45

sub-graph                            2

sub-pattern                       46

surrounding scope               6

symbol                        1, 120

arguments of a                1

synonym type                   54

SynonymTypeDef    54, 115

system                 7, 111, 120

system definition module   12

system implementation module      12

T

Term Graph Rewriting        1

total function                     27

tree                                      1

True                          32, 117

tuple                            37, 38

Tuple                        37, 114

TuplePattern              38, 113

TupleType                37, 116

type

abstract data                  54

algebraic data                45

array                              38

arrow                             43

basic                              31

constructor

lazy array           43, 116

list                      43, 116

strict array          43, 116

unboxed array   43, 116

context                          58

curried                           43

existential                      48

flat                                65

global                              9

inferred                         26

list                                 32

of a function                 26

of partial function         27

record                            50

synonym                       54

tuple                              37

variable                         45

Type 26, 28, 29, 31, 91, 115

type class                          58

definition of                  58

member of                    58

type specification            120

type variable                     45

TypeClassDef     58, 63, 116

TypeClassInstanceDef 58, 64, 70, 72, 75, 116

TypeClassInstanceExportDef  116

TypeConstructor         45, 94

TypeDef                         115

TypeDef                           45

TypeLhs              45, 94, 115

TypeName                  5, 117

TypeVariable              5, 117

U

unboxing                         106

uniqueness type attribute  91

UniqueTypeVariable   5, 117

UnqTypeAttrib    91, 94, 115

UnqTypeUnEqualities 59, 112

update of a record

destructive                     53

UpperCaseChar           6, 117

UpperCaseId               5, 117

V

variable                             19

existentially quantified  47

node-id                          16

selector                    19, 25

type                               45

Variable                      5, 117

W

where 21, 58, 64, 112, 116, 120

where block                      21

Whitespace                     119

wildcard                      16, 25

with                   22, 112, 120

with block                         22

world

abstract                            8

concrete physical            8

World                  7, 43, 120

world mode                         8

Z

ZF-expression     33, 35, 114


 



1 Note that it is very natural in Clean to speak about references due to the underlying graph rewrit­ing semantics of the language: it is al­ways clear when objects are being shared or when cyclic structures are being created.