Hi!
I strongly support adding this to base, I personally have had to use something like this quite often.
One suggestion I have though is to use [NonEmpty a] as the return type, as NonEmpty is already in base and it is a more accurate type.
======
Georgi