packages feed

liquidhaskell-0.8.10.7: tests/measure/neg/List01.hs

module List00Lib where 

data List yy
  = Emp 
  | Cons yy (List yy)

{-@ measure size @-}
size :: List zoob -> Int 
size Emp         = 0 
size (Cons _ xs) = 1 + size xs 

{-@ append :: xs:List a -> ys: List a -> {v:List a | size v = size xs + size ys} @-}
append :: List a -> List a -> List a 
append Emp         ys = ys 
append (Cons x xs) ys = (append xs ys)