Indefinido en el nivel de tipo

A menudo, cuando estoy jugando con el código Haskell, apago las cosas con una anotación de tipo yundefined.

foo :: String -> Int
foo = undefined

Existe un nivel de tipo "indefinido" que podría usar de manera similar?

(Idealmente, junto con una anotación amable)

type Foo :: * -> *
type Foo = Undefined

Pensé más en el mismo hilo: ¿hay alguna manera de que yo elimine las instancias de la clase de tipos para los tipos creados de esta manera? ¿Una forma aún más fácil que la siguiente forma teórica?

instance Monad Foo where
  return = undefined
  (>>=) = undefined

Respuestas a la pregunta(4)

Su respuesta a la pregunta