<div dir="ltr">Fiddling around, I found myself wanting:<div><br></div><div><font face="monospace, monospace">coalesce :: [a] -> [a] -> [a]</font></div><div><font face="monospace, monospace">-- or -- :: (Foldable t) => t a -> t a -> t a</font></div><div><font face="monospace, monospace">coalesce a b = if null a then b else a</font></div><div><br></div><div>I expected this to be <font face="monospace, monospace">(<|>)</font><font face="arial, helvetica, sans-serif"> (it is for </font><font face="monospace, monospace">Maybe</font><font face="arial, helvetica, sans-serif">!) </font>but instead I find no canonical implementation of it anywhere, and what seems like a useless <font face="monospace, monospace">instance Alternative []</font>. What's the rationale?</div></div>