:: [a] -> Bool package:extra

A composition of not and null.
notNull []  == False
notNull [1] == True
\xs -> notNull xs == not (null xs)
Composition of not and null
Are all elements the same.
allSame [1,1,2] == False
allSame [1,1,1] == True
allSame [1]     == True
allSame []      == True
allSame (1:1:2:undefined) == False
\xs -> allSame xs == (length (nub xs) <= 1)
Is there any element which occurs more than once.
anySame [1,1,2] == True
anySame [1,2,3] == False
anySame (1:2:1:undefined) == True
anySame [] == False
\xs -> anySame xs == (length (nub xs) < length xs)