For those unfamiliar with Cat, it is a functional stack-based programming language with a type system. It looks like if ML and Forth had a baby. it is a very concise and powerful language. It is a pure functional language, but still allows side-effects in a very controlled manner (without all of the confusing Monad stuff that Haskell has).
The Cat interpreter is entirely public domain (that means you can do virtually whatever you want with it without obligations or restrictions). The source code is written in C# and is tested on Mono (but only on my Windows implementation of it). I'd be curious how it works out for people on other systems.
The type system underwent a recent redesign, but the language works great even without a type checker. I plan on reintroducing the type-checking and type-inference engine in version 2.0. However the semantics of the type system have been ratified, and are explained at least semi-formally at http://www.cat-language.com/semantics.html.
Please share your thoughts, suggestions, questions and criticisms!