# Probl > Probl is a probabilistic programming language for game odds, forecasts and decisions under uncertainty. Describe random choices, evidence and the questions to report; Probl calculates or estimates the probabilities of the outcomes. Programs use the `.probl` extension. Run them in the browser playground, or install the CLI with `cargo install probl-cli --locked` (Rust 1.85 or later) and run `probl run model.probl`. A first model: ```probl let total ~ 2d6 report total >= 10 as "Rolling 10 or more" ``` Key language rules: - `=` binds a value or distribution; `~` draws an outcome. Reusing a drawn value refers to the same event; drawing again makes a fresh choice. - `observe` conditions the model on evidence. Place observations before reports. `report` summarizes weighted outcomes. - Enumeration is the default: Probl follows possible outcomes and combines equivalent states. Sampling must be selected explicitly; there is no automatic fallback to sampling. - Reports identify the calculation method and any unresolved probability. Calculations use floating-point arithmetic; sampling results are estimates. The language guide describes the website's engine version. Upstream documentation and the hosted playground may use a different revision. Consult the reference semantics for precise rules and supported operations. ## Documentation - [Language guide](https://probl.dev/guide/): Syntax, distributions, evidence, reports, execution modes, examples and built-in functions. - [Changelog](https://probl.dev/changelog/): Published release notes from the Probl repository, including new features, breaking changes and fixes. - [Reference semantics](https://github.com/garlab/probl/blob/main/docs/semantics.md): Detailed language contracts, inference behavior, limits and error handling; takes precedence over the guide where they disagree. - [Project README](https://github.com/garlab/probl/blob/main/README.md): Installation, command-line usage and project overview. ## Tools and examples - [Playground](https://playground.probl.dev/): Run and share models in a browser without installation. - [Example models](https://probl.dev/#examples): Models for games, forecasting, calendars and decisions, with links to run them in the playground. - [Source repository](https://github.com/garlab/probl): Language implementation, example programs and development documentation. - [Rust API](https://docs.rs/probl): Documentation for using Probl from Rust. ## Optional - [Privacy policy](https://probl.dev/privacy/): Hosting, analytics, browser storage, shared models and data protection rights for the website and playground. - [Content policy](https://probl.dev/content-policy/): Model ownership, sharing, open-source licences and use of the hosted sites. - [Testing guide](https://github.com/garlab/probl/blob/main/docs/testing.md): How numerical results and language behavior are checked.