liquidhaskell-0.8.0.2: tests/errors/ExportMeasure0.hs
-- FIX: module ExportMeasure (llen) where
module ExportMeasure () where
{-@ data LL [llen] @-}
data LL a = N | C a (LL a)
{-@ invariant {v:LL a | (llen v) >= 0} @-}
{-@ measure llen @-}
llen :: (LL a) -> Int
llen(N) = 0
llen(C x xs) = 1 + (llen xs)
{-@ lmap :: (a -> b) -> xs:(LL a) -> {v: LL b | llen v = llen xs } @-}
lmap f N = N
lmap f (C x xs) = C (f x) (lmap f xs)