Generating a value of type "Either (Int, String) Bool" is proving that there's at least one integer and at least one string, or there's at least one valid boolean value. Except in Haskell, where it could also be an infinite loop.