Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
compiler
Commits
1426b396
Commit
1426b396
authored
Apr 03, 2014
by
John van Groningen
Browse files
add unit type
parent
44f0f49b
Changes
6
Hide whitespace changes
Inline
Side-by-side
backend/backendconvert.icl
View file @
1426b396
...
...
@@ -917,6 +917,24 @@ declareDynamicTemp :: PredefinedSymbols -> BackEnder
declareDynamicTemp
predefs
=
appBackEnd
(
BEDeclareDynamicTypeSymbol
predefs
.[
PD_StdDynamic
].
pds_def
predefs
.[
PD_Dyn_DynamicTemp
].
pds_def
)
^=
v
be
:==
(
v
,
be
)
@^
f
f1
be
#
(
v1
,
be
)
=
f1
be
:==
f
v1
be
@^^
f
f1
f2
be
#
(
v1
,
be
)
=
f1
be
(
v2
,
be
)
=
f2
be
:==
f
v1
v2
be
@^^^
f
f1
f2
f3
be
#
(
v1
,
be
)
=
f1
be
(
v2
,
be
)
=
f2
be
(
v3
,
be
)
=
f3
be
:==
f
v1
v2
v3
be
predefineSymbols
::
DclModule
PredefinedSymbols
->
BackEnder
predefineSymbols
{
dcl_common
}
predefs
=
appBackEnd
(
BEDeclarePredefinedModule
(
size
dcl_common
.
com_type_defs
)
(
size
dcl_common
.
com_cons_defs
))
...
...
@@ -924,6 +942,7 @@ predefineSymbols {dcl_common} predefs
o`
foldState
predefineType
types
o`
foldState
predefine_list_constructor
list_constructors
o`
foldState
predefineConstructor
constructors
o`
define_unit_type
where
list_types
::
[(
Int
,
Int
,
Int
)]
list_types
...
...
@@ -997,6 +1016,16 @@ predefineSymbols {dcl_common} predefs
// ... sanity check
=
appBackEnd
(
BEPredefineConstructorSymbol
arity
predefs
.[
index
].
pds_def
cPredefinedModuleIndex
symbolKind
)
define_unit_type
#
constructor_symbol_be_f
=
BEConstructorSymbol
predefs
.[
PD_UnitConsSymbol
].
pds_def
cPredefinedModuleIndex
type_be_f
=
@^^
BENormalTypeNode
constructor_symbol_be_f
BENoTypeArgs
constructors_be_f
=
@^^
BEConstructors
(@^
BEConstructor
type_be_f
)
BENoConstructors
type_symbol_be_f
=
BETypeSymbol
predefs
.[
PD_UnitType
].
pds_def
cPredefinedModuleIndex
flat_type_be_f
=
@^^^
BEFlatType
type_symbol_be_f
(^=
BENoUniAttr
)
BENoTypeVars
=
appBackEnd
(
BEDeclareConstructor
predefs
.[
PD_UnitConsSymbol
].
pds_def
cPredefinedModuleIndex
"_Unit"
o`
BEDeclareType
predefs
.[
PD_UnitType
].
pds_def
cPredefinedModuleIndex
"_Unit"
o`
@^^
BEAlgebraicType
flat_type_be_f
constructors_be_f
)
bindSpecialIdents
::
PredefinedSymbols
NumberSet
->
BackEnder
bindSpecialIdents
predefs
usedModules
...
...
frontend/check.icl
View file @
1426b396
...
...
@@ -3330,8 +3330,8 @@ where
<=<
adjustPredefSymbolAndCheckIndex
PD_StringType
mod_index
PD_StringTypeIndex
STE_Type
<=<
adjust_predef_symbols
PD_ListType
PD_OverloadedListType
mod_index
STE_Type
<=<
adjust_predef_symbols_and_check_indices
PD_Arity2TupleType
PD_Arity32TupleType
PD_Arity2TupleTypeIndex
mod_index
STE_Type
<=<
adjust_predef_symbols
PD_LazyArrayType
PD_Un
boxedArray
Type
mod_index
STE_Type
<=<
adjust_predef_symbols
PD_ConsSymbol
PD_
Arity32Tuple
Symbol
mod_index
STE_Constructor
<=<
adjust_predef_symbols
PD_LazyArrayType
PD_Un
it
Type
mod_index
STE_Type
<=<
adjust_predef_symbols
PD_ConsSymbol
PD_
UnitCons
Symbol
mod_index
STE_Constructor
<=<
(
if
tc_class_defined
(
adjustPredefSymbol
PD_TypeCodeClass
mod_index
STE_Class
)
(\
x
->
x
))
<=<
(
if
tc_class_defined
(
adjustPredefSymbol
PD_TypeCodeMember
mod_index
STE_Member
)
(\
x
->
x
))
<=<
adjustPredefSymbol
PD_DummyForStrictAliasFun
mod_index
STE_DclFunction
)
...
...
@@ -3356,7 +3356,7 @@ where
<=<
adjust_predef_symbols
PD_Dyn_initial_unification_environment
PD_Dyn_normalise
mod_index
STE_DclFunction
<=<
adjustPredefSymbol
PD_Dyn__to_TypeCodeConstructor
mod_index
STE_DclFunction
<=<
adjustPredefSymbol
PD_TypeCodeConstructor
mod_index
STE_Type
<=<
adjust_predef_symbols
PD_TC_Int
PD_TC__Un
boxedArray
mod_index
STE_Constructor
<=<
adjust_predef_symbols
PD_TC_Int
PD_TC__Un
it
mod_index
STE_Constructor
)
#
(
pre_mod
,
cs_predef_symbols
)
=
cs_predef_symbols
![
PD_StdGeneric
]
#
type_bimap
=
predefined_idents
.[
PD_TypeBimap
]
...
...
frontend/convertDynamics.icl
View file @
1426b396
...
...
@@ -560,6 +560,8 @@ where
->
type_code_constructor_expression
PD_TC__StrictArray
ci
PD_UnboxedArrayType
->
type_code_constructor_expression
PD_TC__UnboxedArray
ci
PD_UnitType
->
type_code_constructor_expression
PD_TC__Unit
ci
typeConstructor
(
GTT_Constructor
fun_ident
_)
ci
#
type_fun
=
App
{
app_symb
=
fun_ident
,
app_args
=
[],
app_info_ptr
=
nilPtr
}
...
...
frontend/parse.icl
View file @
1426b396
...
...
@@ -2964,6 +2964,9 @@ trySimpleTypeT_after_OpenToken ArrowToken attr pState
= (ParseOk, {at_attribute = attr, at_type = TArrow}, pState)
= (ParseFailWithError,{at_attribute = attr, at_type = TE},
parseError "arrow type" (Yes token) ")" pState)
trySimpleTypeT_after_OpenToken CloseToken attr pState
#! unit_type_ident = predefined_idents.[PD_UnitType]
= (ParseOk,{at_attribute=attr,at_type=TA (MakeNewTypeSymbIdent unit_type_ident 0) []},pState)
trySimpleTypeT_after_OpenToken token attr pState
# (annot_with_pos,atype, pState) = wantAnnotatedATypeWithPositionT token pState
(token, pState) = nextToken TypeContext pState
...
...
@@ -3387,19 +3390,37 @@ trySimplePatternT SquareOpenToken pState
# (list_expr, pState) = wantListExp cIsAPattern pState
= (True, list_expr, pState)
trySimplePatternT OpenToken pState
# (args=:[exp:exps], pState) = want_pattern_list pState
pState = wantToken FunctionContext "pattern list" CloseToken pState
| isEmpty exps
= case exp of
PE_Ident id
-> (True, PE_List [exp], pState)
_
-> (True, exp, pState)
= (True, PE_Tuple args, pState)
# (token, pState) = nextToken FunctionContext pState
= case token of
CloseToken
#! unit_cons_ident = predefined_idents.[PD_UnitConsSymbol]
-> (True,PE_Ident unit_cons_ident,pState)
_
# (args=:[exp:exps], pState) = want_pattern_list_t token pState
pState = wantToken FunctionContext "pattern list" CloseToken pState
| isEmpty exps
-> case exp of
PE_Ident id
-> (True, PE_List [exp], pState)
_
-> (True, exp, pState)
-> (True, PE_Tuple args, pState)
where
want_pattern_list_t token pState
# (expr, pState)
= case token of
CharListToken charList // To produce a better error message
-> charListError charList pState
_
-> wantPatternT token pState
= want_pattern_list_rest expr pState
want_pattern_list pState
# (expr, pState) = wantPattern pState
(token, pState) = nextToken FunctionContext pState
= want_pattern_list_rest expr pState
want_pattern_list_rest expr pState
# (token, pState) = nextToken FunctionContext pState
| token == CommaToken
# (exprs, pState) = want_pattern_list pState
= ([expr : exprs], pState)
...
...
@@ -3492,19 +3513,38 @@ trySimpleExpressionT SquareOpenToken pState
# (list_expr, pState) = wantListExp cIsNotAPattern pState
= (True, list_expr, pState)
trySimpleExpressionT OpenToken pState
# (args=:[exp:exps], pState) = want_expression_list pState
pState = wantToken FunctionContext "expression list" CloseToken pState
| isEmpty exps
= case exp of
PE_Ident id
-> (True, PE_List [exp], pState)
_
-> (True, exp, pState)
= (True, PE_Tuple args, pState)
# (token, pState) = nextToken FunctionContext pState
= case token of
CloseToken
#! unit_cons_ident = predefined_idents.[PD_UnitConsSymbol]
-> (True,PE_Ident unit_cons_ident,pState)
_
# (args=:[exp:exps], pState) = want_expression_list_t token pState
pState = wantToken FunctionContext "expression list" CloseToken pState
| isEmpty exps
-> case exp of
PE_Ident id
-> (True, PE_List [exp], pState)
_
-> (True, exp, pState)
-> (True, PE_Tuple args, pState)
where
want_expression_list_t token pState
# (expr, pState)
= case token of
CharListToken charList
// To produce a better error message
-> charListError charList pState
_
-> wantExpressionT token pState
= want_expression_list_rest expr pState
want_expression_list pState
# (expr, pState) = wantExpression pState
(token, pState) = nextToken FunctionContext pState
= want_expression_list_rest expr pState
want_expression_list_rest expr pState
# (token, pState) = nextToken FunctionContext pState
| token == CommaToken
# (exprs, pState) = want_expression_list pState
= ([expr : exprs], pState)
...
...
frontend/predef.dcl
View file @
1426b396
...
...
@@ -23,7 +23,7 @@ PD_StringTypeIndex :== 0
PD_Arity2TupleTypeIndex
:==
8
PD_Arity32TupleTypeIndex
:==
38
/* identifiers not present the hastable */
/* identifiers not present the has
h
table */
PD_PredefinedModule
:==
0
...
...
@@ -46,258 +46,264 @@ PD_LazyArrayType :== 40
PD_StrictArrayType
:==
41
PD_UnboxedArrayType
:==
42
PD_UnitType
:==
43
// constructors:
FirstConstructorPredefinedSymbolIndex
:==
PD_ConsSymbol
;
// to compute index in com_cons_defs
PD_ConsSymbol
:==
43
PD_StrictConsSymbol
:==
44
PD_UnboxedConsSymbol
:==
45
PD_TailStrictConsSymbol
:==
46
PD_StrictTailStrictConsSymbol
:==
47
PD_UnboxedTailStrictConsSymbol
:==
48
PD_OverloadedConsSymbol
:==
49
PD_NilSymbol
:==
50
PD_StrictNilSymbol
:==
51
PD_UnboxedNilSymbol
:==
52
PD_TailStrictNilSymbol
:==
53
PD_StrictTailStrictNilSymbol
:==
54
PD_UnboxedTailStrictNilSymbol
:==
55
PD_OverloadedNilSymbol
:==
56
PD_Arity2TupleSymbol
:==
57
PD_Arity32TupleSymbol
:==
87
PD_ConsSymbol
:==
44
PD_StrictConsSymbol
:==
45
PD_UnboxedConsSymbol
:==
46
PD_TailStrictConsSymbol
:==
47
PD_StrictTailStrictConsSymbol
:==
48
PD_UnboxedTailStrictConsSymbol
:==
49
PD_OverloadedConsSymbol
:==
50
PD_NilSymbol
:==
51
PD_StrictNilSymbol
:==
52
PD_UnboxedNilSymbol
:==
53
PD_TailStrictNilSymbol
:==
54
PD_StrictTailStrictNilSymbol
:==
55
PD_UnboxedTailStrictNilSymbol
:==
56
PD_OverloadedNilSymbol
:==
57
PD_Arity2TupleSymbol
:==
58
PD_Arity32TupleSymbol
:==
88
PD_UnitConsSymbol
:==
89
// end constructors
PD_TypeVar_a0
:==
88
PD_TypeVar_a31
:==
11
9
PD_TypeVar_a0
:==
90
PD_TypeVar_a31
:==
1
2
1
/* identifiers present in the hashtable */
PD_StdArray
:==
12
0
PD_StdEnum
:==
12
1
PD_StdBool
:==
12
2
PD_StdArray
:==
12
2
PD_StdEnum
:==
12
3
PD_StdBool
:==
12
4
PD_AndOp
:==
12
3
PD_OrOp
:==
12
4
PD_AndOp
:==
12
5
PD_OrOp
:==
12
6
/* Array functions */
PD_ArrayClass
:==
12
5
PD_ArrayClass
:==
12
7
PD_CreateArrayFun
:==
12
6
PD__CreateArrayFun
:==
12
7
PD_ArraySelectFun
:==
1
28
PD_UnqArraySelectFun
:==
1
29
PD_ArrayUpdateFun
:==
13
0
PD_ArrayReplaceFun
:==
13
1
PD_ArraySizeFun
:==
13
2
PD_UnqArraySizeFun
:==
13
3
PD_CreateArrayFun
:==
12
8
PD__CreateArrayFun
:==
12
9
PD_ArraySelectFun
:==
1
30
PD_UnqArraySelectFun
:==
1
31
PD_ArrayUpdateFun
:==
13
2
PD_ArrayReplaceFun
:==
13
3
PD_ArraySizeFun
:==
13
4
PD_UnqArraySizeFun
:==
13
5
/* Enum/Comprehension functions */
PD_SmallerFun
:==
13
4
PD_LessOrEqualFun
:==
13
5
PD_IncFun
:==
13
6
PD_SubFun
:==
13
7
PD_From
:==
1
38
PD_FromThen
:==
1
39
PD_FromTo
:==
14
0
PD_FromThenTo
:==
14
1
PD_SmallerFun
:==
13
6
PD_LessOrEqualFun
:==
13
7
PD_IncFun
:==
13
8
PD_SubFun
:==
13
9
PD_From
:==
1
40
PD_FromThen
:==
1
41
PD_FromTo
:==
14
2
PD_FromThenTo
:==
14
3
/* StdMisc */
PD_StdMisc
:==
14
2
PD_abort
:==
14
3
PD_undef
:==
14
4
PD_StdMisc
:==
14
4
PD_abort
:==
14
5
PD_undef
:==
14
6
PD_Start
:==
14
5
PD_Start
:==
14
7
PD_DummyForStrictAliasFun
:==
14
6
PD_DummyForStrictAliasFun
:==
14
8
PD_StdStrictLists
:==
14
7
PD_StdStrictLists
:==
14
9
PD_cons
:==
1
48
PD_decons
:==
1
49
PD_cons
:==
1
50
PD_decons
:==
1
51
PD_cons_u
:==
15
0
PD_decons_u
:==
15
1
PD_cons_u
:==
15
2
PD_decons_u
:==
15
3
PD_cons_uts
:==
15
2
PD_decons_uts
:==
15
3
PD_cons_uts
:==
15
4
PD_decons_uts
:==
15
5
PD_nil
:==
15
4
PD_nil_u
:==
15
5
PD_nil_uts
:==
15
6
PD_nil
:==
15
6
PD_nil_u
:==
15
7
PD_nil_uts
:==
15
8
PD_ListClass
:==
15
7
PD_UListClass
:==
1
58
PD_UTSListClass
:==
1
59
PD_ListClass
:==
15
9
PD_UListClass
:==
1
60
PD_UTSListClass
:==
1
61
/* Dynamics */
// TC class
PD_TypeCodeMember
:==
16
0
PD_TypeCodeClass
:==
16
1
PD_TypeCodeMember
:==
16
2
PD_TypeCodeClass
:==
16
3
// dynamic module
PD_StdDynamic
:==
16
2
PD_StdDynamic
:==
16
4
// dynamic type
PD_Dyn_DynamicTemp
:==
16
3
PD_Dyn_DynamicTemp
:==
16
5
// type code (type)
PD_Dyn_TypeCode
:==
16
4
PD_Dyn_TypeCode
:==
16
6
// unification (type)
PD_Dyn_UnificationEnvironment
:==
16
5
PD_Dyn_UnificationEnvironment
:==
16
7
// type code (expressions)
PD_Dyn_TypeScheme
:==
16
6
PD_Dyn_TypeApp
:==
16
7
PD_Dyn_TypeVar
:==
1
68
PD_Dyn_TypeCons
:==
1
69
PD_Dyn_TypeUnique
:==
17
0
PD_Dyn__TypeFixedVar
:==
17
1
PD_Dyn_TypeScheme
:==
16
8
PD_Dyn_TypeApp
:==
16
9
PD_Dyn_TypeVar
:==
1
70
PD_Dyn_TypeCons
:==
1
71
PD_Dyn_TypeUnique
:==
17
2
PD_Dyn__TypeFixedVar
:==
17
3
// unification (expressions)
PD_Dyn_initial_unification_environment
:==
17
2
PD_Dyn_bind_global_type_pattern_var
:==
17
3
PD_Dyn_unify
:==
17
4
PD_Dyn_normalise
:==
17
5
PD_Dyn_initial_unification_environment
:==
17
4
PD_Dyn_bind_global_type_pattern_var
:==
17
5
PD_Dyn_unify
:==
17
6
PD_Dyn_normalise
:==
17
7
/* Generics */
PD_StdGeneric
:==
17
6
PD_StdGeneric
:==
17
8
// Generics types
PD_TypeBimap
:==
17
7
PD_TypeUNIT
:==
1
7
8
PD_TypeEITHER
:==
1
79
PD_TypePAIR
:==
18
0
PD_TypeBimap
:==
17
9
PD_TypeUNIT
:==
18
0
PD_TypeEITHER
:==
1
81
PD_TypePAIR
:==
18
2
// for constructor info
PD_TypeCONS
:==
18
1
PD_TypeRECORD
:==
18
2
PD_TypeFIELD
:==
18
3
PD_TypeOBJECT
:==
18
4
PD_TGenericConsDescriptor
:==
18
5
PD_TGenericRecordDescriptor
:==
18
6
PD_TGenericFieldDescriptor
:==
18
7
PD_TGenericTypeDefDescriptor
:==
1
88
PD_TGenConsPrio
:==
1
8
9
PD_TGenConsAssoc
:==
19
0
PD_TGenType
:==
19
1
PD_TypeGenericDict
:==
19
2
PD_TypeCONS
:==
18
3
PD_TypeRECORD
:==
18
4
PD_TypeFIELD
:==
18
5
PD_TypeOBJECT
:==
18
6
PD_TGenericConsDescriptor
:==
18
7
PD_TGenericRecordDescriptor
:==
18
8
PD_TGenericFieldDescriptor
:==
18
9
PD_TGenericTypeDefDescriptor
:==
1
90
PD_TGenConsPrio
:==
19
1
PD_TGenConsAssoc
:==
19
2
PD_TGenType
:==
19
3
PD_TypeGenericDict
:==
19
4
// Generics fields
PD_map_to
:==
19
3
PD_map_from
:==
19
4
PD_map_to
:==
19
5
PD_map_from
:==
19
6
// Generics expression
PD_ConsBimap
:==
19
5
PD_ConsUNIT
:==
19
6
PD_ConsLEFT
:==
19
7
PD_ConsRIGHT
:==
198
PD_ConsPAIR
:==
199
PD_ConsBimap
:==
19
7
PD_ConsUNIT
:==
19
8
PD_ConsLEFT
:==
19
9
PD_ConsRIGHT
:==
200
PD_ConsPAIR
:==
201
// for constructor info
PD_ConsCONS
:==
200
PD_ConsRECORD
:==
201
PD_ConsFIELD
:==
202
PD_ConsOBJECT
:==
203
PD_CGenericConsDescriptor
:==
204
PD_CGenericRecordDescriptor
:==
205
PD_CGenericFieldDescriptor
:==
206
PD_CGenericTypeDefDescriptor
:==
207
PD_CGenConsNoPrio
:==
208
PD_CGenConsPrio
:==
209
PD_CGenConsAssocNone
:==
210
PD_CGenConsAssocLeft
:==
211
PD_CGenConsAssocRight
:==
212
PD_CGenTypeCons
:==
213
PD_CGenTypeVar
:==
214
PD_CGenTypeArrow
:==
215
PD_CGenTypeApp
:==
216
PD_bimapId
:==
217
PD_GenericBimap
:==
218
PD_FromS
:==
219
PD_FromTS
:==
220
PD_FromSTS
:==
221
PD_FromU
:==
222
PD_FromUTS
:==
223
PD_FromO
:==
224
PD_FromThenS
:==
225
PD_FromThenTS
:==
226
PD_FromThenSTS
:==
227
PD_FromThenU
:==
228
PD_FromThenUTS
:==
229
PD_FromThenO
:==
230
PD_FromToS
:==
231
PD_FromToTS
:==
232
PD_FromToSTS
:==
233
PD_FromToU
:==
234
PD_FromToUTS
:==
235
PD_FromToO
:==
236
PD_FromThenToS
:==
237
PD_FromThenToTS
:==
238
PD_FromThenToSTS
:==
239
PD_FromThenToU
:==
240
PD_FromThenToUTS
:==
241
PD_FromThenToO
:==
242
PD_Dyn__to_TypeCodeConstructor
:==
243
PD_TypeCodeConstructor
:==
244
PD_TC_Int
:==
245
PD_TC_Char
:==
246
PD_TC_Real
:==
247
PD_TC_Bool
:==
248
PD_TC_Dynamic
:==
249
PD_TC_File
:==
250
PD_TC_World
:==
251
PD_TC__Arrow
:==
252
PD_TC__List
:==
253
PD_TC__StrictList
:==
254
PD_TC__UnboxedList
:==
255
PD_TC__TailStrictList
:==
256
PD_TC__StrictTailStrictList
:==
257
PD_TC__UnboxedTailStrictList
:==
258
PD_TC__Tuple2
:==
259
PD_TC__Tuple3
:==
260
PD_TC__Tuple4
:==
261
PD_TC__Tuple5
:==
262
PD_TC__Tuple6
:==
263
PD_TC__Tuple7
:==
264
PD_TC__Tuple8
:==
265
PD_TC__Tuple9
:==
266
PD_TC__Tuple10
:==
267
PD_TC__Tuple11
:==
268
PD_TC__Tuple12
:==
269
PD_TC__Tuple13
:==
270
PD_TC__Tuple14
:==
271
PD_TC__Tuple15
:==
272
PD_TC__Tuple16
:==
273
PD_TC__Tuple17
:==
274
PD_TC__Tuple18
:==
275
PD_TC__Tuple19
:==
276
PD_TC__Tuple20
:==
277
PD_TC__Tuple21
:==
278
PD_TC__Tuple22
:==
279
PD_TC__Tuple23
:==
280
PD_TC__Tuple24
:==
281
PD_TC__Tuple25
:==
282
PD_TC__Tuple26
:==
283
PD_TC__Tuple27
:==
284
PD_TC__Tuple28
:==
285
PD_TC__Tuple29
:==
286
PD_TC__Tuple30
:==
287
PD_TC__Tuple31
:==
288
PD_TC__Tuple32
:==
289
PD_TC__LazyArray
:==
290
PD_TC__StrictArray
:==
291
PD_TC__UnboxedArray
:==
292
PD_NrOfPredefSymbols
:==
293
PD_ConsCONS
:==
202
PD_ConsRECORD
:==
203
PD_ConsFIELD
:==
204
PD_ConsOBJECT
:==
205
PD_CGenericConsDescriptor
:==
206
PD_CGenericRecordDescriptor
:==
207
PD_CGenericFieldDescriptor
:==
208
PD_CGenericTypeDefDescriptor
:==
209
PD_CGenConsNoPrio
:==
210
PD_CGenConsPrio
:==
211
PD_CGenConsAssocNone
:==
212
PD_CGenConsAssocLeft
:==
213
PD_CGenConsAssocRight
:==
214
PD_CGenTypeCons
:==
215
PD_CGenTypeVar
:==
216
PD_CGenTypeArrow
:==
217
PD_CGenTypeApp
:==
218
PD_bimapId
:==
219
PD_GenericBimap
:==
220
PD_FromS
:==
221
PD_FromTS
:==
222
PD_FromSTS
:==
223
PD_FromU
:==
224
PD_FromUTS
:==
225
PD_FromO
:==
226
PD_FromThenS
:==
227
PD_FromThenTS
:==
228
PD_FromThenSTS
:==
229
PD_FromThenU
:==
230
PD_FromThenUTS
:==
231
PD_FromThenO
:==
232
PD_FromToS
:==
233
PD_FromToTS
:==
234
PD_FromToSTS
:==
235
PD_FromToU
:==
236
PD_FromToUTS
:==
237
PD_FromToO
:==
238
PD_FromThenToS
:==
239
PD_FromThenToTS
:==
240
PD_FromThenToSTS
:==
241
PD_FromThenToU
:==
242
PD_FromThenToUTS
:==
243
PD_FromThenToO
:==
244
PD_Dyn__to_TypeCodeConstructor
:==
245
PD_TypeCodeConstructor
:==
246
PD_TC_Int
:==
247
PD_TC_Char
:==
248
PD_TC_Real
:==
249
PD_TC_Bool
:==
250
PD_TC_Dynamic
:==
251
PD_TC_File
:==
252
PD_TC_World
:==
253