packages feed

liquidhaskell-0.8.0.2: tests/todo/measbug.hs

module MeasureBug where

data Heap a   = Empty | Node { pri   :: a
                             , rnk   :: Int 
                             , left  :: Heap a
                             , right :: Heap a
                             }
{-@ data Heap [zoo] @-}

{-@ invariant {v:Heap a| (zoo v) >=0} @-}

{-@ measure zoo @-}
zoo :: Heap a -> Int
zoo (Empty)        = 0
zoo (Node _ _ l r) = 1 + zoo l + zoo r