
Episode 2
002: Intro to Opaque Types
Opaque Types are a fancy way of saying "custom type with a private constructor." We talk about the basics, how to get started, and some patterns for using Opaque Types.
April 3, 202040m 0s
Audio is streamed directly from the publisher (cdn.simplecast.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.
Show Notes
Opaque Types
Some patterns
- Runtime validations - conditionally return type, wrapped in Result or Maybe
- Guarantee constraints through the exposed API of the module (like PositiveInteger or AuthToken examples)
Package-Opaque Modules
Example - the Element type in elm-ui.
Definition of the Element type alias
elm-ui's elm.json file does not expose the internal module where the real Element type is defined.
Example from elm-graphql codebase - CamelCaseName opaque type