Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem.
The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing libraries and packages within a statically typed environment.
The language provides a comprehensive functional programming toolkit, including immutable data, pattern matching with exhaustiveness checking, and a nominal type system. It covers broad capability areas such as asynchronous programming, module system extensibility via functors, and the definition of sum types and generic types to ensure compile-time safety.
The toolset includes a command line interface for source code formatting and a read-evaluate-print loop for interactive code execution.