I should use a more family friendly error.
I should move the comparison to after the result call. Then make
AutoCloseable, this way after being closed the results are read-only for the
most part and new ones cannot be added.
Result can only ever have one result,
close should be called after
every case. However for neatness, autoclose can still be used.