Implementation of the ADTs from Programming II using Rust