I have a list comprehension that extracts the singletons from xs using f and g, and creates a pair from their output:
[(a,b) | a <- f xs, b <- g xs]
I executed this and the result is the empty list:
[]
That is odd. Why is the empty list the result?