aboutsummaryrefslogtreecommitdiff
path: root/frontend/generics1.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/generics1.icl')
-rw-r--r--frontend/generics1.icl324
1 files changed, 162 insertions, 162 deletions
diff --git a/frontend/generics1.icl b/frontend/generics1.icl
index 79c5b70..ef5e590 100644
--- a/frontend/generics1.icl
+++ b/frontend/generics1.icl
@@ -176,9 +176,9 @@ where
dump_funs n funs
| n == size funs
= funs
- #! ({fun_symb, fun_type, fun_body}, funs) = funs ! [n]
+ #! ({fun_ident, fun_type, fun_body}, funs) = funs ! [n]
#! funs = funs
- //---> ("icl function ", fun_symb, n, fun_type, fun_body)
+ //---> ("icl function ", fun_ident, n, fun_type, fun_body)
= dump_funs (inc n) funs
dump_dcl_modules n dcl_modules
| n == size dcl_modules
@@ -189,9 +189,9 @@ where
dump_dcl_funs n dcl_funs dcl_modules
| n == size dcl_funs
= dcl_modules
- # {ft_symb, ft_type} = dcl_funs.[n]
+ # {ft_ident, ft_type} = dcl_funs.[n]
= dump_dcl_funs (inc n) dcl_funs dcl_modules
- //---> ("dcl function", ft_symb, n, ft_type)
+ //---> ("dcl function", ft_ident, n, ft_type)
//****************************************************************************************
@@ -228,7 +228,7 @@ where
#! modules = {modules & [n].com_generic_defs = com_generic_defs}
= clear_module (inc n) modules heaps
- clear_generic_def _ generic_def=:{gen_name,gen_info_ptr} heaps=:{hp_generic_heap}
+ clear_generic_def _ generic_def=:{gen_ident,gen_info_ptr} heaps=:{hp_generic_heap}
#! (gen_info, hp_generic_heap) = readPtr gen_info_ptr hp_generic_heap
#! gen_info =
{ gen_info
@@ -264,8 +264,8 @@ buildGenericRepresentations gs=:{gs_main_module, gs_modules, gs_funs, gs_groups}
where
on_gencase index
- case_def=:{gc_type_cons=TypeConsSymb {type_index={glob_module,glob_object}, type_name},
- gc_name, gc_body=GCB_FunIndex fun_index, gc_pos}
+ case_def=:{gc_type_cons=TypeConsSymb {type_index={glob_module,glob_object}, type_ident},
+ gc_ident, gc_body=GCB_FunIndex fun_index, gc_pos}
(funs_and_groups, gs=:{gs_modules, gs_td_infos, gs_funs})
#! (type_def, gs_modules) = gs_modules![glob_module].com_type_defs.[glob_object]
#! (td_info, gs_td_infos) = gs_td_infos![glob_module, glob_object]
@@ -283,16 +283,16 @@ where
-> case type_def.td_rhs of
SynType _
- # gs_error = reportError gc_name gc_pos ("cannot derive a generic instance for a synonym type " +++ type_def.td_name.id_name) gs.gs_error
+ # gs_error = reportError gc_ident gc_pos ("cannot derive a generic instance for a synonym type " +++ type_def.td_ident.id_name) gs.gs_error
-> (funs_and_groups, {gs & gs_error = gs_error})
AbstractType _
- # gs_error = reportError gc_name gc_pos ("cannot derive a generic instance for an abstract type " +++ type_def.td_name.id_name) gs.gs_error
+ # gs_error = reportError gc_ident gc_pos ("cannot derive a generic instance for an abstract type " +++ type_def.td_ident.id_name) gs.gs_error
-> (funs_and_groups, {gs & gs_error = gs_error})
_
-> case td_info.tdi_gen_rep of
Yes _
-> (funs_and_groups, gs)
- //---> ("generic representation is already built", type_name)
+ //---> ("generic representation is already built", type_ident)
No
#! (gen_type_rep, funs_and_groups, gs)
= buildGenericTypeRep type_def_gi funs_and_groups gs
@@ -302,7 +302,7 @@ where
#! gs_td_infos = {gs_td_infos & [glob_module, glob_object] = td_info}
# gs = {gs & gs_td_infos = gs_td_infos }
-> (funs_and_groups, gs)
- //---> ("build generic representation", type_name)
+ //---> ("build generic representation", type_ident)
on_gencase _ _ st = st
@@ -357,7 +357,7 @@ buildGenericTypeRep type_index funs_and_groups
, gs_exprh = hp_expression_heap
}
= ({gtr_type=atype,gtr_iso=iso_fun_ds}, funs_and_groups, gs)
- //---> ("buildGenericTypeRep", type_def.td_name, atype)
+ //---> ("buildGenericTypeRep", type_def.td_ident, atype)
//========================================================================================
// the structure type
@@ -417,25 +417,25 @@ buildStructType ::
, (!*Modules, !*TypeDefInfos, !*Heaps, !*ErrorAdmin)
)
buildStructType {gi_module,gi_index} cons_infos predefs (modules, td_infos, heaps, error)
- # (type_def=:{td_name}, modules) = modules![gi_module].com_type_defs.[gi_index]
+ # (type_def=:{td_ident}, modules) = modules![gi_module].com_type_defs.[gi_index]
//# (common_defs, modules) = modules ! [gi_module]
= build_type type_def cons_infos (modules, td_infos, heaps, error)
- //---> ("buildStructureType", td_name, atype)
+ //---> ("buildStructureType", td_ident, atype)
where
- build_type {td_rhs=AlgType alts, td_name, td_pos} cons_infos st
- # (cons_args, st) = zipWithSt (build_alt td_name td_pos) alts cons_infos st
+ build_type {td_rhs=AlgType alts, td_ident, td_pos} cons_infos st
+ # (cons_args, st) = zipWithSt (build_alt td_ident td_pos) alts cons_infos st
= (build_sum_type cons_args, st)
/*
- build_type {td_rhs=RecordType {rt_constructor}, td_name, td_pos} [cdi] st
- = build_alt td_name td_pos rt_constructor cdi st
+ build_type {td_rhs=RecordType {rt_constructor}, td_ident, td_pos} [cdi] st
+ = build_alt td_ident td_pos rt_constructor cdi st
*/
build_type
- {td_rhs=RecordType {rt_constructor}, td_name, td_pos}
+ {td_rhs=RecordType {rt_constructor}, td_ident, td_pos}
[{ci_cons_info, ci_field_infos}]
(modules, td_infos, heaps, error)
# ({cons_type={st_args}}, modules) = modules![gi_module].com_cons_defs.[rt_constructor.ds_index]
- # (args, st) = mapSt (convertATypeToGenTypeStruct td_name td_pos predefs) st_args (modules, td_infos, heaps, error)
+ # (args, st) = mapSt (convertATypeToGenTypeStruct td_ident td_pos predefs) st_args (modules, td_infos, heaps, error)
# args = SwitchGenericInfo [GTSField fi arg \\ arg <- args & fi <- ci_field_infos] args
@@ -444,19 +444,19 @@ where
= (type, st)
/*
- build_type {td_rhs=SynType type,td_name, td_pos} cons_infos common_defs st
- = convertATypeToGenTypeStruct td_name td_pos type st
+ build_type {td_rhs=SynType type,td_ident, td_pos} cons_infos common_defs st
+ = convertATypeToGenTypeStruct td_ident td_pos type st
*/
- build_type {td_rhs=SynType type,td_name, td_pos} cons_infos (modules, td_infos, heaps, error)
- # error = reportError td_name td_pos "cannot build a generic representation of a synonym type" error
+ build_type {td_rhs=SynType type,td_ident, td_pos} cons_infos (modules, td_infos, heaps, error)
+ # error = reportError td_ident td_pos "cannot build a generic representation of a synonym type" error
= (GTSE, (modules, td_infos, heaps, error))
- build_type td=:{td_rhs=(AbstractType _),td_name, td_arity, td_args, td_pos} cdis (modules, td_infos, heaps, error)
- # error = reportError td_name td_pos "cannot build a generic representation of an abstract type" error
+ build_type td=:{td_rhs=(AbstractType _),td_ident, td_arity, td_args, td_pos} cdis (modules, td_infos, heaps, error)
+ # error = reportError td_ident td_pos "cannot build a generic representation of an abstract type" error
= (GTSE, (modules, td_infos, heaps, error))
- build_alt td_name td_pos cons_def_sym=:{ds_index} {ci_cons_info} (modules, td_infos, heaps, error)
+ build_alt td_ident td_pos cons_def_sym=:{ds_index} {ci_cons_info} (modules, td_infos, heaps, error)
# ({cons_type={st_args}}, modules) = modules![gi_module].com_cons_defs.[ds_index]
- # (args, st) = mapSt (convertATypeToGenTypeStruct td_name td_pos predefs) st_args (modules, td_infos, heaps, error)
+ # (args, st) = mapSt (convertATypeToGenTypeStruct td_ident td_pos predefs) st_args (modules, td_infos, heaps, error)
# prod_type = build_prod_type args
# type = SwitchGenericInfo (GTSCons ci_cons_info prod_type) prod_type
= (type, st)
@@ -533,12 +533,12 @@ buildTypeDefInfo td_module td=:{td_rhs = AlgType alts} main_module_index predefs
buildTypeDefInfo td_module td=:{td_rhs=RecordType {rt_constructor, rt_fields}} main_module_index predefs funs_and_groups modules heaps error
= buildTypeDefInfo2 td_module td [rt_constructor] [x\\x<-:rt_fields] main_module_index predefs funs_and_groups modules heaps error
-buildTypeDefInfo td_module td=:{td_rhs = SynType type, td_name, td_pos} main_module_index predefs funs_and_groups modules heaps error
- # error = reportError td_name td_pos "cannot build constructor uinformation for a synonym type" error
+buildTypeDefInfo td_module td=:{td_rhs = SynType type, td_ident, td_pos} main_module_index predefs funs_and_groups modules heaps error
+ # error = reportError td_ident td_pos "cannot build constructor uinformation for a synonym type" error
= buildTypeDefInfo2 td_module td [] [] main_module_index predefs funs_and_groups modules heaps error
-buildTypeDefInfo td_module td=:{td_rhs = AbstractType _, td_name, td_pos} main_module_index predefs funs_and_groups modules heaps error
- # error = reportError td_name td_pos "cannot build constructor uinformation for an abstract type" error
+buildTypeDefInfo td_module td=:{td_rhs = AbstractType _, td_ident, td_pos} main_module_index predefs funs_and_groups modules heaps error
+ # error = reportError td_ident td_pos "cannot build constructor uinformation for an abstract type" error
= buildTypeDefInfo2 td_module td [] [] main_module_index predefs funs_and_groups modules heaps error
buildTypeDefInfo2 td_module td alts fields main_module_index predefs funs_and_groups modules heaps error
@@ -549,7 +549,7 @@ where
dummy_ds = {ds_index = -1, ds_arity = 0, ds_ident = makeIdent "<dummy_generic_info>"}
dummy = (dummy_ds, repeatn (length alts) dummy_ds)
-buildTypeDefInfo1 td_module {td_name, td_pos, td_arity} alts fields main_module_index predefs (fun_index, group_index, funs, groups) modules heaps error
+buildTypeDefInfo1 td_module {td_ident, td_pos, td_arity} alts fields main_module_index predefs (fun_index, group_index, funs, groups) modules heaps error
# num_conses = length alts
# num_fields = length fields
@@ -565,11 +565,11 @@ buildTypeDefInfo1 td_module {td_name, td_pos, td_arity} alts fields main_module_
# group = {group_members = [fun_index .. new_fun_index - 1]}
# new_groups = [group:groups]
- # type_def_dsc_ds = {ds_arity=0, ds_ident=makeIdent("tdi_"+++td_name.id_name), ds_index=type_def_dsc_index}
+ # type_def_dsc_ds = {ds_arity=0, ds_ident=makeIdent("tdi_"+++td_ident.id_name), ds_index=type_def_dsc_index}
# cons_dsc_dss = [ {ds_arity=0, ds_ident=makeIdent("cdi_"+++ds_ident.id_name), ds_index=i} \\
{ds_ident} <- alts & i <- cons_dsc_indexes]
- # field_dsc_dss = [ {ds_arity=0, ds_ident=makeIdent("fdi_"+++fs_name.id_name), ds_index=i} \\
- {fs_name} <- fields & i <- field_dsc_indexes]
+ # field_dsc_dss = [ {ds_arity=0, ds_ident=makeIdent("fdi_"+++fs_ident.id_name), ds_index=i} \\
+ {fs_ident} <- fields & i <- field_dsc_indexes]
# (type_def_dsc_fun, heaps) = build_type_def_dsc group_index cons_dsc_dss type_def_dsc_ds heaps
@@ -597,7 +597,7 @@ buildTypeDefInfo1 td_module {td_name, td_pos, td_arity} alts fields main_module_
where
build_type_def_dsc group_index cons_info_dss {ds_index, ds_ident} heaps
- # td_name_expr = makeStringExpr td_name.id_name
+ # td_name_expr = makeStringExpr td_ident.id_name
# td_arity_expr = makeIntExpr td_arity
# num_conses_expr = makeIntExpr (length alts)
# (cons_info_exprs, heaps) = mapSt (\x st->buildFunApp main_module_index x [] st) cons_info_dss heaps
@@ -615,9 +615,9 @@ where
= (fun, heaps)
build_cons_dsc group_index type_def_info_ds field_dsc_dss cons_info_ds cons_ds (modules, heaps)
- # ({cons_symb, cons_type, cons_priority,cons_index}, modules)
+ # ({cons_ident, cons_type, cons_priority,cons_index}, modules)
= modules! [td_module].com_cons_defs.[cons_ds.ds_index]
- # name_expr = makeStringExpr cons_symb.id_name
+ # name_expr = makeStringExpr cons_ident.id_name
# arity_expr = makeIntExpr cons_type.st_arity
# (prio_expr, heaps) = make_prio_expr cons_priority heaps
# (type_def_expr, heaps) = buildFunApp main_module_index type_def_info_ds [] heaps
@@ -669,11 +669,11 @@ where
make_expr :: !Type !*Heaps -> (!Expression, !*Heaps)
make_expr (TA type_symb arg_types) heaps
# (arg_exprs, heaps) = mapSt make_expr1 arg_types heaps
- # (type_cons, heaps) = make_type_cons type_symb.type_name.id_name heaps
+ # (type_cons, heaps) = make_type_cons type_symb.type_ident.id_name heaps
= make_apps type_cons arg_exprs heaps
make_expr (TAS type_symb arg_types _) heaps
# (arg_exprs, heaps) = mapSt make_expr1 arg_types heaps
- # (type_cons, heaps) = make_type_cons type_symb.type_name.id_name heaps
+ # (type_cons, heaps) = make_type_cons type_symb.type_ident.id_name heaps
= make_apps type_cons arg_exprs heaps
make_expr (x --> y) heaps
# (x, heaps) = make_expr1 x heaps
@@ -685,18 +685,18 @@ where
# (arg_expr, heaps) = make_expr1 type heaps
# (arrow_expr, heaps) = make_type_cons "(->)" heaps
= make_app arrow_expr arg_expr heaps
- make_expr (CV {tv_name} :@: arg_types) heaps
+ make_expr (CV {tv_ident} :@: arg_types) heaps
# (arg_exprs, heaps) = mapSt make_expr1 arg_types heaps
- # (tv_expr, heaps) = make_type_var tv_name.id_name heaps
+ # (tv_expr, heaps) = make_type_var tv_ident.id_name heaps
= make_apps tv_expr arg_exprs heaps
make_expr (TB bt) heaps
= make_type_cons (toString bt) heaps
- make_expr (TV {tv_name}) heaps
- = make_type_var tv_name.id_name heaps
- make_expr (GTV {tv_name}) heaps
- = make_type_var tv_name.id_name heaps
- make_expr (TQV {tv_name}) heaps
- = make_type_var tv_name.id_name heaps
+ make_expr (TV {tv_ident}) heaps
+ = make_type_var tv_ident.id_name heaps
+ make_expr (GTV {tv_ident}) heaps
+ = make_type_var tv_ident.id_name heaps
+ make_expr (TQV {tv_ident}) heaps
+ = make_type_var tv_ident.id_name heaps
make_expr TE heaps
= make_type_cons "<error>" heaps
make_expr _ heaps
@@ -717,8 +717,8 @@ where
make_arrow x y heaps = buildPredefConsApp PD_CGenTypeArrow [x, y] predefs heaps
make_app x y heaps = buildPredefConsApp PD_CGenTypeApp [x, y] predefs heaps
- build_field_dsc group_index cons_dsc_ds field_dsc_ds {fs_name, fs_index} (modules, heaps)
- # name_expr = makeStringExpr fs_name.id_name
+ build_field_dsc group_index cons_dsc_ds field_dsc_ds {fs_ident, fs_index} (modules, heaps)
+ # name_expr = makeStringExpr fs_ident.id_name
# index_expr = makeIntExpr fs_index
# (cons_expr, heaps) = buildFunApp main_module_index cons_dsc_ds [] heaps
# (body_expr, heaps)
@@ -773,7 +773,7 @@ buildConversionIso ::
, !*ErrorAdmin
)
buildConversionIso
- type_def=:{td_name, td_pos}
+ type_def=:{td_ident, td_pos}
from_fun
to_fun
main_dcl_module_n
@@ -785,10 +785,10 @@ buildConversionIso
#! (to_expr, heaps) = buildFunApp main_dcl_module_n to_fun [] heaps
#! (iso_expr, heaps) = build_iso to_expr from_expr heaps
- #! ident = makeIdent ("iso" +++ td_name.id_name)
+ #! ident = makeIdent ("iso" +++ td_ident.id_name)
#! (def_sym, funs_and_groups) = buildFunAndGroup ident [] iso_expr No main_dcl_module_n td_pos funs_and_groups
= (def_sym, funs_and_groups, heaps, error)
- //---> ("buildConversionIso", td_name, let (_,_,fs,_) = funs_and_groups in hd fs)
+ //---> ("buildConversionIso", td_ident, let (_,_,fs,_) = funs_and_groups in hd fs)
where
build_iso to_expr from_expr heaps
= buildPredefConsApp PD_ConsBimap [to_expr, from_expr] predefs heaps
@@ -809,7 +809,7 @@ buildConversionTo ::
)
buildConversionTo
type_def_mod
- type_def=:{td_rhs, td_name, td_index, td_pos}
+ type_def=:{td_rhs, td_ident, td_index, td_pos}
main_module_index
predefs
funs_and_groups
@@ -818,16 +818,16 @@ buildConversionTo
# (arg_expr, arg_var, heaps) = buildVarExpr "x" heaps
# (body_expr, heaps, error) =
build_expr_for_type_rhs type_def_mod td_index td_rhs arg_expr heaps error
- # fun_name = makeIdent ("fromGenericTo" +++ td_name.id_name)
+ # fun_name = makeIdent ("fromGenericTo" +++ td_ident.id_name)
| not error.ea_ok
# (def_sym, funs_and_groups)
= (buildFunAndGroup fun_name [] EE No main_module_index td_pos funs_and_groups)
= (def_sym, funs_and_groups, heaps, error)
- //---> ("buildConversionTo failed", td_name)
+ //---> ("buildConversionTo failed", td_ident)
# (def_sym, funs_and_groups)
= (buildFunAndGroup fun_name [arg_var] body_expr No main_module_index td_pos funs_and_groups)
= (def_sym, funs_and_groups, heaps, error)
- //---> ("buildConversionTo", td_name, let (_,_,fs,_) = funs_and_groups in hd fs)
+ //---> ("buildConversionTo", td_ident, let (_,_,fs,_) = funs_and_groups in hd fs)
where
// build conversion for type rhs
build_expr_for_type_rhs ::
@@ -846,10 +846,10 @@ where
build_expr_for_type_rhs type_def_mod type_def_index (RecordType {rt_constructor}) arg_expr heaps error
= build_expr_for_conses True type_def_mod type_def_index [rt_constructor] arg_expr heaps error
build_expr_for_type_rhs type_def_mod type_def_index (AbstractType _) arg_expr heaps error
- #! error = checkErrorWithIdentPos (newPosition td_name td_pos) "cannot build isomorphisms for an abstract type" error
+ #! error = checkErrorWithIdentPos (newPosition td_ident td_pos) "cannot build isomorphisms for an abstract type" error
= (EE, heaps, error)
build_expr_for_type_rhs type_def_mod type_def_index (SynType _) arg_expr heaps error
- #! error = checkErrorWithIdentPos (newPosition td_name td_pos) "cannot build isomorphisms for a synonym type" error
+ #! error = checkErrorWithIdentPos (newPosition td_ident td_pos) "cannot build isomorphisms for a synonym type" error
= (EE, heaps, error)
// build conversion for constructors of a type def
@@ -941,7 +941,7 @@ buildConversionFrom ::
)
buildConversionFrom
type_def_mod
- type_def=:{td_rhs, td_name, td_index, td_pos}
+ type_def=:{td_rhs, td_ident, td_index, td_pos}
main_module_index
predefs
funs_and_groups
@@ -949,16 +949,16 @@ buildConversionFrom
error
# (body_expr, arg_var, heaps, error) =
build_expr_for_type_rhs type_def_mod td_rhs heaps error
- # fun_name = makeIdent ("toGenericFrom" +++ td_name.id_name)
+ # fun_name = makeIdent ("toGenericFrom" +++ td_ident.id_name)
| not error.ea_ok
# (def_sym, funs_and_groups)
= (buildFunAndGroup fun_name [] EE No main_module_index td_pos funs_and_groups)
= (def_sym, funs_and_groups, heaps, error)
- //---> ("buildConversionFrom failed", td_name)
+ //---> ("buildConversionFrom failed", td_ident)
# (def_sym, funs_and_groups)
= (buildFunAndGroup fun_name [arg_var] body_expr No main_module_index td_pos funs_and_groups)
= (def_sym, funs_and_groups, heaps, error)
- //---> ("buildConversionFrom", td_name, let (_,_,fs,_) = funs_and_groups in hd fs)
+ //---> ("buildConversionFrom", td_ident, let (_,_,fs,_) = funs_and_groups in hd fs)
where
// build expression for type def rhs
build_expr_for_type_rhs ::
@@ -976,12 +976,12 @@ where
build_expr_for_type_rhs type_def_mod (RecordType {rt_constructor}) heaps error
= build_sum True type_def_mod [rt_constructor] heaps error
build_expr_for_type_rhs type_def_mod (AbstractType _) heaps error
- #! error = reportError td_name td_pos "cannot build isomorphisms for an abstract type" error
- # dummy_fv = {fv_def_level=(-1), fv_count=0, fv_name=makeIdent "dummy", fv_info_ptr=nilPtr}
+ #! error = reportError td_ident td_pos "cannot build isomorphisms for an abstract type" error
+ # dummy_fv = {fv_def_level=(-1), fv_count=0, fv_ident=makeIdent "dummy", fv_info_ptr=nilPtr}
= (EE, dummy_fv, heaps, error)
build_expr_for_type_rhs type_def_mod (SynType _) heaps error
- #! error = reportError td_name td_pos "cannot build isomorphisms for a synonym type" error
- # dummy_fv = {fv_def_level=(-1), fv_count=0, fv_name=makeIdent "dummy", fv_info_ptr=nilPtr}
+ #! error = reportError td_ident td_pos "cannot build isomorphisms for a synonym type" error
+ # dummy_fv = {fv_def_level=(-1), fv_count=0, fv_ident=makeIdent "dummy", fv_info_ptr=nilPtr}
= (EE, dummy_fv, heaps, error)
// build expression for sums
@@ -1168,7 +1168,7 @@ where
)
on_gencase
module_index index
- gencase=:{gc_name,gc_generic, gc_type_cons}
+ gencase=:{gc_ident,gc_generic, gc_type_cons}
st
gs=:{gs_modules, gs_td_infos}
@@ -1242,7 +1242,7 @@ where
= (KindConst, td_infos)
get_kind_of_type_cons TypeConsArrow td_infos
= (KindArrow [KindConst,KindConst], td_infos)
- get_kind_of_type_cons (TypeConsSymb {type_name, type_index}) td_infos
+ get_kind_of_type_cons (TypeConsSymb {type_ident, type_index}) td_infos
#! ({tdi_kinds}, td_infos) = td_infos ! [type_index.glob_module,type_index.glob_object]
= (if (isEmpty tdi_kinds) KindConst (KindArrow tdi_kinds), td_infos)
get_kind_of_type_cons (TypeConsVar tv) td_infos
@@ -1297,12 +1297,12 @@ where
// - context restrictions on generic variables are not allowed
buildMemberType :: !GenericDef !TypeKind !TypeVar !*GenericState
-> ( !SymbolType, !*GenericState)
-buildMemberType gen_def=:{gen_name,gen_pos,gen_type,gen_vars} kind class_var gs=:{gs_predefs}
+buildMemberType gen_def=:{gen_ident,gen_pos,gen_type,gen_vars} kind class_var gs=:{gs_predefs}
#! (gen_type, gs) = add_bimap_contexts gen_def gs
#! th = {th_vars = gs.gs_tvarh, th_attrs = gs.gs_avarh}
#! (kind_indexed_st, gatvs, th, gs_error)
- = buildKindIndexedType gen_type gen_vars kind gen_name gen_pos th gs.gs_error
+ = buildKindIndexedType gen_type gen_vars kind gen_ident gen_pos th gs.gs_error
#! (member_st, th, gs_error)
= replace_generic_vars_with_class_var kind_indexed_st gatvs kind th gs_error
@@ -1315,7 +1315,7 @@ buildMemberType gen_def=:{gen_name,gen_pos,gen_type,gen_vars} kind class_var gs=
# {th_vars, th_attrs} = th
#! gs = {gs & gs_avarh = th_attrs, gs_tvarh = th_vars, gs_error = gs_error }
= (member_st, gs)
- //---> ("buildMemberType returns", gen_name, kind, member_st)
+ //---> ("buildMemberType returns", gen_ident, kind, member_st)
where
add_bimap_contexts
{gen_type=gen_type=:{st_vars, st_context}, gen_vars, gen_info_ptr}
@@ -1395,18 +1395,18 @@ where
buildClassAndMember
module_index class_index member_index kind
- gen_def=:{gen_name, gen_pos}
+ gen_def=:{gen_ident, gen_pos}
gs=:{gs_tvarh}
# (class_var, gs_tvarh) = freshTypeVar (makeIdent "class_var") gs_tvarh
#! (member_def, gs)
= build_class_member class_var {gs & gs_tvarh = gs_tvarh}
#! class_def = build_class class_var member_def
= (class_def, member_def, gs)
- //---> ("buildClassAndMember", gen_def.gen_name, kind)
+ //---> ("buildClassAndMember", gen_def.gen_ident, kind)
where
- class_ident = genericIdentToClassIdent gen_def.gen_name kind
- member_ident = genericIdentToMemberIdent gen_def.gen_name kind
+ class_ident = genericIdentToClassIdent gen_def.gen_ident kind
+ member_ident = genericIdentToMemberIdent gen_def.gen_ident kind
class_ds = {ds_index = class_index, ds_ident = class_ident, ds_arity = 1}
build_class_member class_var gs=:{gs_varh}
@@ -1422,7 +1422,7 @@ where
= buildMemberType gen_def kind class_var gs
#! member_type = { member_type & st_context = [type_context : member_type.st_context] }
#! member_def = {
- me_symb = member_ident,
+ me_ident = member_ident,
me_class = {glob_module = module_index, glob_object = class_index},
me_offset = 0,
me_type = member_type,
@@ -1445,7 +1445,7 @@ where
, ds_index = NoIndex/*index in the type def table, filled in later*/
}
#! class_def = {
- class_name = class_ident,
+ class_ident = class_ident,
class_arity = 1,
class_args = [class_var],
class_context = [],
@@ -1581,14 +1581,14 @@ where
, !*ErrorAdmin
)
)
- convert_gencase module_index gc_index gencase=:{gc_name, gc_type} st
+ convert_gencase module_index gc_index gencase=:{gc_ident, gc_type} st
#! st = build_main_instance module_index gc_index gencase st
#! st = build_shorthand_instances module_index gc_index gencase st
= st
- //---> ("convert gencase", gc_name, gc_type)
+ //---> ("convert gencase", gc_ident, gc_type)
build_main_instance module_index gc_index
- gencase=:{gc_name, gc_kind, gc_generic, gc_pos, gc_type, gc_type_cons, gc_body = GCB_FunIndex fun_index}
+ gencase=:{gc_ident, gc_kind, gc_generic, gc_pos, gc_type, gc_type_cons, gc_body = GCB_FunIndex fun_index}
(dcl_functions, modules, (fun_info, ins_info, fun_defs, td_infos, heaps, error))
#! ({gen_classes}, modules, heaps)
= get_generic_info gc_generic modules heaps
@@ -1630,7 +1630,7 @@ where
= st
build_shorthand_instances
module_index gc_index
- gencase=:{gc_kind=KindArrow kinds, gc_type, gc_generic, gc_name, gc_pos}
+ gencase=:{gc_kind=KindArrow kinds, gc_type, gc_generic, gc_ident, gc_pos}
st
= foldSt build_shorthand_instance [1 .. length kinds] st
where
@@ -1682,7 +1682,7 @@ where
}
= (ins_type, {heaps & hp_type_heaps = {th & th_vars = th_vars}, hp_var_heap = hp_var_heap})
- //---> ("instance type for shorthand instance", gc_name, gc_type, ins_type)
+ //---> ("instance type for shorthand instance", gc_ident, gc_type, ins_type)
where
fill_type_args (TA type_symb_ident=:{type_arity} type_args) new_type_args
#! type_arity = type_arity + length new_type_args
@@ -1703,7 +1703,7 @@ where
{ tc_class = TCClass
{ glob_module=gci_module // the same as icl module
, glob_object =
- { ds_ident = genericIdentToClassIdent gc_name gci_kind
+ { ds_ident = genericIdentToClassIdent gc_ident gci_kind
, ds_index = gci_class
, ds_arity = 1
}
@@ -1713,15 +1713,15 @@ where
}
= (type_context, hp_var_heap)
- build_shorthand_instance_member module_index this_kind gencase=:{gc_generic, gc_name, gc_kind, gc_pos} st class_infos fun_info heaps
+ build_shorthand_instance_member module_index this_kind gencase=:{gc_generic, gc_ident, gc_kind, gc_pos} st class_infos fun_info heaps
#! arg_var_names = ["x" +++ toString i \\ i <- [1..st.st_arity-SwitchGenericInfo 1 0]]
#! (arg_var_exprs, arg_vars, heaps) = buildVarExprs arg_var_names heaps
#! (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty heaps.hp_expression_heap
#! heaps = {heaps & hp_expression_heap = hp_expression_heap}
- #! fun_name = genericIdentToMemberIdent gc_name this_kind
+ #! fun_name = genericIdentToMemberIdent gc_ident this_kind
- # (gen_exprs, heaps) = mapSt (build_generic_app gc_generic gc_name) class_infos heaps
+ # (gen_exprs, heaps) = mapSt (build_generic_app gc_generic gc_ident) class_infos heaps
#! arg_exprs = gen_exprs ++ arg_var_exprs
@@ -1731,7 +1731,7 @@ where
# (body_expr, heaps)
= buildGenericApp gc_generic.gi_module gc_generic.gi_index
- gc_name gc_kind arg_exprs heaps
+ gc_ident gc_kind arg_exprs heaps
#! (st, heaps) = fresh_symbol_type st heaps
@@ -1741,21 +1741,21 @@ where
= (fun_ds, fun_info, heaps)
//---> ("shorthand instance body", body_expr)
where
- build_generic_app {gi_module, gi_index} gc_name {gci_kind} heaps
+ build_generic_app {gi_module, gi_index} gc_ident {gci_kind} heaps
# (generic_info_expr, heaps) = build_generic_info_expr heaps
- = buildGenericApp gi_module gi_index gc_name gci_kind (SwitchGenericInfo [generic_info_expr] []) heaps
+ = buildGenericApp gi_module gi_index gc_ident gci_kind (SwitchGenericInfo [generic_info_expr] []) heaps
build_generic_info_expr heaps
= buildPredefConsApp PD_NoGenericInfo [] gs_predefs heaps
build_class_instance this_kind class_index gencase member_fun_ds ins_type (ins_index, instances)
- # {gc_pos, gc_name, gc_kind} = gencase
+ # {gc_pos, gc_ident, gc_kind} = gencase
- #! class_name = genericIdentToClassIdent gc_name this_kind
- #! class_ds = {ds_index = class_index, ds_arity=1, ds_ident=class_name}
+ #! class_ident = genericIdentToClassIdent gc_ident this_kind
+ #! class_ds = {ds_index = class_index, ds_arity=1, ds_ident=class_ident}
#! ins =
{ ins_class = {glob_module=gs_main_module, glob_object=class_ds}
- , ins_ident = class_name
+ , ins_ident = class_ident
, ins_type = ins_type
, ins_members = {member_fun_ds}
, ins_specials = SP_None
@@ -1790,18 +1790,18 @@ where
update_dcl_function :: !Index !GenericCaseDef !SymbolType !*{#FunType} !*Heaps
-> (!*{#FunType}, !*Heaps)
- update_dcl_function fun_index {gc_name, gc_type_cons} symbol_type dcl_functions heaps
+ update_dcl_function fun_index {gc_ident, gc_type_cons} symbol_type dcl_functions heaps
| fun_index < size dcl_functions
#! (symbol_type, heaps) = fresh_symbol_type symbol_type heaps
#! (fun, dcl_functions) = dcl_functions ! [fun_index]
#! fun =
{ fun
- & ft_symb = genericIdentToFunIdent gc_name gc_type_cons
+ & ft_ident = genericIdentToFunIdent gc_ident gc_type_cons
, ft_type = symbol_type
}
#! dcl_functions = { dcl_functions & [fun_index] = fun}
= (dcl_functions, heaps)
- //---> ("update dcl function", fun.ft_symb, fun_index, symbol_type)
+ //---> ("update dcl function", fun.ft_ident, fun_index, symbol_type)
= (dcl_functions, heaps)
//---> ("update dcl function: not in the dcl module", fun_index)
@@ -1817,24 +1817,24 @@ where
!Index !GenericCaseDef !SymbolType
!Index ![Group] !*{#FunDef} !*TypeDefInfos !*{#CommonDefs} !*Heaps !*ErrorAdmin
-> (!Index, ![Group], !*{#FunDef}, !*TypeDefInfos, !*{#CommonDefs}, !*Heaps, !*ErrorAdmin)
- update_icl_function fun_index gencase=:{gc_name, gc_type_cons, gc_pos} st group_index groups fun_defs td_infos modules heaps error
+ update_icl_function fun_index gencase=:{gc_ident, gc_type_cons, gc_pos} st group_index groups fun_defs td_infos modules heaps error
#! (st, heaps) = fresh_symbol_type st heaps
#! (fun=:{fun_body, fun_arity}, fun_defs) = fun_defs ! [fun_index]
- #! fun_ident = genericIdentToFunIdent gc_name gc_type_cons
+ #! fun_ident = genericIdentToFunIdent gc_ident gc_type_cons
= case fun_body of
TransformedBody tb // user defined case
| fun_arity <> st.st_arity
- # error = reportError gc_name gc_pos
+ # error = reportError gc_ident gc_pos
("incorrect arity " +++ toString fun_arity +++ ", expected " +++ toString st.st_arity) error
-> (group_index, groups, fun_defs, td_infos, modules, heaps, error)
#! fun =
{ fun
- & fun_symb = fun_ident
+ & fun_ident = fun_ident
, fun_type = Yes st
}
#! fun_defs = { fun_defs & [fun_index] = fun }
-> (group_index, groups, fun_defs, td_infos, modules, heaps, error)
- //---> ("update_icl_function, TransformedBody", fun.fun_symb, fun_index, st)
+ //---> ("update_icl_function, TransformedBody", fun.fun_ident, fun_index, st)
GeneratedBody // derived case
#! (TransformedBody {tb_args, tb_rhs}, td_infos, modules, heaps, error)
@@ -1846,7 +1846,7 @@ where
# group = {group_members=[fun_index]}
-> (inc group_index, [group:groups], fun_defs, td_infos, modules, heaps, error)
- //---> ("update_icl_function, GeneratedBody", fun.fun_symb, fun_index, st)
+ //---> ("update_icl_function, GeneratedBody", fun.fun_ident, fun_index, st)
_ -> abort "update_icl_function: generic case body\n"
// build wrapping instance for the generic case function
@@ -1864,16 +1864,16 @@ where
// module as the instance itself
build_instance_member module_index gencase st fun_info heaps
- # {gc_name, gc_pos, gc_type_cons, gc_kind, gc_body=GCB_FunIndex fun_index} = gencase
+ # {gc_ident, gc_pos, gc_type_cons, gc_kind, gc_body=GCB_FunIndex fun_index} = gencase
#! arg_var_names = ["x" +++ toString i \\ i <- [1..st.st_arity]]
#! (arg_var_exprs, arg_vars, heaps) = buildVarExprs arg_var_names heaps
#! (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty heaps.hp_expression_heap
#! heaps = {heaps & hp_expression_heap = hp_expression_heap}
- #! fun_name = genericIdentToFunIdent gc_name gc_type_cons
+ #! fun_name = genericIdentToFunIdent gc_ident gc_type_cons
#! expr = App
{ app_symb =
- { symb_name=fun_name
+ { symb_ident=fun_name
, symb_kind=SK_Function {glob_module=module_index, glob_object=fun_index}
}
, app_args = arg_var_exprs
@@ -1882,20 +1882,20 @@ where
#! (st, heaps) = fresh_symbol_type st heaps
- #! memfun_name = genericIdentToMemberIdent gc_name gc_kind
+ #! memfun_name = genericIdentToMemberIdent gc_ident gc_kind
#! (fun_ds, fun_info)
= buildFunAndGroup memfun_name arg_vars expr (Yes st) gs_main_module gc_pos fun_info
= (fun_ds, fun_info, heaps)
build_class_instance class_index gencase member_fun_ds ins_type (ins_index, instances)
- # {gc_pos, gc_name, gc_kind} = gencase
+ # {gc_pos, gc_ident, gc_kind} = gencase
- #! class_name = genericIdentToClassIdent gc_name gc_kind
- #! class_ds = {ds_index = class_index, ds_arity=1, ds_ident=class_name}
+ #! class_ident = genericIdentToClassIdent gc_ident gc_kind
+ #! class_ds = {ds_index = class_index, ds_arity=1, ds_ident=class_ident}
#! ins =
{ ins_class = {glob_module=gs_main_module, glob_object=class_ds}
- , ins_ident = class_name
+ , ins_ident = class_ident
, ins_type = ins_type
, ins_members = {member_fun_ds}
, ins_specials = SP_None
@@ -1925,12 +1925,12 @@ buildGenericCaseBody ::
, !*Heaps
, !*ErrorAdmin
)
-buildGenericCaseBody main_module_index gc=:{gc_name, gc_pos, gc_generic, gc_type_cons=TypeConsSymb {type_name,type_index}} st predefs td_infos modules heaps error
+buildGenericCaseBody main_module_index gc=:{gc_ident, gc_pos, gc_generic, gc_type_cons=TypeConsSymb {type_ident,type_index}} st predefs td_infos modules heaps error
// get all the data we need
#! (gen_def, modules)
= modules ! [gc_generic.gi_module].com_generic_defs.[gc_generic.gi_index]
- //---> ("buildGenericCaseBody for", gc_name, type_name, st)
+ //---> ("buildGenericCaseBody for", gc_ident, type_ident, st)
#! (td_info=:{tdi_gen_rep}, td_infos)
= td_infos ! [type_index.glob_module, type_index.glob_object]
# (gen_type_rep=:{gtr_iso, gtr_type}) = case tdi_gen_rep of
@@ -1966,15 +1966,15 @@ where
build_generic_info_arg heaps=:{hp_var_heap}
// generic arg is never referenced in the generated body
#! (fv_info_ptr, hp_var_heap) = newPtr VI_Empty hp_var_heap
- #! fv = {fv_count = 0, fv_name = makeIdent "geninfo", fv_info_ptr = fv_info_ptr, fv_def_level = NotALevel}
+ #! fv = {fv_count = 0, fv_ident = makeIdent "geninfo", fv_info_ptr = fv_info_ptr, fv_def_level = NotALevel}
= (fv, {heaps & hp_var_heap = hp_var_heap})
- build_arg_vars {gen_name, gen_vars, gen_type} td_args heaps
+ build_arg_vars {gen_ident, gen_vars, gen_type} td_args heaps
#! generated_arg_names
- = [ gen_name.id_name +++ atv_variable.tv_name.id_name \\ {atv_variable} <- td_args]
+ = [ gen_ident.id_name +++ atv_variable.tv_ident.id_name \\ {atv_variable} <- td_args]
#! (generated_arg_exprs, generated_arg_vars, heaps)
= buildVarExprs
- [ gen_name.id_name +++ atv_variable.tv_name.id_name \\ {atv_variable} <- td_args]
+ [ gen_ident.id_name +++ atv_variable.tv_ident.id_name \\ {atv_variable} <- td_args]
heaps
#! (original_arg_exprs, original_arg_vars, heaps)
= buildVarExprs
@@ -1984,7 +1984,7 @@ where
// adaptor that converts a function for the generic representation into a
// function for the type itself
- build_adaptor_expr {gc_name, gc_pos} {gen_type, gen_vars, gen_info_ptr} {gtr_iso} (modules, td_infos, heaps, error)
+ build_adaptor_expr {gc_ident, gc_pos} {gen_type, gen_vars, gen_info_ptr} {gtr_iso} (modules, td_infos, heaps, error)
#! (var_kinds, heaps) = get_var_kinds gen_info_ptr heaps
#! non_gen_var_kinds = drop (length gen_vars) var_kinds
@@ -2045,9 +2045,9 @@ where
= ((non_gen_var, expr), heaps)
// generic function specialzied to the generic representation of the type
- build_specialized_expr {gc_name, gc_pos, gc_generic} gtr_type td_args generated_arg_exprs state
+ build_specialized_expr {gc_ident, gc_pos, gc_generic} gtr_type td_args generated_arg_exprs state
#! spec_env = [(atv_variable, expr) \\ {atv_variable} <- td_args & expr <- generated_arg_exprs]
- = specializeGeneric gc_generic gtr_type spec_env gc_name gc_pos main_module_index predefs state
+ = specializeGeneric gc_generic gtr_type spec_env gc_ident gc_pos main_module_index predefs state
// the body expression
build_body_expr adaptor_expr specialized_expr []
@@ -2056,9 +2056,9 @@ where
= (adaptor_expr @ [specialized_expr]) @ original_arg_exprs
-//buildGenericCaseBody main_module_index {gc_name,gc_pos, gc_generic, gc_type_cons=TypeConsSymb {type_index}} st predefs td_infos modules heaps error
-buildGenericCaseBody main_module_index {gc_name,gc_pos} st predefs td_infos modules heaps error
- # error = reportError gc_name gc_pos "cannot specialize to this type" error
+//buildGenericCaseBody main_module_index {gc_ident,gc_pos, gc_generic, gc_type_cons=TypeConsSymb {type_index}} st predefs td_infos modules heaps error
+buildGenericCaseBody main_module_index {gc_ident,gc_pos} st predefs td_infos modules heaps error
+ # error = reportError gc_ident gc_pos "cannot specialize to this type" error
= (TransformedBody {tb_args=[], tb_rhs=EE}, td_infos, modules, heaps, error)
//****************************************************************************************
@@ -2108,8 +2108,8 @@ where
where
convert_function :: !FunDef (!*Modules, !*Heaps, !*ErrorAdmin)
-> (!FunDef, (!*Modules, !*Heaps, !*ErrorAdmin))
- convert_function fun=:{fun_type=Yes symbol_type=:{st_context}, fun_symb, fun_pos} st
- # (has_converted, st_context, st) = convert_contexts fun_symb fun_pos st_context st
+ convert_function fun=:{fun_type=Yes symbol_type=:{st_context}, fun_ident, fun_pos} st
+ # (has_converted, st_context, st) = convert_contexts fun_ident fun_pos st_context st
| has_converted
# fun = {fun & fun_type = Yes {symbol_type & st_context = st_context}}
= (fun, st)
@@ -2164,14 +2164,14 @@ where
= (common_defs, modules, (heaps, error))
where
- convert_class _ class_def=:{class_name, class_pos, class_context} st
- # (ok, class_context, st) = convert_contexts class_name class_pos class_context st
+ convert_class _ class_def=:{class_ident, class_pos, class_context} st
+ # (ok, class_context, st) = convert_contexts class_ident class_pos class_context st
| ok
# class_def={class_def & class_context = class_context}
= (class_def, st)
= (class_def, st)
- convert_member _ member_def=:{me_symb, me_pos, me_type=me_type=:{st_context}} st
- # (ok, st_context, st) = convert_contexts me_symb me_pos st_context st
+ convert_member _ member_def=:{me_ident, me_pos, me_type=me_type=:{st_context}} st
+ # (ok, st_context, st) = convert_contexts me_ident me_pos st_context st
| ok
# member_def={member_def & me_type = {me_type & st_context = st_context}}
= (member_def, st)
@@ -2189,8 +2189,8 @@ where
= updateArraySt convert_dcl_function dcl_functions (modules, heaps, error)
= (dcl_functions, modules, (heaps, error))
where
- convert_dcl_function _ fun=:{ft_type=ft_type=:{st_context}, ft_symb, ft_pos} st
- # (ok, st_context, st) = convert_contexts ft_symb ft_pos st_context st
+ convert_dcl_function _ fun=:{ft_type=ft_type=:{st_context}, ft_ident, ft_pos} st
+ # (ok, st_context, st) = convert_contexts ft_ident ft_pos st_context st
| ok
# fun={fun & ft_type = {ft_type & st_context = st_context}}
= (fun, st)
@@ -2259,7 +2259,7 @@ specializeGeneric ::
-> ( !Expression
, !(!*TypeDefInfos, !*Heaps, !*ErrorAdmin)
)
-specializeGeneric gen_index type spec_env gen_name gen_pos main_module_index predefs (td_infos, heaps, error)
+specializeGeneric gen_index type spec_env gen_ident gen_pos main_module_index predefs (td_infos, heaps, error)
#! heaps = set_tvs spec_env heaps
#! (expr, (td_infos, heaps, error))
= specialize type (td_infos, heaps, error)
@@ -2296,7 +2296,7 @@ where
#! (generic_info_expr, heaps) = buildFunApp main_module_index cons_info_ds [] heaps
#! (expr, heaps) = buildGenericApp
- gen_index.gi_module gen_index.gi_index gen_name
+ gen_index.gi_module gen_index.gi_index gen_ident
(KindArrow [KindConst]) [generic_info_expr, arg_expr] heaps
= (expr, (td_infos, heaps, error))
@@ -2307,14 +2307,14 @@ where
#! (generic_info_expr, heaps) = buildFunApp main_module_index field_info_ds [] heaps
#! (expr, heaps) = buildGenericApp
- gen_index.gi_module gen_index.gi_index gen_name
+ gen_index.gi_module gen_index.gi_index gen_ident
(KindArrow [KindConst]) [generic_info_expr, arg_expr] heaps
= (expr, (td_infos, heaps, error))
specialize type (td_infos, heaps, error)
- #! error = reportError gen_name gen_pos "cannot specialize " error
+ #! error = reportError gen_ident gen_pos "cannot specialize " error
= (EE, (td_infos, heaps, error))
@@ -2329,7 +2329,7 @@ where
# arg_exprs = SwitchGenericInfo [generic_info_expr:arg_exprs] arg_exprs
#! (expr, heaps)
- = buildGenericApp gen_index.gi_module gen_index.gi_index gen_name kind arg_exprs heaps
+ = buildGenericApp gen_index.gi_module gen_index.gi_index gen_ident kind arg_exprs heaps
= (expr, (td_infos, heaps, error))
@@ -2468,12 +2468,12 @@ where
)
// generic type var is replaced with a fresh one
- subst_gtv {tv_info_ptr, tv_name} th_vars
- # (tv, th_vars) = freshTypeVar (postfixIdent tv_name postfix) th_vars
+ subst_gtv {tv_info_ptr, tv_ident} th_vars
+ # (tv, th_vars) = freshTypeVar (postfixIdent tv_ident postfix) th_vars
= (tv, writePtr tv_info_ptr (TVI_Type (TV tv)) th_vars)
- subst_attr (TA_Var {av_name, av_info_ptr}) th_attrs
- # (av, th_attrs) = freshAttrVar (postfixIdent av_name postfix) th_attrs
+ subst_attr (TA_Var {av_ident, av_info_ptr}) th_attrs
+ # (av, th_attrs) = freshAttrVar (postfixIdent av_ident postfix) th_attrs
= (TA_Var av, writePtr av_info_ptr (AVI_Attr (TA_Var av)) th_attrs)
//---> ("(2) writePtr av_info_ptr", ptrToInt av_info_ptr, av)
subst_attr TA_Multi th = (TA_Multi, th)
@@ -2656,13 +2656,13 @@ instance mapTypeSt TypeContext where
freshTypeVar :: !Ident !*TypeVarHeap -> (!TypeVar, !*TypeVarHeap)
freshTypeVar name th_vars
# (info_ptr, th_vars) = newPtr TVI_Empty th_vars
- = ({tv_name = name, tv_info_ptr = info_ptr}, th_vars)
+ = ({tv_ident = name, tv_info_ptr = info_ptr}, th_vars)
// allocate fresh attribute variable
freshAttrVar :: !Ident !*AttrVarHeap -> (!AttributeVar, !*AttrVarHeap)
freshAttrVar name th_attrs
# (info_ptr, th_attrs) = newPtr AVI_Empty th_attrs
- = ({av_name = name, av_info_ptr = info_ptr}, th_attrs)
+ = ({av_ident = name, av_info_ptr = info_ptr}, th_attrs)
// take a fresh copy of a SymbolType
@@ -2773,7 +2773,7 @@ where
#! (av_info, th_attrs) = readPtr av_info_ptr th_attrs
#! av = case av_info of
AVI_AttrVar new_ptr -> {av & av_info_ptr = new_ptr}
- //---> ("fresh attr var", av.av_name, ptrToInt av_info_ptr, ptrToInt new_ptr)
+ //---> ("fresh attr var", av.av_ident, ptrToInt av_info_ptr, ptrToInt new_ptr)
_ -> abort ("freshSymbolType, invalid av_info\n" ---> av_info)
= ( av, {th & th_attrs = th_attrs})
@@ -3208,7 +3208,7 @@ makeFunction ident fun_index group_index arg_vars body_expr opt_sym_type main_dc
= abort "makeFunction: free_vars is not empty\n"
#! fun_def =
- { fun_symb = ident
+ { fun_ident = ident
, fun_arity = length arg_vars
, fun_priority = NoPrio
, fun_body = TransformedBody {tb_args = arg_vars, tb_rhs = body_expr }
@@ -3252,8 +3252,8 @@ where
build_free_var :: !String !*Heaps -> (!FreeVar, !*Heaps)
build_free_var name heaps=:{hp_var_heap}
# (var_info_ptr, hp_var_heap) = newPtr VI_Empty hp_var_heap
- # var_name = { id_name = name, id_info = nilPtr }
- # free_var = { fv_def_level = NotALevel, fv_count = 0, fv_info_ptr = var_info_ptr, fv_name = var_name}
+ # var_ident = { id_name = name, id_info = nilPtr }
+ # free_var = { fv_def_level = NotALevel, fv_count = 0, fv_info_ptr = var_info_ptr, fv_ident = var_ident}
= (free_var, {heaps & hp_var_heap = hp_var_heap})
/*
@@ -3292,8 +3292,8 @@ where
build_free_var :: !String !*Heaps -> (!FreeVar, !*Heaps)
build_free_var name heaps=:{hp_var_heap}
# (var_info_ptr, hp_var_heap) = newPtr VI_Empty hp_var_heap
- # var_name = { id_name = name, id_info = nilPtr }
- # free_var = { fv_def_level = NotALevel, fv_count = 0, fv_info_ptr = var_info_ptr, fv_name = var_name}
+ # var_ident = { id_name = name, id_info = nilPtr }
+ # free_var = { fv_def_level = NotALevel, fv_count = 0, fv_info_ptr = var_info_ptr, fv_ident = var_ident}
= (free_var, {heaps & hp_var_heap = hp_var_heap})
*/
@@ -3332,7 +3332,7 @@ buildConsApp cons_mod {ds_ident, ds_index, ds_arity} arg_exprs heaps=:{hp_expres
# cons_glob = {glob_module = cons_mod, glob_object = ds_index}
# expr = App {
app_symb = {
- symb_name = ds_ident,
+ symb_ident = ds_ident,
symb_kind = SK_Constructor cons_glob
},
app_args = arg_exprs,
@@ -3347,7 +3347,7 @@ buildFunApp fun_mod {ds_ident, ds_index} arg_exprs heaps=:{hp_expression_heap}
# fun_glob = {glob_module = fun_mod, glob_object = ds_index}
# expr = App {
app_symb = {
- symb_name = ds_ident,
+ symb_ident = ds_ident,
symb_kind = SK_Function fun_glob
},
app_args = arg_exprs,
@@ -3368,12 +3368,12 @@ buildPredefFunApp predef_index args predefs heaps
buildGenericApp :: !Index !Index !Ident !TypeKind ![Expression] !*Heaps
-> (!Expression, !*Heaps)
-buildGenericApp gen_module gen_index gen_name kind arg_exprs heaps=:{hp_expression_heap}
+buildGenericApp gen_module gen_index gen_ident kind arg_exprs heaps=:{hp_expression_heap}
# (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty hp_expression_heap
# glob_index = {glob_module = gen_module, glob_object = gen_index}
# expr = App {
app_symb = {
- symb_name = gen_name,
+ symb_ident = gen_ident,
symb_kind = SK_Generic glob_index kind
},
app_args = arg_exprs,
@@ -3388,7 +3388,7 @@ buildPredefConsApp predef_index args predefs heaps=:{hp_expression_heap}
# pds_ident = predefined_idents.[predef_index]
# global_index = {glob_module = pds_module, glob_object = pds_def}
# symb_ident =
- { symb_name = pds_ident
+ { symb_ident = pds_ident
, symb_kind = SK_Constructor global_index
}
# (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty hp_expression_heap
@@ -3453,11 +3453,11 @@ buildVarExpr ::
buildVarExpr name heaps=:{hp_var_heap, hp_expression_heap}
# (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty hp_expression_heap
# (var_info_ptr, hp_var_heap) = newPtr VI_Empty hp_var_heap
- # var_name = makeIdent name
- # var = Var {var_name = var_name, var_expr_ptr = expr_info_ptr, var_info_ptr = var_info_ptr }
+ # var_ident = makeIdent name
+ # var = Var {var_ident = var_ident, var_expr_ptr = expr_info_ptr, var_info_ptr = var_info_ptr }
# hp_var_heap = writePtr var_info_ptr (VI_Expression var) hp_var_heap
# heaps = { heaps & hp_var_heap = hp_var_heap, hp_expression_heap = hp_expression_heap }
- # fv = {fv_count = 1/* if 0, trans crashes*/, fv_name = var_name, fv_info_ptr = var_info_ptr, fv_def_level = NotALevel}
+ # fv = {fv_count = 1/* if 0, trans crashes*/, fv_ident = var_ident, fv_info_ptr = var_info_ptr, fv_def_level = NotALevel}
= (var, fv, heaps)
buildVarExprs [] heaps = ([], [], heaps)
@@ -3667,12 +3667,12 @@ instance == FunCall where (==) (FunCall x _) (FunCall y _) = x == y
collectCalls :: !Index !Expression -> [FunCall]
collectCalls current_module expr = removeDup (foldExpr get_call expr [])
where
- get_call (App {app_symb={symb_kind=SK_Function {glob_module,glob_object}, symb_name}}) indexes
+ get_call (App {app_symb={symb_kind=SK_Function {glob_module,glob_object}, symb_ident}}) indexes
| glob_module == current_module
= [FunCall glob_object NotALevel : indexes]
- //---> ("collect call ", symb_name, glob_object)
+ //---> ("collect call ", symb_ident, glob_object)
= indexes
- //---> ("do not collect call ", symb_name, glob_module, glob_object)
+ //---> ("do not collect call ", symb_ident, glob_module, glob_object)
get_call _ indexes = indexes
// collects variables and computes the refernce counts
@@ -3687,8 +3687,8 @@ collectVars expr arg_vars
# arg_vars = [ {v & fv_count = 0} \\ v <- arg_vars]
= foldExpr collect_vars expr (arg_vars, [], [])
where
- collect_vars (Var {var_name, var_info_ptr}) (arg_vars, local_vars, free_vars)
- # var = {fv_name = var_name, fv_count = 1, fv_info_ptr = var_info_ptr, fv_def_level = NotALevel}
+ collect_vars (Var {var_ident, var_info_ptr}) (arg_vars, local_vars, free_vars)
+ # var = {fv_ident = var_ident, fv_count = 1, fv_info_ptr = var_info_ptr, fv_def_level = NotALevel}
# (added, arg_vars) = add_var var arg_vars
| added
= (arg_vars, local_vars, free_vars)