Growl
Growl is an experimental, statically-typed, stack-based concatenative programming language influenced by Kitten and Factor, written in OCaml.
It is my current vehicle of research on typing concatenative languages, with a type inference algorithm greatly inspired by Lionel Parreaux’s SimpleSub.
$ cat factorial.grr
def ifte { choose call }
def fact {
dup 2 < [drop 1] [dup 1 - fact *] ifte
}
$ dune exec -- growl check factorial.grr
ifte :: `(..r, bool, (..r -> ..s), (..r -> ..s) -> ..s)`
fact :: `(..r, int -> ..r, int)`
Growl is being actively worked on, you can find the source code in Codeberg.