Inferring Types for Higher Order Instructions in Stack Languages

I recently made the final revisions of the paper on Typing Functional Stack-Based Languages and submitted it to ICFP. A big thank your to everyone here at for their help, especially regular LtU contributor Andreas Rossberg who played a big part in defining the type system.

I have had several requests for an easier to follow explanation of how a type inference engine would work for a functional stack-based language, so I've written a short article for those interested which walks step by step through an example of how to infer types for a complex higher order function "eval(eval(noop)))" or in Cat "[] eval eval".

Any questions, suggestions, or corrections would be most welcome.