PrintKindValuePair with kind of values

I’m trying to print the name of a kind of value in I6, but PrintKindValuePair isn’t working.

There is a room.

Test value is a kind of value.
The test values are test 1, test 2, test 3.

To say test value (V - test value):
	(- PrintTest({V}); -).
Include (-
[ PrintTest val;
	PrintKindValuePair((+ test values +), val);
];
-).

When play begins:
	let test be test 2;
	say test value test;

Instead of printing “test 2”, it just prints “2”, the numerical value of test 2. This is because the line

say test value test;

gets transformed into

PrintKindValuePair((true), tmp_0);

instead of

PrintKindValuePair((55), tmp_0);

It seems like there’s no constant defined for the kind, only for the individual values. Is there any way to do this? Perhaps some weird {- invocation? Or alternatively, any way to determine the function name E69?

The only way I know to do this is to call back to I7.

Test value is a kind of value.
The test values are test 1, test 2, test 3.

To type-print (V - test value) (this is test-value-printing):
	say V;

Include (-
[ TestTest val;
	((+ test-value-printing +)-->1)(val);
];
-).

To call I6 (V - test value): (- TestTest({V}); -);

When play begins:
	say "First is ";
	call I6 test 1;
	say ", second is ";
	call I6 test 2;
	say ", third is ";
	call I6 test 3;
	say ".";
2 Likes

I’ve worked out that this is the way to do it:

To say test value (V - test value):
	(- PrintKindValuePair({-strong-kind:test value}, {V}); -).
1 Like