# Reason

To use this language, use the class "language-reason".

## Comments

    /* This is a comment */

## Strings and characters

    "This is a \"string\""
    'a'
    '\\'
    '\o123'
    '\x4a'

## Constructors

    type response =
      | Yes
      | No
      | PrettyMuch;

## Example

    type car = {maker: string, model: string};
    type carList =
      | List car carList
      | NoMore;

    let chevy = {maker: "Chevy", model: "Suburban"};
    let toyota = {maker: "Toyota", model: "Tacoma"};
    let myCarList = List chevy (List toyota NoMore);

    let hasExactlyTwoCars = fun lst =>
      switch lst {
        | NoMore => false                              /* 0 */
        | List p NoMore => false                       /* 1 */
        | List p (List p2 NoMore) => true              /* 2 */
        | List p (List p2 (List p3 theRest)) => false  /* 3+ */
      };

    let justTwo = hasExactlyTwoCars myCarList;  /* true! */