βNone and Err pass through without calling f, and all five inputs satisfy the two laws. These sample comparisons are not a proof for every input. LossyBatch also compiles because it has Select, but drops the first element, making from x in batch select x differ from the original (id=False). The Task Select propagates an exception if the task fails rather than carrying failure as a value like Result. ContinueWith does something similar but receives the completed Task itself instead of its result, requiring explicit checks for failure and cancellation if used as map.[Footnote 7]
+None and Err pass through without calling f, and the two laws hold for the five inputs compared here; that establishes the sample results rather than proving the laws for every input. LossyBatch also compiles because it has Select, but drops the first element, making from x in batch select x differ from the original (id=False). The Task Select propagates an exception if the task fails rather than carrying failure as a value like Result. ContinueWith does something similar but receives the completed Task itself instead of its result, requiring explicit checks for failure and cancellation if used as map.[Footnote 7]