typedef bool {}

typedef i27 {
	cmp!;
	eq(i27 a, i27 b => bool) {
		return a == b;
	}
}

typedef ptr {
	cmp!;
	eq(ptr a, ptr b => bool) {
		return a == b;
	}
}

typedef test[cmp T] {}

define cmp {
	eq(cmp, cmp => bool);
}

main()
{
	const a = test![i27]{};
	20.eq(20);

	const b = test![*i27]{};
	a&.eq(a&);
}
