foo :: a -> a -> a
foo x = \y ->
  x

bar :: Int -> Int -> Int
bar x = \y ->
  if x > y
    then 10
    else 12

foo =
  prop "is inverse to closure" $
    \(f :: StaticPtr (Int -> Int))
     (x :: Int) ->
        (unclosure . closure) f x == deRefStaticPtr f x
