# Read before Proceeding

{% hint style="success" %}
**Credits:** The Gauntlet programming language and this accompanying documentation were written solely by `TricolorHen061`.
{% endhint %}

## What you need to know about Gauntlet

* Gauntlet is in it's **alpha** phase. Please expect (and [report](https://github.com/gauntlet-lang/gauntlet/issues)!) bugs.
* Non-parser error messages are do not contain line numbers. This will be implemented in a future update.
* There is little typechecking. Better typechecking will be implemented in the future.
* All Gauntlet type names are the CamelCase version of it's corresponding Go type name. For instance:
  * `String` type in Gauntlet -> `string` type in Golang
  * `Float64` type in Gauntlet -> `float64` type in Golang
  * `Int` type in Guantlet -> `int` type in Golang
* The only two exceptions to the above rule are:
  * &#x20;`Unit`, which is equivalent to `()`&#x20;
  * `Null`, which is equivalent to `nil`
* You can import and use any library from the Golang ecosystem **without** writing a binding. Though at this point in time, Gauntlet does not perform type-checking on them.
  * When referring to a function from a module, use camelCase to refer to it. Use PascalCase for everything else.

## What you need to know about this documentation

* Anything wrapped in `<>` signifies a required placeholder
* Anything wrapped in `[]` signifies an optional placeholder
* The type of casing that should be used is reflected in placeholder names. For instance, if something `LooksLikeThis` , it means PascalCase should be used.&#x20;

## Useful Links

* Join the Discord server [here](https://discord.gg/eK3zJYrN58)
* Take a look at the GitHub repository [here](https://github.com/gauntlet-lang/gauntlet)
* Check out the Visual Studio Code extension [here](https://marketplace.visualstudio.com/items?itemName=GauntletProgrammingLanguage.gauntlet-language)

## Common placeholders throughout documentation

* `Generics`&#x20;
  * Syntax: `[TypeConstraint ParamName, ...]`
  * Example:  `[T : String, U: Any]`&#x20;
* `GenericsInstantiation`&#x20;
  * Syntax: `[Type1, Type2, ...]`&#x20;
  * Example: `[String, Int]`
* `Parameters`&#x20;
  * Syntax: `ParamName : ParamType, ...`&#x20;
  * Example: `num1 : Int, num2 : Int`&#x20;
* `varPattern`
  * Syntax: `varName1, varName2, etc`
  * &#x20;Example: `firstName, lastName`

