twice :: (a -> a) -> a -> a
twice f x =  f ( f x )
-- twice = \ f x -> f (f x)

double :: Int -> Int
double = \ x -> 2 * x

t1 = twice double 3
t2 = twice (\x -> 2 * x) 3
t3 = twice (\x -> 2 * x + 1) 3

