This repository is the compiler and build toolchain for the Gren programming language, a functional language forked from Elm. It compiles Gren source code to JavaScript, targeting both Node.js and browser environments. The codebase is split into two parts: a Haskell backend that handles parsing, type inference, optimization, and code generation, and a Gren frontend that provides a CLI for building, running, package management, REPL, and documentation generation. The Gren frontend is self-hosting—compiled by the compiler itself. The architecture is modular, with clear separation of concerns across parsing, canonicalization, type checking, optimization, and JavaScript generation. The compiler features sophisticated error reporting with pedagogical hints, a custom type system with flexible type variables, and an efficient pattern matching compilation algorithm based on decision trees. The project also includes a builder for incremental compilation and dependency resolution, and a package manager that fetches packages from GitHub. While the codebase demonstrates high craftsmanship in many areas, it is a two-language project with self-hosting complexity and some very large modules.