{-@ LIQUID "--higherorder" @-} {-@ LIQUID "--exactdc" @-} module Data.Foo where import Language.Haskell.Liquid.ProofCombinators data Prod1 a = Prod1 {unprod1 :: a } {-@ data Prod1 a = Prod1 {unprod1 :: a } @-} prod1Theorem :: Prod1 a -> Proof {-@ prod1Theorem :: x:Prod1 a -> {x == Prod1 (unprod1 x)} @-} prod1Theorem (Prod1 _) = trivial