This document demonstrates how to model an issue tracking system using F#. It defines types like IssueId and IssueCreatedEvent to represent core domain concepts. Functions like createIssue are defined as pure transformations between types. The system is broken into modules for the domain model, serialization, API, and app functionality. The domain model uses F# features like discriminated unions and immutable data to represent the issue state and enforce valid transitions. Overall it shows how F# and a functional approach can be used to build a robust and testable system in a business domain like issue tracking.