The Optimizing compiler checks the Stack effect declarations of words before they can be run. This ensures that words take exactly the number of inputs and outputs that the programmer declares in source.
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 and enables compiler optimizations.
If a word's stack effect cannot be inferred, a compile error is reported. See Compiler errors.