{-# LANGUAGE GADTs #-} data Foo a where Foo :: Foo Int foo :: Foo Bool -> () foo x = case x of