This document discusses functional patterns in domain modeling, with examples from the financial domain. It begins by defining what a domain model is. It then discusses rich domain models using classes versus lean domain models using algebraic data types and functions. Some common patterns for domain modeling are described, including using algebraic data types to represent entities and functions to represent behaviors. The document provides examples of modeling a financial domain around trading using types and functions. It discusses how this functional approach leads to an algebraic API design that can organically evolve. Overall the document advocates for applying functional programming concepts and patterns to domain modeling.