An implementation of the Hindley-Milner algorithm in Rust