That is my understanding which leads to my confusion. Why do the sample files ignore Input.GetResult until it checks Command.Result? What case is not covered by GetResult? I can only see Esc/Cancel, Enter/Default, or some type of selection, all of which I’m handling without filtering on Command.Result. I’m just using it to return the result.
I admit that a third option on a binary decision is weird, but it’s actually (bool * int). In this case, if I get an unexpected OptionIndex, I should report a failure. I tried for a while to make it clear, but finally realized it’s impossible to “or” with specific tuples and switched to a “when”.
Every day there’s a new hard lesson to learn as I get very little done. F# has a lot of positives, but the peripheral is brutal. Like having to use ILDasm to figure out how the icon embedded resource is placed in the manifest (F# doesn’t have c#'s autogenerated StronglyTypedResourceBuilder) or having to read F#'s compiler spec to figure out how to get the inherited, default, and optional constructors to work with the Eto.Forms.Panel.