aboutsummaryrefslogtreecommitdiff
path: root/frontend/analunitypes.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/analunitypes.icl')
-rw-r--r--frontend/analunitypes.icl17
1 files changed, 15 insertions, 2 deletions
diff --git a/frontend/analunitypes.icl b/frontend/analunitypes.icl
index 53e5541..5d80f59 100644
--- a/frontend/analunitypes.icl
+++ b/frontend/analunitypes.icl
@@ -193,7 +193,9 @@ where
# (sign_class, _, scs) = signClassOfType at_type PositiveSign DontUSeTopSign group_nr ci scs
= (sign_class, scs)
sign_class_of_type_def module_index (RecordType {rt_constructor}) group_nr ci scs
- = sign_class_of_type_conses module_index [rt_constructor] group_nr ci BottomSignClass scs
+ = sign_class_of_type_cons module_index rt_constructor group_nr ci BottomSignClass scs
+ sign_class_of_type_def module_index (NewType constructor) group_nr ci scs
+ = sign_class_of_type_cons module_index constructor group_nr ci BottomSignClass scs
sign_class_of_type_def _ (AbstractType properties) _ _ scs
| properties bitand cIsNonCoercible == 0
= (PostiveSignClass, scs)
@@ -202,6 +204,7 @@ where
| properties bitand cIsNonCoercible == 0
= (PostiveSignClass, scs)
= (TopSignClass, scs)
+
sign_class_of_type_conses module_index [{ds_index}:conses] group_nr ci cumm_sign_class scs
#! cons_def = ci.[module_index].com_cons_defs.[ds_index]
# (cumm_sign_class, scs) = sign_class_of_type_of_list cons_def.cons_type.st_args group_nr ci cumm_sign_class scs
@@ -209,6 +212,10 @@ where
sign_class_of_type_conses module_index [] _ _ cumm_sign_class scs
= (cumm_sign_class, scs)
+ sign_class_of_type_cons module_index {ds_index} group_nr ci cumm_sign_class scs
+ #! cons_def = ci.[module_index].com_cons_defs.[ds_index]
+ = sign_class_of_type_of_list cons_def.cons_type.st_args group_nr ci cumm_sign_class scs
+
sign_class_of_type_of_list [] _ _ cumm_sign_class scs
= (cumm_sign_class, scs)
sign_class_of_type_of_list [{at_type} : types] group_nr ci cumm_sign_class scs
@@ -468,7 +475,9 @@ where
# (prop_class, _, pcs) = propClassOfType at_type group_nr ci pcs
= (prop_class, pcs)
prop_class_of_type_def module_index (RecordType {rt_constructor}) group_nr ci pcs
- = prop_class_of_type_conses module_index [rt_constructor] group_nr ci NoPropClass pcs
+ = prop_class_of_type_cons module_index rt_constructor group_nr ci NoPropClass pcs
+ prop_class_of_type_def module_index (NewType constructor) group_nr ci pcs
+ = prop_class_of_type_cons module_index constructor group_nr ci NoPropClass pcs
prop_class_of_type_def _ (AbstractType properties) _ _ pcs
= (PropClass, pcs)
prop_class_of_type_def _ (AbstractSynType properties _) _ _ pcs
@@ -481,6 +490,10 @@ where
prop_class_of_type_conses module_index [] _ _ cumm_prop_class pcs
= (cumm_prop_class, pcs)
+ prop_class_of_type_cons module_index {ds_index} group_nr ci cumm_prop_class pcs
+ #! cons_def = ci.[module_index].com_cons_defs.[ds_index]
+ = prop_class_of_type_of_list cons_def.cons_type.st_args group_nr ci cumm_prop_class pcs
+
prop_class_of_type_of_list [] _ _ cumm_prop_class pcs
= (cumm_prop_class, pcs)
prop_class_of_type_of_list [{at_type} : types] group_nr ci cumm_prop_class pcs