liquidhaskell-0.9.0.2.1: tests/pos/Go_ugly_type.hs
module Go_ugly_type where
{- decrease go 2 @-}
{-@ rev :: xs:[a] -> {v: [a] | len v = len xs} @-}
rev = go []
where
{-@ go :: acc:_ -> xs:_ -> {v:_ | len v = len acc + len xs} @-}
go acc [] = acc
go acc (x:xs) = go (x:acc) xs
main :: IO ()
main = pure ()