-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A Haskell 98 logically uninhabited data type
--
-- A Haskell 98 logically uninhabited data type, used to indicate that a
-- given term should not exist.
@package void
@version 0.5.11
module Data.Void
-- | A logically uninhabited data type.
data Void
-- | Since Void values logically don't exist, this witnesses the
-- logical reasoning tool of "ex falso quodlibet".
absurd :: Void -> a
-- | If Void is uninhabited then any Functor that holds only
-- values of type Void is holding no values.
vacuous :: Functor f => f Void -> f a
-- | If Void is uninhabited then any Monad that holds values
-- of type Void is holding no values.
vacuousM :: Monad m => m Void -> m a
instance Typeable Void
instance Show Void
instance Read Void
instance Data Void
instance Ix Void
instance Semigroup Void
instance Ord Void
instance Eq Void
module Data.Void.Unsafe
-- | If Void is uninhabited than any Functor that holds only
-- values of the type Void is holding no values.
--
-- This is only safe for valid functors that do not perform GADT-like
-- analysis on the argument.
unsafeVacuous :: Functor f => f Void -> f a
-- | If Void is uninhabited then any Monad that holds values
-- of type Void is holding no values.
--
-- This is only safe for valid monads that do not perform GADT-like
-- analysis on the argument.
unsafeVacuousM :: Monad m => m Void -> m a