bar y = let foo :: (F Int ~ [a]) => a -> Int
            foo x = length [x,y]
        in (y,foo y)
bar y = let foo :: (F Int ~ [a]) => a -> Int
            foo x = length [x,y]
        in (y,foo y)
bar y = let foo :: (F Int ~ [a]) => a -> Int
            foo x = length [x,y]
        in (y,foo y)