# AGENTS.md - tricu Project Guide > For AI agents and contributors working in this repository. ## Build & Test ```bash # Tests nix flake check # Build tricu executable nix build .# ``` ### Never call `cabal` directly > **Rule of thumb:** if it builds, links, or tests, it goes through `nix`. ## Project Overview **tricu** (pronounced "tree-shoe") is a programming-language experiment written primarily in Haskell. Core types are in `src/Research.hs`. ### File extensions - `.hs` - Haskell source - `.tri` - tricu language source (used in `lib/`, `test/`, `demos/`) - `.arboricx` - Portable executable bundle - `.dag` - Serialized kernel DAG (used by `gen_kernel.zig` at build time) ### Haskell tests Tests live in `test/Spec.hs` and use **Tasty** + **HUnit**. ```bash nix flake check ``` ## tricu Language Quick Reference ``` t → Leaf (the base term) t t → Stem Leaf t t t → Fork Leaf Leaf x = t → Define term x = Leaf id = (a : a) → Lambda identity (eliminates to tree calculus) head (map f xs) → From lib/list.tri !import "./path.tri" NS → Import file under namespace -- line comment ``` CRITICAL: When working with `tricu` `.tri` files ***YOU MUST REVIEW notes/tricu-normalization-rules.md***