Or is it supposed to allow for some kind of ad-hoc polymorphism like:
func foo(x) string {
match type(x) {
char** : return “an array of strings”
int : return “a number”
default : return “not sure”
}
}
And this gets transformed into something like: func foo(Type x_t, x_t x) string {
match(x_t) {
pointer_t(pointer_t(char_t)) : return ...
...
}
}