diff options
author | sjakie | 2001-08-27 15:23:16 +0000 |
---|---|---|
committer | sjakie | 2001-08-27 15:23:16 +0000 |
commit | 3492357256d9abf042f9e70df9cb6825708cf583 (patch) | |
tree | 5f90663ff6cec27510e679b57d916c628d64f66f /frontend/unitype.dcl | |
parent | bug fixes, ModuleID argument in T_ypeConsSymbol, added _SystemDynamic (diff) |
Universally quantified types added
Bug fix in reference marking
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@675 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/unitype.dcl')
-rw-r--r-- | frontend/unitype.dcl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/frontend/unitype.dcl b/frontend/unitype.dcl index a5716d4..5b7e0ff 100644 --- a/frontend/unitype.dcl +++ b/frontend/unitype.dcl @@ -22,12 +22,13 @@ FirstAttrVar :== 3 instance toInt TypeAttribute -:: CoercionTree = CT_Node !Int !CoercionTree !CoercionTree | CT_Empty | CT_Unique | CT_NonUnique /* | CT_Existential !Int */ +:: CoercionTree = CT_Node !Int !CoercionTree !CoercionTree | CT_Empty | CT_Unique | CT_NonUnique | CT_Existential :: Coercions = { coer_demanded :: !.{! .CoercionTree}, coer_offered :: !.{! .CoercionTree }} isNonUnique :: !CoercionTree -> Bool isUnique :: !CoercionTree -> Bool +isExistential :: !CoercionTree -> Bool isNonUniqueAttribute :: !Int !Coercions -> Bool isUniqueAttribute :: !Int !Coercions -> Bool @@ -44,7 +45,7 @@ determineAttributeCoercions :: !AType !AType !Bool !u:{! Type} !*Coercions !{# C :: AttributePartition :== {# Int} -partitionateAttributes :: !{! CoercionTree} !{! *CoercionTree} -> (!AttributePartition, !{! CoercionTree}) +partitionateAttributes :: !{! CoercionTree} !{! *CoercionTree} -> (!AttributePartition, !*{! CoercionTree}) newInequality :: !Int !Int !*Coercions -> *Coercions @@ -62,7 +63,7 @@ liftSubstitution :: !*{! Type} !{# CommonDefs }!{# BOOLVECT } !Int !*TypeHeaps ! } class expandType a :: !{# CommonDefs } !{# BOOLVECT } !a !*(!u:{! Type}, !*ExpansionState) -> (!Bool, !a, !*(!u:{! Type}, !*ExpansionState)) -//class expandType a :: !{# CommonDefs } !{# BOOLVECT } !a !*(!u:{! Type}, !*ExpansionState) -> (!a, !*(!u:{! Type}, !*ExpansionState)) - instance expandType AType + +checkExistentionalAttributeVars :: [TempAttrId] !AttributePartition !*{! CoercionTree} -> (!Bool,!*{! CoercionTree}) |