Rust is not a particularly original language, with design elements coming from a wide range of sources. Some of these are listed below (including elements that have since been removed): SML, OCaml: algebraic data types, pattern matching, type inference, semicolon statement separation C++: references, RAII, smart pointers, move semantics, monomorphization, memory model ML Kit, Cyclone: region based