module Goo where

import qualified Data.Set as S

data T a = T a

{-@ measure elems @-}
elems       :: T a -> S.Set a
elems (T a) = S.singleton a

{-@ member :: x:a -> t:T a -> {v:Bool | v <=> S.member x (elems t)} @-}
member :: a -> T a -> Bool
member = undefined
