{-@ LIQUID "--pruneunsorted" @-} module Foo () where {-@ foo :: forall a <p :: x0:Int -> x1:a -> Bool>. (i:Int -> j : Int-> a<p (i+j)>) -> ii:Int -> jj:Int -> a <p (ii+jj)> @-} foo :: (Int -> Int -> a) -> Int -> Int -> a foo f i j = f i j