{-# LANGUAGE ExplicitNamespaces #-}
{-# LANGUAGE NoStarIsType #-}
module Prelude.Singletons (
module Data.Singletons,
SBool(SFalse, STrue),
If, sIf,
type (&&), (%&&), type (||), (%||), Not, sNot, Otherwise, sOtherwise,
SMaybe(SNothing, SJust),
maybe_, Maybe_, sMaybe_,
SEither(SLeft, SRight),
either_, Either_, sEither_,
SOrdering(SLT, SEQ, SGT),
SChar, Symbol,
SList(..),
STuple0(..), STuple2(..), STuple3(..), STuple4(..),
STuple5(..), STuple6(..), STuple7(..),
Fst, sFst, Snd, sSnd, Curry, sCurry, Uncurry, sUncurry,
PEq(type (==), type (/=)), SEq((%==), (%/=)),
POrd(Compare, type (<), type (<=), type (>=), type (>), Max, Min),
SOrd(sCompare, (%<), (%<=), (%>=), (%>), sMax, sMin),
PEnum(
ToEnum, FromEnum,
EnumFromTo, EnumFromThenTo),
SEnum(
sToEnum, sFromEnum,
sEnumFromTo, sEnumFromThenTo),
PBounded(MinBound, MaxBound), SBounded(sMinBound, sMaxBound),
PNum(type (+), type (-), type (*), Negate, Abs, Signum, FromInteger),
SNum((%+), (%-), (%*), sNegate, sAbs, sSignum, sFromInteger),
Subtract, sSubtract,
PSemigroup(type (<>)), SSemigroup((%<>)),
PMonoid(Mempty, Mappend, Mconcat), SMonoid(sMempty, sMappend, sMconcat),
PFunctor(Fmap, type (<$)), SFunctor(sFmap, (%<$)), type (<$>), (%<$>),
PApplicative(Pure, type (<*>), type (*>), type (<*)),
SApplicative(sPure, (%<*>), (%*>), (%<*)),
PMonad(type (>>=), type (>>), Return),
SMonad((%>>=), (%>>), sReturn),
PMonadFail(Fail), SMonadFail(sFail),
MapM_, sMapM_, Sequence_, sSequence_, type (=<<), (%=<<),
PFoldable(Elem, FoldMap, Foldr, Foldl, Foldr1, Foldl1,
Maximum, Minimum, Product, Sum),
SFoldable(sElem, sFoldMap, sFoldr, sFoldl, sFoldr1, sFoldl1,
sMaximum, sMinimum, sProduct, sSum),
PTraversable(Traverse, SequenceA, MapM, Sequence),
STraversable(sTraverse, sSequenceA, sMapM, sSequence),
Id, sId, Const, sConst, type (.), (%.), Flip, sFlip, type ($), (%$), Until, sUntil,
AsTypeOf, sAsTypeOf,
Error, sError, ErrorWithoutStackTrace, sErrorWithoutStackTrace,
Undefined, sUndefined,
Seq, sSeq, type ($!), (%$!),
Map, sMap, type (++), (%++), Filter, sFilter,
Head, sHead, Last, sLast, Tail, sTail, Init, sInit, type (!!), (%!!),
Null, sNull, Length, sLength,
Reverse, sReverse,
And, sAnd, Or, sOr, Any, sAny, All, sAll,
Concat, sConcat, ConcatMap, sConcatMap,
Scanl, sScanl, Scanl1, sScanl1, Scanr, sScanr, Scanr1, sScanr1,
Replicate, sReplicate,
Take, sTake, Drop, sDrop,
TakeWhile, sTakeWhile, DropWhile, sDropWhile,
Span, sSpan, Break, sBreak,
SplitAt, sSplitAt,
NotElem, sNotElem,
Lookup, sLookup,
Zip, sZip, Zip3, sZip3,
ZipWith, sZipWith, ZipWith3, sZipWith3,
Unzip, sUnzip, Unzip3, sUnzip3,
Unlines, sUnlines, Unwords, sUnwords,
SymbolS,
show_,
PShow(ShowsPrec, ShowList, Show_), SShow(sShowsPrec, sShowList, sShow_),
Shows, sShows,
ShowChar, sShowChar, ShowString, sShowString, ShowParen, sShowParen,
FalseSym0, TrueSym0,
IfSym0, IfSym1, IfSym2, IfSym3,
type (&&@#@$), type (&&@#@$$), type (&&@#@$$$),
type (||@#@$), type (||@#@$$), type (||@#@$$$),
NotSym0, NotSym1,
OtherwiseSym0,
NothingSym0, JustSym0, JustSym1,
Maybe_Sym0, Maybe_Sym1, Maybe_Sym2, Maybe_Sym3,
LeftSym0, LeftSym1, RightSym0, RightSym1,
Either_Sym0, Either_Sym1, Either_Sym2, Either_Sym3,
LTSym0, EQSym0, GTSym0,
(:@#@$), (:@#@$$), (:@#@$$$), NilSym0,
Tuple0Sym0,
Tuple2Sym0, Tuple2Sym1, Tuple2Sym2,
Tuple3Sym0, Tuple3Sym1, Tuple3Sym2, Tuple3Sym3,
Tuple4Sym0, Tuple4Sym1, Tuple4Sym2, Tuple4Sym3, Tuple4Sym4,
Tuple5Sym0, Tuple5Sym1, Tuple5Sym2, Tuple5Sym3, Tuple5Sym4, Tuple5Sym5,
Tuple6Sym0, Tuple6Sym1, Tuple6Sym2, Tuple6Sym3, Tuple6Sym4, Tuple6Sym5, Tuple6Sym6,
Tuple7Sym0, Tuple7Sym1, Tuple7Sym2, Tuple7Sym3, Tuple7Sym4, Tuple7Sym5, Tuple7Sym6, Tuple7Sym7,
FstSym0, FstSym1, SndSym0, SndSym1,
CurrySym0, CurrySym1, CurrySym2, CurrySym3,
UncurrySym0, UncurrySym1, UncurrySym2,
type (==@#@$), type (==@#@$$), type (==@#@$$$),
type (/=@#@$), type (/=@#@$$), type (/=@#@$$$),
CompareSym0, CompareSym1, CompareSym2,
type (<@#@$), type (<@#@$$), type (<@#@$$$),
type (<=@#@$), type (<=@#@$$), type (<=@#@$$$),
type (>@#@$), type (>@#@$$), type (>@#@$$$),
type (>=@#@$), type (>=@#@$$), type (>=@#@$$$),
MaxSym0, MaxSym1, MaxSym2,
MinSym0, MinSym1, MinSym2,
ToEnumSym0, ToEnumSym1,
FromEnumSym0, FromEnumSym1,
EnumFromToSym0, EnumFromToSym1, EnumFromToSym2,
EnumFromThenToSym0, EnumFromThenToSym1, EnumFromThenToSym2, EnumFromThenToSym3,
MinBoundSym0, MaxBoundSym0,
type (+@#@$), type (+@#@$$), type (+@#@$$$),
type (-@#@$), type (-@#@$$), type (-@#@$$$),
type (*@#@$), type (*@#@$$), type (*@#@$$$),
NegateSym0, NegateSym1,
AbsSym0, AbsSym1,
SignumSym0, SignumSym1,
FromIntegerSym0, FromIntegerSym1,
SubtractSym0, SubtractSym1, SubtractSym2,
type (<>@#@$), type (<>@#@$$), type (<>@#@$$$),
MemptySym0,
MappendSym0, MappendSym1, MappendSym2,
MconcatSym0, MconcatSym1,
FmapSym0, FmapSym1, FmapSym2,
type (<$@#@$), type (<$@#@$$), type (<$@#@$$$),
type (<$>@#@$), type (<$>@#@$$), type (<$>@#@$$$),
PureSym0, PureSym1,
type (<*>@#@$), type (<*>@#@$$), type (<*>@#@$$$),
type (*>@#@$), type (*>@#@$$), type (*>@#@$$$),
type (<*@#@$), type (<*@#@$$), type (<*@#@$$$),
type (>>=@#@$), type (>>=@#@$$), type (>>=@#@$$$),
type (>>@#@$), type (>>@#@$$), type (>>@#@$$$),
ReturnSym0, ReturnSym1, FailSym0, FailSym1,
MapM_Sym0, MapM_Sym1, MapM_Sym2,
Sequence_Sym0, Sequence_Sym1,
type (=<<@#@$), type (=<<@#@$$), type (=<<@#@$$$),
ElemSym0, ElemSym1, ElemSym2,
FoldMapSym0, FoldMapSym1, FoldMapSym2,
FoldrSym0, FoldrSym1, FoldrSym2, FoldrSym3,
FoldlSym0, FoldlSym1, FoldlSym2, FoldlSym3,
Foldr1Sym0, Foldr1Sym1, Foldr1Sym2,
Foldl1Sym0, Foldl1Sym1, Foldl1Sym2,
MaximumSym0, MaximumSym1,
MinimumSym0, MinimumSym1,
ProductSym0, ProductSym1,
SumSym0, SumSym1,
TraverseSym0, TraverseSym1, TraverseSym2,
SequenceASym0, SequenceASym1,
MapMSym0, MapMSym1, MapMSym2,
SequenceSym0, SequenceSym1,
IdSym0, IdSym1, ConstSym0, ConstSym1, ConstSym2,
type (.@#@$), type (.@#@$$), type (.@#@$$$), type (.@#@$$$$),
FlipSym0, FlipSym1, FlipSym2, FlipSym3,
type ($@#@$), type ($@#@$$), type ($@#@$$$),
UntilSym0, UntilSym1, UntilSym2, UntilSym3,
AsTypeOfSym0, AsTypeOfSym1, AsTypeOfSym2,
ErrorSym0, ErrorSym1,
ErrorWithoutStackTraceSym0, ErrorWithoutStackTraceSym1,
UndefinedSym0,
SeqSym0, SeqSym1, SeqSym2,
type ($!@#@$), type ($!@#@$$), type ($!@#@$$$),
MapSym0, MapSym1, MapSym2,
type (++@#@$), type (++@#@$$), type (++@#@$$$),
FilterSym0, FilterSym1, FilterSym2,
HeadSym0, HeadSym1, LastSym0, LastSym1,
TailSym0, TailSym1, InitSym0, InitSym1,
type (!!@#@$), type (!!@#@$$), type (!!@#@$$$),
NullSym0, NullSym1,
LengthSym0, LengthSym1,
ReverseSym0, ReverseSym1,
AndSym0, AndSym1, OrSym0, OrSym1,
AnySym0, AnySym1, AnySym2,
AllSym0, AllSym1, AllSym2,
ConcatSym0, ConcatSym1,
ConcatMapSym0, ConcatMapSym1, ConcatMapSym2,
ScanlSym0, ScanlSym1, ScanlSym2, ScanlSym3,
Scanl1Sym0, Scanl1Sym1, Scanl1Sym2,
ScanrSym0, ScanrSym1, ScanrSym2, ScanrSym3,
Scanr1Sym0, Scanr1Sym1, Scanr1Sym2,
ReplicateSym0, ReplicateSym1, ReplicateSym2,
TakeSym0, TakeSym1, TakeSym2,
DropSym0, DropSym1, DropSym2,
TakeWhileSym0, TakeWhileSym1, TakeWhileSym2,
DropWhileSym0, DropWhileSym1, DropWhileSym2,
DropWhileEndSym0, DropWhileEndSym1, DropWhileEndSym2,
SpanSym0, SpanSym1, SpanSym2,
BreakSym0, BreakSym1, BreakSym2,
SplitAtSym0, SplitAtSym1, SplitAtSym2,
NotElemSym0, NotElemSym1, NotElemSym2,
LookupSym0, LookupSym1, LookupSym2,
ZipSym0, ZipSym1, ZipSym2,
Zip3Sym0, Zip3Sym1, Zip3Sym2, Zip3Sym3,
ZipWithSym0, ZipWithSym1, ZipWithSym2, ZipWithSym3,
ZipWith3Sym0, ZipWith3Sym1, ZipWith3Sym2, ZipWith3Sym3,
UnzipSym0, UnzipSym1, Unzip3Sym0, Unzip3Sym1,
UnlinesSym0, UnlinesSym1, UnwordsSym0, UnwordsSym1,
ShowsPrecSym0, ShowsPrecSym1, ShowsPrecSym2, ShowsPrecSym3,
ShowListSym0, ShowListSym1, ShowListSym2,
Show_Sym0, Show_Sym1,
ShowsSym0, ShowsSym1, ShowsSym2,
ShowCharSym0, ShowCharSym1, ShowCharSym2,
ShowStringSym0, ShowStringSym1, ShowStringSym2,
ShowParenSym0, ShowParenSym1, ShowParenSym2
) where
import Control.Applicative.Singletons
hiding (Const, ConstSym0, ConstSym1)
import Control.Monad.Singletons
import Data.Bool.Singletons
import Data.Either.Singletons
import Data.Eq.Singletons
import Data.Foldable.Singletons
import Data.List.Singletons
import Data.Maybe.Singletons
import Data.Monoid.Singletons
( PMonoid(..), SMonoid(..), MemptySym0, MappendSym0
, MappendSym1, MappendSym2, MconcatSym0, MconcatSym1 )
import Data.Ord.Singletons
import Data.Semigroup.Singletons
( PSemigroup(..), SSemigroup(..)
, type (<>@#@$), type (<>@#@$$), type (<>@#@$$$) )
import Data.Singletons
import Data.Singletons.Base.Enum
hiding (Succ, Pred, SuccSym0, SuccSym1, PredSym0, PredSym1, sSucc, sPred)
import Data.Traversable.Singletons
import Data.Tuple.Singletons
import GHC.Base.Singletons
hiding (Foldr, FoldrSym0, FoldrSym1, FoldrSym2, FoldrSym3, sFoldr)
import GHC.Num.Singletons
import GHC.TypeLits.Singletons
import Text.Show.Singletons