proc stypes
	filen	hetero.icn
	local	0,001000,X
	local	1,001000,ref
	local	2,000020,op
	local	3,000020,types
	local	4,000020,t
	local	5,000020,k
	local	6,000000,proc
	local	7,000000,type
	local	8,000000,set
	local	9,000000,key
	local	10,000000,insert
	local	11,000000,sort
	local	12,000000,stop
	con	0,010000,1,041
	con	1,002000,1,1
	con	2,010000,5,164,141,142,154,145
	con	3,010000,3,153,145,171
	con	4,002000,1,2
	con	5,010000,1,072
	con	6,010000,4,154,151,163,164
	con	7,010000,6,162,145,143,157,162,144
	con	8,010000,3,163,145,164
	con	9,010000,28,052,052,052,040,151,156,166,141,154,151,144,040,164,171,160,145,040,164,157,040,163,164,171,160,145,163,050,051
	declend
	line	21
	colm	11
	mark	L1
	pnull
	var	2
	var	6
	str	0
	int	1
	line	24
	colm	14
	invoke	2
	line	24
	colm	7
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	4
	var	7
	var	0
	line	25
	colm	13
	invoke	1
	line	25
	colm	6
	asgn
	unmark
lab L2
	mark	L3
	pnull
	var	2
	mark0
	pnull
	var	4
	str	2
	line	26
	colm	16
	lexeq
	pop
	pnull
	var	1
	int	1
	line	26
	colm	35
	eqv
	unmark
	str	3
	line	26
	colm	7
	asgn
	unmark
lab L3
	mark	L4
	mark	L5
	pnull
	var	4
	str	2
	line	28
	colm	10
	lexeq
	pop
	pnull
	var	1
	int	4
	line	28
	colm	29
	eqv
	unmark
	mark	L7
	pnull
	var	3
	var	8
	line	29
	colm	19
	invoke	0
	line	29
	colm	13
	asgn
	unmark
lab L7
	mark	L8
	mark0
	pnull
	var	5
	var	9
	var	0
	line	30
	colm	21
	invoke	1
	line	30
	colm	15
	asgn
	pop
	mark0
	var	10
	var	3
	pnull
	pnull
	var	7
	var	5
	line	31
	colm	28
	invoke	1
	str	5
	line	31
	colm	32
	cat
	var	7
	pnull
	var	0
	var	5
	line	31
	colm	49
	subsc
	line	31
	colm	47
	invoke	1
	line	31
	colm	39
	cat
	line	31
	colm	16
	invoke	2
	unmark
lab L9
	efail
lab L10
	unmark
lab L8
	mark	L11
	var	11
	var	3
	line	32
	colm	18
	invoke	1
	line	32
	colm	7
	pret
lab L11
	pfail
	goto	L6
lab L5
	mark	L12
	pnull
	var	4
	mark	L14
	str	6
	esusp
	goto	L15
lab L14
	mark	L16
	str	7
	esusp
	goto	L17
lab L16
	mark	L18
	str	2
	esusp
	goto	L19
lab L18
	str	8
lab L19
lab L17
lab L15
	line	35
	colm	14
	lexeq
	unmark
	mark	L20
	pnull
	var	3
	var	8
	line	36
	colm	19
	invoke	0
	line	36
	colm	13
	asgn
	unmark
lab L20
	mark	L21
	mark0
	var	10
	var	3
	var	7
	var	2
	var	0
	line	37
	colm	34
	invoke	1
	line	37
	colm	31
	invoke	1
	line	37
	colm	19
	invoke	2
	pop
lab L22
	efail
lab L23
	unmark
lab L21
	mark	L24
	var	11
	var	3
	line	38
	colm	18
	invoke	1
	line	38
	colm	7
	pret
lab L24
	pfail
	goto	L13
lab L12
	var	12
	str	9
	line	40
	colm	13
	invoke	1
lab L13
lab L6
	unmark
lab L4
	pnull
	line	42
	colm	1
	pfail
	end
proc homogeneous
	local	0,001000,X
	local	1,001000,ref
	local	2,000000,stypes
	con	0,002000,1,1
	declend
	line	44
	colm	11
	mark	L1
	mark	L2
	pnull
	pnull
	var	2
	var	0
	var	1
	line	46
	colm	14
	invoke	2
	line	46
	colm	7
	size
	int	0
	line	46
	colm	23
	numeq
	unmark
	mark	L4
	pnull
	line	46
	colm	32
	pret
lab L4
	pfail
	goto	L3
lab L2
	line	46
	colm	44
	pfail
lab L3
	unmark
lab L1
	pnull
	line	48
	colm	1
	pfail
	end
