I’d expect fromEither to be 
Either a b -> (a-> c )-> (b-> c) -> c 

Nothing about the name fromEither is suggestive of the Either a a type 

On Thu, Sep 17, 2020 at 3:45 AM Oliver Charles <ollie@ocharles.org.uk> wrote:
Regardless of having a more abstract version, I'm +1 on Jon's suggestion, and those names. fromEither is something I have reached for many many times and been surprised it's not within arms reach.

On Thu, 17 Sep 2020, at 7:16 AM, Jon Purdy wrote:
I’m strongly for these:

Data.Tuple.dup :: a → (a, a)

Data.Either.fromEither :: Either a a → a