
I suggest to include this operator in "Data.Maybe" and "Prelude". *Implementation:* (?:) :: Maybe a -> a -> a maybeA ?: b = fromMaybe b maybeA *Use cases:* 1. maybeValue ?: error "Value is unexpectedly empty. This is a bug." instead of fromMaybe (error "Value is unexpectedly empty. This is a bug.") maybeValue 2. maybeA ?: maybeB ?: c instead of fromMaybe (fromMaybe c maybeB) maybeA *Name collisions:* Hayoo search gives only 6 collisions with 5 hardly fundamental libraries. * The nickname and the operator itself are inspired by the ones from Groovy language. ** The symbols of the operator are a reminder of plain old ternary construct. *** To understand the nickname look at the operator as on emoticon.