aboutsummaryrefslogtreecommitdiff
path: root/frontend/checkgenerics.dcl
blob: 18c028178905e112d7873d146684d9030631283d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
definition module checkgenerics

import syntax
from checksupport import ::Heaps,::CheckState

checkGenericDefs :: !Index !(Optional (CopiedDefinitions, Int))
		!*{#GenericDef} !*{#CheckedTypeDef} !*{#ClassDef} !*{#DclModule} !*Heaps !*CheckState
	-> (!*{#GenericDef},!*{#CheckedTypeDef},!*{#ClassDef},!*{#DclModule},!*Heaps,!*CheckState)

checkGenericCaseDefs :: !Index !*{#GenericCaseDef} !*{#GenericDef} !u:{#CheckedTypeDef} !*{#DclModule} !*Heaps !*CheckState
						   -> (!*{#GenericCaseDef},!*{#GenericDef},!u:{#CheckedTypeDef},!*{#DclModule},!.Heaps,!.CheckState)

convert_generic_instances :: !.[GenericCaseDef] !Int -> (!.[FunDef], !.[GenericCaseDef])

create_gencase_funtypes :: !Index !*{#GenericCaseDef} !*Heaps
		  -> (!Index, ![FunType], !*{#GenericCaseDef},!*Heaps)