module Measures where

llen :: [a] -> Int
llen [] = 0
llen (x:xs) = 1 + llen xs

foo x = x

{-@ measure foo @-}

{-@ measure lllen @-}

{-@ lllen :: xs:[a] -> {v:Int| (lllen xs) = v} @-}

lllen :: [a] -> Int	
lllen [] = 0
lllen (x:xs) = 1 + lllen xs