Problem: give the smallest possible complete subroutine/function/method
definition in a language of your choice which, when called with a list,
array, whatever, returns the power set of that list. It may be in any order,
but must not contain duplicates. e.g.:
p([1, 2, 3]) returns:
[[], [1], [2], [3], [2, 3], [1, 2], [1, 3], [1, 2, 3]]
*: The second haskell entry works for infinite lists!