Movatterモバイル変換
[0]ホーム
{-# LANGUAGE DeriveDataTypeable #-}{-# LANGUAGE DeriveGeneric #-}{-# LANGUAGE EmptyCase #-}{-# LANGUAGE EmptyDataDeriving #-}{-# LANGUAGE Safe #-}{-# LANGUAGE StandaloneDeriving #-}------------------------------------------------------------------------------- |-- Copyright : (C) 2008-2014 Edward Kmett-- License : BSD-style (see the file libraries/base/LICENSE)---- Maintainer : Edward Kmett <ekmett@gmail.com>-- Stability : provisional-- Portability : portable---- A logically uninhabited data type, used to indicate that a given-- term should not exist.---- @since 4.8.0.0----------------------------------------------------------------------------moduleData.Void(Void,absurd,vacuous)whereimportControl.ExceptionimportData.DataimportData.IximportGHC.GenericsimportData.Semigroup(Semigroup(..),stimesIdempotent)-- | Uninhabited data type---- @since 4.8.0.0dataVoidderiving(Eq-- ^ @since 4.8.0.0,Data-- ^ @since 4.8.0.0,Generic-- ^ @since 4.8.0.0,Ord-- ^ @since 4.8.0.0,Read-- ^ Reading a 'Void' value is always a parse error, considering-- 'Void' as a data type with no constructors.---- @since 4.8.0.0,Show-- ^ @since 4.8.0.0)-- | @since 4.8.0.0instanceIxVoidwhererange_=[]index_=absurdinRange_=absurdrangeSize_=0-- | @since 4.8.0.0instanceExceptionVoid-- | @since 4.9.0.0instanceSemigroupVoidwherea<>_=astimes=stimesIdempotent-- | Since 'Void' values logically don't exist, this witnesses the-- logical reasoning tool of \"ex falso quodlibet\".---- >>> let x :: Either Void Int; x = Right 5-- >>> :{-- case x of-- Right r -> r-- Left l -> absurd l-- :}-- 5---- @since 4.8.0.0absurd::Void->aabsurda=caseaof{}-- | If 'Void' is uninhabited then any 'Functor' that holds only-- values of type 'Void' is holding no values.---- @since 4.8.0.0vacuous::Functorf=>fVoid->favacuous=fmapabsurd
[8]ページ先頭