Albite

Overview

Start here

  • Installing Albite

    A pre-built binary, a container, or a build from source — and which parts need LLVM.

  • About the name

    Why the language has a new name, what changed and what did not, and where the old addresses go.

  • Hello, world

    Your first Albite program — type-checked, interpreted, then compiled to a native binary.

  • A short tour

    Functions, bindings, conditionals, pattern matching, data types and modules — enough Albite to read real code.

Language

Proofs

  • Types as propositions

    The Curry-Howard correspondence, and what it means for a program to be a proof.

  • Writing theorems

    The theorem keyword, proof by exhaustive checking, and where that technique stops working.

  • Dependent types

    Types that depend on values, and what that buys — including where Albite's support currently stops.

  • Induction over naturals

    The natind eliminator, motives, and proving something about every natural number.

Reference

  • Syntax reference

    A cheat-sheet for Albite's grammar — declarations, types, expressions and patterns.

  • Built-in types and operators

    The primitive types, the operator table, conversions, the conventional types and the reserved words.

  • Command-line reference

    The commands you need to write Albite — check, run, compile, test and explain.

  • Current limitations

    What Albite cannot do yet, and where the two shipped compilers still disagree.

Try it

  • Playground

    Write and run Albite in your browser.