I've decided not to cover arbitrary F# Computation Expressions (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/computation-expressions) in this book despite F# itself having this mechanism baked in under the hood of significant language features, such as sequence expressions (covered in Chapter 6, Sequences - The Core of Data Processing Patterns), query expressions (covered in Chapter 9, More Data Crunching), and asynchronous expressions (to be addressed in this chapter). Although custom computation expressions allow crafting very elegant code in some cases, I feel that covering this feature here may divert us from the practicality path we are pursuing.
Note
Those of you interested in a solid understanding and mastery of the F# computation expressions may turn to this excellent detailed reading on the subject by Scott Wlaschin: The "Computation Expressions" series (https://fsharpforfunandprofit.com/series/computation-expressions...