What problem does it solve? Go codebases rely on nil pointers, ambiguous zero values, and repetitive if err != nil checks that cause runtime panics and verbose error handling. This Skill guides the correct use of samber/mo monadic types so absence, failure, and multi-type outcomes become explicit in the type system. ## Core Features & Use Cases - Option[T] for nullable values: Replace *string and nil checks with Some/None, with built-in JSON marshaling and sql.Scanner/driver.Valuer support for database columns. - Result[T] and Either[L, R] for error handling: Convert (T, error) tuples with TupleToResult, chain operations with Map/FlatMap, and use Either when both outcomes are valid alternatives. - Type-changing pipelines: Use option/result/either sub-package functions and Pipe1-Pipe10 when transformations change generic types, plus mo.Do for imperative-style monadic code. - Use Case: A Go service scans nullable database rows and returns JSON API responses. Use mo.Option[string] fields so the same struct handles SQL scanning and JSON serialization without custom marshalers or duplicate DTOs. ## Quick Start Ask the AI to refactor a Go function that returns (T, error) into a samber/mo Result pipeline using TupleToResult and FlatMap chaining.