packages feed

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 ()