moo = poo z z 
  where z       = blerg True 
        blerg True = Nothing

{-@ poo :: x:Maybe a -> {v: Maybe a | v = x } -> Bool @-}
poo :: Maybe a -> Maybe a -> Bool
poo x y = True
moo = poo z z 
  where z       = blerg True 
        blerg True = Nothing

{-@ poo :: x:Maybe a -> {v: Maybe a | v = x } -> Bool @-}
poo :: Maybe a -> Maybe a -> Bool
poo x y = True
moo = poo z z 
  where z       = blerg True 
        blerg True = Nothing

{-@ poo :: x:Maybe a -> {v: Maybe a | v = x } -> Bool @-}
poo :: Maybe a -> Maybe a -> Bool
poo x y = True