TITLE: haskell fold function

    let g :: [a] -> [[a]]; g a = [a]
    let gx = g . g . id
    gx [1] = [[[1]]]

-- Why the following does not work 

    let h = foldr (\a b -> a . b) id [g, g]