liquidhaskell-0.9.0.2.1: tests/pos/Meas7.hs
module Meas7 () where
-- some tests for the 'expandDefaultCase' trick to case-split
-- on the "missing" constructors.
mylen :: [a] -> Int
mylen [] = 0
mylen (_:xs) = 1 + mylen xs
{-@ foo :: [a] -> {v: Int | v = 0} @-}
foo :: [a] -> Int
foo zs = case zs of
(x:xs) -> 0
_ -> mylen zs
{-@ bar :: [a] -> {v: Int | v > 0} @-}
bar :: [a] -> Int
bar zs = case zs of
[] -> 1
_ -> mylen zs