Undefined на уровне типов

Часто, когда я играю с кодом на Haskell, я использую аннотацию типа и undefined.

foo :: String -> Int
foo = undefined

Существует ли "undefined" на уровне типа, который я мог бы использовать подобным образом?

(В идеале, в сочетании с аннотацией типа)

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

Дальнейшая мысль по той же теме: есть ли способ для меня заглушить экземпляры типовых классов для типов, созданных таким образом? Еще более простой способ, чем следующий теоретический способ?

instance Monad Foo where
  return = undefined
  (>>=) = undefined
23
задан Dan Burton 28 January 2012 в 22:21
поделиться