GALA Documentation

Welcome to the GALA documentation hub. Here you will find everything you need to learn and use GALA effectively.

Core Language

Topic Description
Language Reference Full syntax and semantics reference
Sealed Types Define closed type hierarchies with exhaustive compile-time checking
Pattern Matching Destructure values, apply guards, and produce expression results
Immutability val bindings, immutable struct fields, Copy(), and ConstPtr[T]
Type Inference What you can leave out — generics, lambda params, accumulators
Error Handling Composable Option[T], Either[A,B], and Try[T] monads
Monadic Binding bind / also do-notation, including accumulating Validated groups
String Interpolation s"…" and f"…" literals with embedded expressions and formatting
Concurrency Safety Compile-time data-race safety — Shareable, Sendable, and GALA-E0037
Compiler DX Framed diagnostics, GALA-source stack traces, guaranteed TCO, use
GALA vs Go Side-by-side comparison with idiomatic Go code

Standard Library

Topic Description
Collections Immutable List, Array, HashMap, HashSet, TreeSet, TreeMap and their mutable variants
Immutable Collections Full API reference for the persistent collection types
Mutable Collections collection_mutable reference — in-place updates for hot paths
Concurrency Future[T], Promise[T], ExecutionContext, cancellation, timeouts, and Race
Subprocess Spawn and drive external child processes with a goroutine-safe Process handle, including Future-returning async methods
Streams Lazy, potentially infinite sequences with Stream[T]
Strings Str, the string builder, and the free string functions
Time Utilities Duration, Sleep, and time helpers
Go Interop Import and use any Go package, type, or function directly from GALA
Json Type-safe JSON serialization, deserialization, and pattern matching extractors
Yaml Type-safe YAML serialization, deserialization, and pattern matching extractors
Regex Regular expressions with pattern matching and Array destructuring
IO Effect Lazy composable side effects with IO[T]

Validated[E, A] — the applicative companion to Either that accumulates every error instead of short-circuiting, with Zip2 through Zip10 — is documented alongside the also groups that use it in Monadic Binding.

Guides

Topic Description
Getting Started Installation, project setup, and writing your first GALA program
Why GALA? Feature-by-feature assessment, ideal use cases, and honest trade-offs
Examples Complete, runnable programs covering the language surface
Dependency Management gala.mod, GALA and Go dependencies, and Bazel integration
Error Codes Every GALA-Exxxx diagnostic — when it fires and how to fix it
IDE Support IntelliJ/GoLand plugin and the gala lsp server (VS Code, Neovim)
Playground Try GALA in your browser – no installation required
GitHub Repository Source code, issue tracker, and release downloads

Showcase Projects

Project Description
GALA Playground Web-based playground – try it live
State Machine Example State machines with sealed types and pattern matching
Log Analyzer Structured log parsing with Go stdlib interop and functional pipelines
GALA Server Immutable HTTP server library with builder-pattern configuration
GALA TUI Elm-architecture TUI framework – immutable widgets, differential renderer, async runtime
GALA Team Multi-agent Claude CLI orchestrator – Team Lead delegates to Engineers and QAs, reviews work, hands you a PR