I have been working on improving the way we describe the control flow of Haskell programs. As the post is rather long, it is split in several parts:
- State of the art: briefly survey the state of the art (unchecked exceptions, Either, EitherT, etc.) and the issues I am trying to solve.
- Variant: describe a new
Variantdata type (a parameterized open sum type). Basically a value of type
Variant '[X,Y,Z]can contain any value whose type is
- Flow with Variant: describe how we can use the
Variantdata type to solve control flow issues.