# Baseline > Baseline is a strongly typed, effect-tracked functional programming language. Extension: `.bl`, compiler: `blc`. "The type is the spec" -- refinements encode correctness. "Effects are data" -- side effects are explicit capabilities. Experimental, not production-ready. Important -- LLMs commonly get these wrong: - `!` means EFFECTS, not negation. Use `not` for boolean negation. - NO method syntax. Write `String.to_upper(name)`, never `name.to_upper()`. - NO `+` for strings. Write `"Hello, ${name}!"`, never `"Hello, " + name`. - NO semicolons. Statements are separated by newlines. - NO `return` keyword. The last expression is the return value. - Bindings are immutable by default. Use `let mut` for mutable locals. ## Docs - [Quick syntax reference and common patterns (small context)](https://baseline-lang.com/llms-small.txt): Rosetta Stone, syntax rules, common mistakes, stdlib summary, patterns. Best for quick code generation. - [Full language and API reference (large context)](https://baseline-lang.com/llms-full.txt): Everything in the small reference plus complete stdlib API with signatures and examples. ## Getting Started - [Guide](https://baseline-lang.com/guide): Quick start tutorial - [Learn](https://baseline-lang.com/learn): Interactive language tour ## Reference - [API Reference](https://baseline-lang.com/api): Standard library documentation - [Design](https://baseline-lang.com/design): Language design philosophy ## Optional - [Changelog](https://baseline-lang.com/changelog): Version history - [GitHub](https://github.com/baseline-lang/baseline): Source code and issues