# Influences

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 memory management
* Haskell (GHC): typeclasses, type families
* Newsqueak, Alef, Limbo: channels, concurrency
* Erlang: message passing, thread failure, <strike>linked thread failure</strike>,
  <strike>lightweight concurrency</strike>
* Swift: optional bindings
* Scheme: hygienic macros
* C#: attributes
* Ruby: closure syntax, <strike>block syntax</strike>
* NIL, Hermes: <strike>typestate</strike>
* [Unicode Annex #31](http://www.unicode.org/reports/tr31/): identifier and
  pattern syntax
