The `interface` keyword
WIT.md and the parser both define an interface keyword. In the parser, it's half-implemented and seems to be attempting to parse a sub-module kind of thing like this (before panicking):
interface foo {
bar: function() -> bool
record qux {
x: u32,
y: string,
}
}
Is this being reserved for future use, or has it just been left there by mistake?
This was used historically but I believe is no longer currently in use, but that being said I think it might be good to leave it reserved for at least a bit longer while we're still figuring everything out.
If you'd like to use interface or other names which collide with keywords as identifiers, the syntax is %interface.
I think this is now resolved, with interface being used for top-level constructs now for our new "everything is a world" future.