packages feed

liquidhaskell-0.8.0.2: tests/errors/MissingSizeFun.hs

module MapReduce where

{-@ data List [llen] a = N | C {lhead :: a, ltail :: List a} @-}
data List a = N | C a (List a)

{-@ measure llen @-}
llen :: List a -> Bool 
llen N = True  
llen (C _ xs) = False -- 1 + llen xs


{-@ data List2 [llen2] a = N2 | C2 {lhead2 :: a, ltail2 :: List2 a} @-}
data List2 a = N2 | C2 a (List2 a)