@vanja It's for Uxntal. Type inference in stack-based programming language is done by checking the stack effect declarations of words before they can be run, against the cumulative stack state of each item in the definition.
Words that do not pass the stack checker are rejected and cannot be run, and so essentially this defines a very simple and permissive type system that nevertheless catches some invalid programs.
@neauoire Oh that's really cool! Reminds me of the type checking I wanted to implement for a functional stack based programming language. For each function you'd have to write its input and output stack. Though this one actually did have multiple types such as ints, floats and chars (i haven't decided yet which ones). I was actually thinking of compiling it to uxn bytecode! Maybe I finish it one day.