singletons-2.4: A framework for generating singleton types

Copyright(C) 2017 Ryan Scott
LicenseBSD-style (see LICENSE)
MaintainerRichard Eisenberg (rae@cs.brynmawr.edu)
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Singletons.Prelude.Void

Contents

Description

Defines functions and datatypes relating to the singleton for Void, including a singleton version of all the definitions in Data.Void.

Because many of these definitions are produced by Template Haskell, it is not possible to create proper Haddock documentation. Please look up the corresponding operation in Data.Void. Also, please excuse the apparent repeated variable names. This is due to an interaction between Template Haskell and Haddock.

Synopsis

The Void singleton

data family Sing (a :: k) Source #

The singleton kind-indexed data family.

Instances
data Sing (z :: Bool) Source # 
Instance details
data Sing (z :: Bool) where
data Sing (z :: Ordering) Source # 
Instance details
data Sing (z :: Ordering) where
data Sing (a :: Type) Source # 
Instance details
data Sing (a :: Type) = STypeRep (TypeRep a)
data Sing (n :: Nat) Source # 
Instance details
data Sing (n :: Nat) where
data Sing (n :: Symbol) Source # 
Instance details
data Sing (n :: Symbol) where
data Sing (z :: ()) Source # 
Instance details
data Sing (z :: ()) where
data Sing (z :: Void) Source # 
Instance details
data Sing (z :: Void)
data Sing (z :: [a]) Source # 
Instance details
data Sing (z :: [a]) where
data Sing (z :: Maybe a) Source # 
Instance details
data Sing (z :: Maybe a) where
data Sing (z :: NonEmpty a) Source # 
Instance details
data Sing (z :: NonEmpty a) where
data Sing (z :: Either a b) Source # 
Instance details
data Sing (z :: Either a b) where
data Sing (z :: (a, b)) Source # 
Instance details
data Sing (z :: (a, b)) where
data Sing (f :: k1 ~> k2) Source # 
Instance details
data Sing (f :: k1 ~> k2) = SLambda {}
data Sing (z :: (a, b, c)) Source # 
Instance details
data Sing (z :: (a, b, c)) where
data Sing (z :: (a, b, c, d)) Source # 
Instance details
data Sing (z :: (a, b, c, d)) where
data Sing (z :: (a, b, c, d, e)) Source # 
Instance details
data Sing (z :: (a, b, c, d, e)) where
data Sing (z :: (a, b, c, d, e, f)) Source # 
Instance details
data Sing (z :: (a, b, c, d, e, f)) where
data Sing (z :: (a, b, c, d, e, f, g)) Source # 
Instance details
data Sing (z :: (a, b, c, d, e, f, g)) where

Just as Void has no constructors, the Sing instance above also has no constructors.

type SVoid = (Sing :: Void -> Type) Source #

SVoid is a kind-restricted synonym for Sing: type SVoid (a :: Void) = Sing a

Singletons from Data.Void

type family Absurd (a :: Void) :: a where ... Source #

Equations

Absurd a = Case_6989586621679285240 a a 

sAbsurd :: forall (t :: Void). Sing t -> Sing (Apply AbsurdSym0 t :: a) Source #

Defunctionalization symbols

data AbsurdSym0 (l :: TyFun Void a6989586621679285232) Source #

Instances
SuppressUnusedWarnings (AbsurdSym0 :: TyFun Void a6989586621679285232 -> *) Source # 
Instance details
type Apply (AbsurdSym0 :: TyFun Void k2 -> *) (l :: Void) Source # 
Instance details
type Apply (AbsurdSym0 :: TyFun Void k2 -> *) (l :: Void) = (Absurd l :: k2)

type AbsurdSym1 (t :: Void) = Absurd t Source #