singletons-2.4: A framework for generating singleton types

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

Data.Singletons.TypeLits

Contents

Description

Defines and exports singletons useful for the Nat and Symbol kinds.

Synopsis

Documentation

data Nat :: * #

(Kind) This is the kind of type-level natural numbers.

Instances
ShowSing Nat Source # 
Instance details

Methods

showsSingPrec :: Int -> Sing a -> ShowS Source #

SNum Nat Source # 
Instance details
PNum Nat Source # 
Instance details

Associated Types

type arg + arg :: a Source #

type arg - arg :: a Source #

type arg * arg :: a Source #

type Negate arg :: a Source #

type Abs arg :: a Source #

type Signum arg :: a Source #

type FromInteger arg :: a Source #

SShow Nat Source # 
Instance details
PShow Nat Source #

Note that this instance is really, really slow, since it uses an inefficient, inductive definition of division behind the hood.

Instance details

Associated Types

type ShowsPrec arg arg arg :: Symbol Source #

type Show_ arg :: Symbol Source #

type ShowList arg arg :: Symbol Source #

SEnum Nat Source # 
Instance details
PEnum Nat Source # 
Instance details

Associated Types

type Succ arg :: a Source #

type Pred arg :: a Source #

type ToEnum arg :: a Source #

type FromEnum arg :: Nat Source #

type EnumFromTo arg arg :: [a] Source #

type EnumFromThenTo arg arg arg :: [a] Source #

SuppressUnusedWarnings (^@#@$$) Source # 
Instance details
SuppressUnusedWarnings DivSym1 Source # 
Instance details
SuppressUnusedWarnings ModSym1 Source # 
Instance details
SuppressUnusedWarnings QuotSym1 Source # 
Instance details
SuppressUnusedWarnings RemSym1 Source # 
Instance details
SuppressUnusedWarnings QuotRemSym1 Source # 
Instance details
SuppressUnusedWarnings DivModSym1 Source # 
Instance details
SuppressUnusedWarnings (^@#@$) Source # 
Instance details
SuppressUnusedWarnings DivSym0 Source # 
Instance details
SuppressUnusedWarnings ModSym0 Source # 
Instance details
SuppressUnusedWarnings QuotSym0 Source # 
Instance details
SuppressUnusedWarnings RemSym0 Source # 
Instance details
SuppressUnusedWarnings QuotRemSym0 Source # 
Instance details
SuppressUnusedWarnings DivModSym0 Source # 
Instance details
SuppressUnusedWarnings KnownNatSym0 Source # 
Instance details
SuppressUnusedWarnings Log2Sym0 Source # 
Instance details
SuppressUnusedWarnings (FindIndicesSym1 :: (TyFun a6989586621679442446 Bool -> Type) -> TyFun [a6989586621679442446] [Nat] -> *) Source # 
Instance details
SuppressUnusedWarnings (FindIndexSym1 :: (TyFun a6989586621679442447 Bool -> Type) -> TyFun [a6989586621679442447] (Maybe Nat) -> *) Source # 
Instance details
SuppressUnusedWarnings ((!!@#@$$) :: [a6989586621679442420] -> TyFun Nat a6989586621679442420 -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym2 :: Nat -> a6989586621679672338 -> TyFun Symbol Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (DropSym1 :: Nat -> TyFun [a6989586621679442437] [a6989586621679442437] -> *) Source # 
Instance details
SuppressUnusedWarnings (TakeSym1 :: Nat -> TyFun [a6989586621679442438] [a6989586621679442438] -> *) Source # 
Instance details
SuppressUnusedWarnings (SplitAtSym1 :: Nat -> TyFun [a6989586621679442436] ([a6989586621679442436], [a6989586621679442436]) -> *) Source # 
Instance details
SuppressUnusedWarnings (ReplicateSym1 :: Nat -> TyFun a6989586621679442422 [a6989586621679442422] -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym1 :: Nat -> TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (TakeSym1 :: Nat -> TyFun (NonEmpty a6989586621679768177) [a6989586621679768177] -> *) Source # 
Instance details
SuppressUnusedWarnings (DropSym1 :: Nat -> TyFun (NonEmpty a6989586621679768176) [a6989586621679768176] -> *) Source # 
Instance details
SuppressUnusedWarnings (SplitAtSym1 :: Nat -> TyFun (NonEmpty a6989586621679768175) ([a6989586621679768175], [a6989586621679768175]) -> *) Source # 
Instance details
SuppressUnusedWarnings (ElemIndicesSym1 :: a6989586621679442448 -> TyFun [a6989586621679442448] [Nat] -> *) Source # 
Instance details
SuppressUnusedWarnings (ElemIndexSym1 :: a6989586621679442449 -> TyFun [a6989586621679442449] (Maybe Nat) -> *) Source # 
Instance details
SuppressUnusedWarnings ((!!@#@$$) :: NonEmpty a6989586621679768155 -> TyFun Nat a6989586621679768155 -> *) Source # 
Instance details
SuppressUnusedWarnings (FindIndicesSym0 :: TyFun (TyFun a6989586621679442446 Bool -> Type) (TyFun [a6989586621679442446] [Nat] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (FindIndexSym0 :: TyFun (TyFun a6989586621679442447 Bool -> Type) (TyFun [a6989586621679442447] (Maybe Nat) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings ((!!@#@$) :: TyFun [a6989586621679442420] (TyFun Nat a6989586621679442420 -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (LengthSym0 :: TyFun [a6989586621679442423] Nat -> *) Source # 
Instance details
SuppressUnusedWarnings (DropSym0 :: TyFun Nat (TyFun [a6989586621679442437] [a6989586621679442437] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (TakeSym0 :: TyFun Nat (TyFun [a6989586621679442438] [a6989586621679442438] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (SplitAtSym0 :: TyFun Nat (TyFun [a6989586621679442436] ([a6989586621679442436], [a6989586621679442436]) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ReplicateSym0 :: TyFun Nat (TyFun a6989586621679442422 [a6989586621679442422] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (TakeSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768177) [a6989586621679768177] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (DropSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768176) [a6989586621679768176] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (SplitAtSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768175) ([a6989586621679768175], [a6989586621679768175]) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (FromIntegerSym0 :: TyFun Nat a6989586621679412530 -> *) Source # 
Instance details
SuppressUnusedWarnings (ToEnumSym0 :: TyFun Nat a6989586621679843221 -> *) Source # 
Instance details
SuppressUnusedWarnings (ElemIndicesSym0 :: TyFun a6989586621679442448 (TyFun [a6989586621679442448] [Nat] -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ElemIndexSym0 :: TyFun a6989586621679442449 (TyFun [a6989586621679442449] (Maybe Nat) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (FromEnumSym0 :: TyFun a6989586621679843221 Nat -> *) Source # 
Instance details
SuppressUnusedWarnings ((!!@#@$) :: TyFun (NonEmpty a6989586621679768155) (TyFun Nat a6989586621679768155 -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (LengthSym0 :: TyFun (NonEmpty a6989586621679768208) Nat -> *) Source # 
Instance details
type Demote Nat Source # 
Instance details
data Sing (n :: Nat) Source # 
Instance details
data Sing (n :: Nat) where
type Negate (a :: Nat) Source # 
Instance details
type Negate (a :: Nat) = (Error "Cannot negate a natural number" :: Nat)
type Abs (a :: Nat) Source # 
Instance details
type Abs (a :: Nat) = a
type Signum (a :: Nat) Source # 
Instance details
type Signum (a :: Nat)
type FromInteger a Source # 
Instance details
type FromInteger a = a
type Show_ (arg :: Nat) Source # 
Instance details
type Show_ (arg :: Nat)
type Succ (a :: Nat) Source # 
Instance details
type Succ (a :: Nat)
type Pred (a :: Nat) Source # 
Instance details
type Pred (a :: Nat)
type ToEnum a Source # 
Instance details
type ToEnum a
type FromEnum (a :: Nat) Source # 
Instance details
type FromEnum (a :: Nat)
type (a :: Nat) == (b :: Nat) Source # 
Instance details
type (a :: Nat) == (b :: Nat) = a == b
type (x :: Nat) /= (y :: Nat) Source # 
Instance details
type (x :: Nat) /= (y :: Nat) = Not (x == y)
type Compare (a :: Nat) (b :: Nat) Source # 
Instance details
type Compare (a :: Nat) (b :: Nat) = CmpNat a b
type (arg1 :: Nat) < (arg2 :: Nat) Source # 
Instance details
type (arg1 :: Nat) < (arg2 :: Nat)
type (arg1 :: Nat) <= (arg2 :: Nat) Source # 
Instance details
type (arg1 :: Nat) <= (arg2 :: Nat)
type (arg1 :: Nat) > (arg2 :: Nat) Source # 
Instance details
type (arg1 :: Nat) > (arg2 :: Nat)
type (arg1 :: Nat) >= (arg2 :: Nat) Source # 
Instance details
type (arg1 :: Nat) >= (arg2 :: Nat)
type Max (arg1 :: Nat) (arg2 :: Nat) Source # 
Instance details
type Max (arg1 :: Nat) (arg2 :: Nat)
type Min (arg1 :: Nat) (arg2 :: Nat) Source # 
Instance details
type Min (arg1 :: Nat) (arg2 :: Nat)
type (a :: Nat) + (b :: Nat) Source # 
Instance details
type (a :: Nat) + (b :: Nat) = a + b
type (a :: Nat) - (b :: Nat) Source # 
Instance details
type (a :: Nat) - (b :: Nat) = a - b
type (a :: Nat) * (b :: Nat) Source # 
Instance details
type (a :: Nat) * (b :: Nat) = a * b
type ShowList (arg1 :: [Nat]) arg2 Source # 
Instance details
type ShowList (arg1 :: [Nat]) arg2
type EnumFromTo (a1 :: Nat) (a2 :: Nat) Source # 
Instance details
type EnumFromTo (a1 :: Nat) (a2 :: Nat)
type Apply KnownNatSym0 (l :: Nat) Source # 
Instance details
type Apply KnownNatSym0 (l :: Nat) = KnownNat l
type Apply Log2Sym0 (l :: Nat) Source # 
Instance details
type Apply Log2Sym0 (l :: Nat) = Log2 l
type ShowsPrec _ (n :: Nat) x Source # 
Instance details
type ShowsPrec _ (n :: Nat) x
type EnumFromThenTo (a1 :: Nat) (a2 :: Nat) (a3 :: Nat) Source # 
Instance details
type EnumFromThenTo (a1 :: Nat) (a2 :: Nat) (a3 :: Nat)
type Apply ((^@#@$$) l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply ((^@#@$$) l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = l1 ^ l2
type Apply (DivSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (DivSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Div l1 l2
type Apply (ModSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (ModSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Mod l1 l2
type Apply (QuotSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (QuotSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Quot l1 l2
type Apply (RemSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (RemSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Rem l1 l2
type Apply (FromIntegerSym0 :: TyFun Nat k2 -> *) (l :: Nat) Source # 
Instance details
type Apply (FromIntegerSym0 :: TyFun Nat k2 -> *) (l :: Nat) = (FromInteger l :: k2)
type Apply (ToEnumSym0 :: TyFun Nat k2 -> *) (l :: Nat) Source # 
Instance details
type Apply (ToEnumSym0 :: TyFun Nat k2 -> *) (l :: Nat) = (ToEnum l :: k2)
type Apply (FromEnumSym0 :: TyFun a Nat -> *) (l :: a) Source # 
Instance details
type Apply (FromEnumSym0 :: TyFun a Nat -> *) (l :: a) = FromEnum l
type Apply ((!!@#@$$) l1 :: TyFun Nat a -> *) (l2 :: Nat) Source # 
Instance details
type Apply ((!!@#@$$) l1 :: TyFun Nat a -> *) (l2 :: Nat) = l1 !! l2
type Apply ((!!@#@$$) l1 :: TyFun Nat a -> *) (l2 :: Nat) Source # 
Instance details
type Apply ((!!@#@$$) l1 :: TyFun Nat a -> *) (l2 :: Nat) = l1 !! l2
type Apply (^@#@$) (l :: Nat) Source # 
Instance details
type Apply (^@#@$) (l :: Nat) = (^@#@$$) l
type Apply DivSym0 (l :: Nat) Source # 
Instance details
type Apply DivSym0 (l :: Nat) = DivSym1 l
type Apply ModSym0 (l :: Nat) Source # 
Instance details
type Apply ModSym0 (l :: Nat) = ModSym1 l
type Apply QuotSym0 (l :: Nat) Source # 
Instance details
type Apply QuotSym0 (l :: Nat) = QuotSym1 l
type Apply RemSym0 (l :: Nat) Source # 
Instance details
type Apply RemSym0 (l :: Nat) = RemSym1 l
type Apply QuotRemSym0 (l :: Nat) Source # 
Instance details
type Apply DivModSym0 (l :: Nat) Source # 
Instance details
type Apply DivModSym0 (l :: Nat) = DivModSym1 l
type Apply (DropSym0 :: TyFun Nat (TyFun [a6989586621679442437] [a6989586621679442437] -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (DropSym0 :: TyFun Nat (TyFun [a6989586621679442437] [a6989586621679442437] -> Type) -> *) (l :: Nat) = (DropSym1 l :: TyFun [a6989586621679442437] [a6989586621679442437] -> *)
type Apply (TakeSym0 :: TyFun Nat (TyFun [a6989586621679442438] [a6989586621679442438] -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (TakeSym0 :: TyFun Nat (TyFun [a6989586621679442438] [a6989586621679442438] -> Type) -> *) (l :: Nat) = (TakeSym1 l :: TyFun [a6989586621679442438] [a6989586621679442438] -> *)
type Apply (SplitAtSym0 :: TyFun Nat (TyFun [a6989586621679442436] ([a6989586621679442436], [a6989586621679442436]) -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (SplitAtSym0 :: TyFun Nat (TyFun [a6989586621679442436] ([a6989586621679442436], [a6989586621679442436]) -> Type) -> *) (l :: Nat) = (SplitAtSym1 l :: TyFun [a6989586621679442436] ([a6989586621679442436], [a6989586621679442436]) -> *)
type Apply (ReplicateSym0 :: TyFun Nat (TyFun a6989586621679442422 [a6989586621679442422] -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (ReplicateSym0 :: TyFun Nat (TyFun a6989586621679442422 [a6989586621679442422] -> Type) -> *) (l :: Nat) = (ReplicateSym1 l :: TyFun a6989586621679442422 [a6989586621679442422] -> *)
type Apply (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: Nat) = (ShowsPrecSym1 l :: TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *)
type Apply (TakeSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768177) [a6989586621679768177] -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (TakeSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768177) [a6989586621679768177] -> Type) -> *) (l :: Nat) = (TakeSym1 l :: TyFun (NonEmpty a6989586621679768177) [a6989586621679768177] -> *)
type Apply (DropSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768176) [a6989586621679768176] -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (DropSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768176) [a6989586621679768176] -> Type) -> *) (l :: Nat) = (DropSym1 l :: TyFun (NonEmpty a6989586621679768176) [a6989586621679768176] -> *)
type Apply (SplitAtSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768175) ([a6989586621679768175], [a6989586621679768175]) -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (SplitAtSym0 :: TyFun Nat (TyFun (NonEmpty a6989586621679768175) ([a6989586621679768175], [a6989586621679768175]) -> Type) -> *) (l :: Nat) = (SplitAtSym1 l :: TyFun (NonEmpty a6989586621679768175) ([a6989586621679768175], [a6989586621679768175]) -> *)
type Apply (QuotRemSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) Source # 
Instance details
type Apply (QuotRemSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) = QuotRem l1 l2
type Apply (DivModSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) Source # 
Instance details
type Apply (DivModSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) = DivMod l1 l2
type Apply (ElemIndicesSym0 :: TyFun a6989586621679442448 (TyFun [a6989586621679442448] [Nat] -> Type) -> *) (l :: a6989586621679442448) Source # 
Instance details
type Apply (ElemIndicesSym0 :: TyFun a6989586621679442448 (TyFun [a6989586621679442448] [Nat] -> Type) -> *) (l :: a6989586621679442448) = ElemIndicesSym1 l
type Apply (ElemIndexSym0 :: TyFun a6989586621679442449 (TyFun [a6989586621679442449] (Maybe Nat) -> Type) -> *) (l :: a6989586621679442449) Source # 
Instance details
type Apply (ElemIndexSym0 :: TyFun a6989586621679442449 (TyFun [a6989586621679442449] (Maybe Nat) -> Type) -> *) (l :: a6989586621679442449) = ElemIndexSym1 l
type Apply (LengthSym0 :: TyFun [a] Nat -> *) (l :: [a]) Source # 
Instance details
type Apply (LengthSym0 :: TyFun [a] Nat -> *) (l :: [a]) = Length l
type Apply (LengthSym0 :: TyFun (NonEmpty a) Nat -> *) (l :: NonEmpty a) Source # 
Instance details
type Apply (LengthSym0 :: TyFun (NonEmpty a) Nat -> *) (l :: NonEmpty a) = Length l
type Apply (FindIndicesSym1 l1 :: TyFun [a] [Nat] -> *) (l2 :: [a]) Source # 
Instance details
type Apply (FindIndicesSym1 l1 :: TyFun [a] [Nat] -> *) (l2 :: [a]) = FindIndices l1 l2
type Apply (ElemIndicesSym1 l1 :: TyFun [a] [Nat] -> *) (l2 :: [a]) Source # 
Instance details
type Apply (ElemIndicesSym1 l1 :: TyFun [a] [Nat] -> *) (l2 :: [a]) = ElemIndices l1 l2
type Apply (FindIndexSym1 l1 :: TyFun [a] (Maybe Nat) -> *) (l2 :: [a]) Source # 
Instance details
type Apply (FindIndexSym1 l1 :: TyFun [a] (Maybe Nat) -> *) (l2 :: [a]) = FindIndex l1 l2
type Apply (ElemIndexSym1 l1 :: TyFun [a] (Maybe Nat) -> *) (l2 :: [a]) Source # 
Instance details
type Apply (ElemIndexSym1 l1 :: TyFun [a] (Maybe Nat) -> *) (l2 :: [a]) = ElemIndex l1 l2
type Apply ((!!@#@$) :: TyFun [a6989586621679442420] (TyFun Nat a6989586621679442420 -> Type) -> *) (l :: [a6989586621679442420]) Source # 
Instance details
type Apply ((!!@#@$) :: TyFun [a6989586621679442420] (TyFun Nat a6989586621679442420 -> Type) -> *) (l :: [a6989586621679442420]) = (!!@#@$$) l
type Apply ((!!@#@$) :: TyFun (NonEmpty a6989586621679768155) (TyFun Nat a6989586621679768155 -> Type) -> *) (l :: NonEmpty a6989586621679768155) Source # 
Instance details
type Apply ((!!@#@$) :: TyFun (NonEmpty a6989586621679768155) (TyFun Nat a6989586621679768155 -> Type) -> *) (l :: NonEmpty a6989586621679768155) = (!!@#@$$) l
type Apply (FindIndicesSym0 :: TyFun (TyFun a6989586621679442446 Bool -> Type) (TyFun [a6989586621679442446] [Nat] -> Type) -> *) (l :: TyFun a6989586621679442446 Bool -> Type) Source # 
Instance details
type Apply (FindIndicesSym0 :: TyFun (TyFun a6989586621679442446 Bool -> Type) (TyFun [a6989586621679442446] [Nat] -> Type) -> *) (l :: TyFun a6989586621679442446 Bool -> Type) = FindIndicesSym1 l
type Apply (FindIndexSym0 :: TyFun (TyFun a6989586621679442447 Bool -> Type) (TyFun [a6989586621679442447] (Maybe Nat) -> Type) -> *) (l :: TyFun a6989586621679442447 Bool -> Type) Source # 
Instance details
type Apply (FindIndexSym0 :: TyFun (TyFun a6989586621679442447 Bool -> Type) (TyFun [a6989586621679442447] (Maybe Nat) -> Type) -> *) (l :: TyFun a6989586621679442447 Bool -> Type) = FindIndexSym1 l

data Symbol :: * #

(Kind) This is the kind of type-level symbols. Declared here because class IP needs it

Instances
SingKind Symbol

Since: 4.9.0.0

Instance details

Associated Types

type DemoteRep Symbol :: *

Methods

fromSing :: Sing a -> DemoteRep Symbol

ShowSing Symbol Source # 
Instance details

Methods

showsSingPrec :: Int -> Sing a -> ShowS Source #

SIsString Symbol Source # 
Instance details
PIsString Symbol Source # 
Instance details

Associated Types

type FromString arg :: a Source #

SShow Symbol Source # 
Instance details
PShow Symbol Source # 
Instance details

Associated Types

type ShowsPrec arg arg arg :: Symbol Source #

type Show_ arg :: Symbol Source #

type ShowList arg arg :: Symbol Source #

KnownSymbol a => SingI (a :: Symbol)

Since: 4.9.0.0

Instance details

Methods

sing :: Sing a

SuppressUnusedWarnings ShowParenSym2 Source # 
Instance details
SuppressUnusedWarnings ShowParenSym1 Source # 
Instance details
SuppressUnusedWarnings (<>@#@$$) Source # 
Instance details
SuppressUnusedWarnings ShowCharSym1 Source # 
Instance details
SuppressUnusedWarnings ShowStringSym1 Source # 
Instance details
SuppressUnusedWarnings ShowParenSym0 Source # 
Instance details
SuppressUnusedWarnings UnlinesSym0 Source # 
Instance details
SuppressUnusedWarnings UnwordsSym0 Source # 
Instance details
SuppressUnusedWarnings ShowCharSym0 Source # 
Instance details
SuppressUnusedWarnings ShowStringSym0 Source # 
Instance details
SuppressUnusedWarnings (<>@#@$) Source # 
Instance details
SuppressUnusedWarnings KnownSymbolSym0 Source # 
Instance details
SuppressUnusedWarnings ShowCommaSpaceSym0 Source # 
Instance details
SuppressUnusedWarnings ShowSpaceSym0 Source # 
Instance details
SuppressUnusedWarnings (ShowListWithSym2 :: (TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) -> [a6989586621679672322] -> TyFun Symbol Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowListWithSym1 :: (TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) -> TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowListSym1 :: [a6989586621679672338] -> TyFun Symbol Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym2 :: Nat -> a6989586621679672338 -> TyFun Symbol Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym1 :: Nat -> TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsSym1 :: a6989586621679672323 -> TyFun Symbol Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowListWithSym0 :: TyFun (TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowListSym0 :: TyFun [a6989586621679672338] (TyFun Symbol Symbol -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) Source # 
Instance details
SuppressUnusedWarnings (FromStringSym0 :: TyFun Symbol a6989586621679411866 -> *) Source # 
Instance details
SuppressUnusedWarnings (Show_Sym0 :: TyFun a6989586621679672338 Symbol -> *) Source # 
Instance details
SuppressUnusedWarnings (ShowsSym0 :: TyFun a6989586621679672323 (TyFun Symbol Symbol -> Type) -> *) Source # 
Instance details
data Sing (s :: Symbol) 
Instance details
data Sing (s :: Symbol) where
type DemoteRep Symbol 
Instance details
type DemoteRep Symbol = String
type Demote Symbol Source # 
Instance details
data Sing (n :: Symbol) Source # 
Instance details
data Sing (n :: Symbol) where
type FromString a Source # 
Instance details
type FromString a = a
type Show_ (arg :: Symbol) Source # 
Instance details
type Show_ (arg :: Symbol)
type (a :: Symbol) == (b :: Symbol) Source # 
Instance details
type (a :: Symbol) == (b :: Symbol) = a == b
type (x :: Symbol) /= (y :: Symbol) Source # 
Instance details
type (x :: Symbol) /= (y :: Symbol) = Not (x == y)
type Compare (a :: Symbol) (b :: Symbol) Source # 
Instance details
type Compare (a :: Symbol) (b :: Symbol) = CmpSymbol a b
type (arg1 :: Symbol) < (arg2 :: Symbol) Source # 
Instance details
type (arg1 :: Symbol) < (arg2 :: Symbol)
type (arg1 :: Symbol) <= (arg2 :: Symbol) Source # 
Instance details
type (arg1 :: Symbol) <= (arg2 :: Symbol)
type (arg1 :: Symbol) > (arg2 :: Symbol) Source # 
Instance details
type (arg1 :: Symbol) > (arg2 :: Symbol)
type (arg1 :: Symbol) >= (arg2 :: Symbol) Source # 
Instance details
type (arg1 :: Symbol) >= (arg2 :: Symbol)
type Max (arg1 :: Symbol) (arg2 :: Symbol) Source # 
Instance details
type Max (arg1 :: Symbol) (arg2 :: Symbol)
type Min (arg1 :: Symbol) (arg2 :: Symbol) Source # 
Instance details
type Min (arg1 :: Symbol) (arg2 :: Symbol)
type ShowList (arg1 :: [Symbol]) arg2 Source # 
Instance details
type ShowList (arg1 :: [Symbol]) arg2
type Apply KnownSymbolSym0 (l :: Symbol) Source # 
Instance details
type Apply ShowCommaSpaceSym0 (l :: Symbol) Source # 
Instance details
type Apply ShowSpaceSym0 (l :: Symbol) Source # 
Instance details
type ShowsPrec a1 (a2 :: Symbol) a3 Source # 
Instance details
type ShowsPrec a1 (a2 :: Symbol) a3
type Apply ((<>@#@$$) l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply ((<>@#@$$) l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = l1 <> l2
type Apply (ShowCharSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply (ShowCharSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = ShowChar l1 l2
type Apply (ShowStringSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply (ShowStringSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = ShowString l1 l2
type Apply (FromStringSym0 :: TyFun Symbol k2 -> *) (l :: Symbol) Source # 
Instance details
type Apply (FromStringSym0 :: TyFun Symbol k2 -> *) (l :: Symbol) = (FromString l :: k2)
type Apply (Show_Sym0 :: TyFun a Symbol -> *) (l :: a) Source # 
Instance details
type Apply (Show_Sym0 :: TyFun a Symbol -> *) (l :: a) = Show_ l
type Apply (ShowListSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply (ShowListSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = ShowList l1 l2
type Apply (ShowsSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply (ShowsSym1 l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = Shows l1 l2
type Apply (ShowParenSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) Source # 
Instance details
type Apply (ShowParenSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) = ShowParen l1 l2 l3
type Apply (ShowsPrecSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) Source # 
Instance details
type Apply (ShowsPrecSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) = ShowsPrec l1 l2 l3
type Apply (ShowListWithSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) Source # 
Instance details
type Apply (ShowListWithSym2 l1 l2 :: TyFun Symbol Symbol -> *) (l3 :: Symbol) = ShowListWith l1 l2 l3
type Apply ShowParenSym0 (l :: Bool) Source # 
Instance details
type Apply ShowCharSym0 (l :: Symbol) Source # 
Instance details
type Apply ShowStringSym0 (l :: Symbol) Source # 
Instance details
type Apply (<>@#@$) (l :: Symbol) Source # 
Instance details
type Apply (<>@#@$) (l :: Symbol) = (<>@#@$$) l
type Apply (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: Nat) Source # 
Instance details
type Apply (ShowsPrecSym0 :: TyFun Nat (TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: Nat) = (ShowsPrecSym1 l :: TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *)
type Apply (ShowsSym0 :: TyFun a6989586621679672323 (TyFun Symbol Symbol -> Type) -> *) (l :: a6989586621679672323) Source # 
Instance details
type Apply (ShowsSym0 :: TyFun a6989586621679672323 (TyFun Symbol Symbol -> Type) -> *) (l :: a6989586621679672323) = ShowsSym1 l
type Apply (ShowsPrecSym1 l1 :: TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *) (l2 :: a6989586621679672338) Source # 
Instance details
type Apply (ShowsPrecSym1 l1 :: TyFun a6989586621679672338 (TyFun Symbol Symbol -> Type) -> *) (l2 :: a6989586621679672338) = ShowsPrecSym2 l1 l2
type Apply UnlinesSym0 (l :: [Symbol]) Source # 
Instance details
type Apply UnlinesSym0 (l :: [Symbol]) = Unlines l
type Apply UnwordsSym0 (l :: [Symbol]) Source # 
Instance details
type Apply UnwordsSym0 (l :: [Symbol]) = Unwords l
type Apply (ShowListSym0 :: TyFun [a6989586621679672338] (TyFun Symbol Symbol -> Type) -> *) (l :: [a6989586621679672338]) Source # 
Instance details
type Apply (ShowListSym0 :: TyFun [a6989586621679672338] (TyFun Symbol Symbol -> Type) -> *) (l :: [a6989586621679672338]) = ShowListSym1 l
type Apply (ShowListWithSym1 l1 :: TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> *) (l2 :: [a6989586621679672322]) Source # 
Instance details
type Apply (ShowListWithSym1 l1 :: TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> *) (l2 :: [a6989586621679672322]) = ShowListWithSym2 l1 l2
type Apply (ShowParenSym1 l1 :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> *) (l2 :: TyFun Symbol Symbol -> Type) Source # 
Instance details
type Apply (ShowListWithSym0 :: TyFun (TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) Source # 
Instance details
type Apply (ShowListWithSym0 :: TyFun (TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679672322] (TyFun Symbol Symbol -> Type) -> Type) -> *) (l :: TyFun a6989586621679672322 (TyFun Symbol Symbol -> Type) -> Type) = ShowListWithSym1 l

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

type SNat (x :: Nat) = Sing x Source #

Kind-restricted synonym for Sing for Nats

type SSymbol (x :: Symbol) = Sing x Source #

Kind-restricted synonym for Sing for Symbols

withKnownNat :: Sing n -> (KnownNat n => r) -> r Source #

Given a singleton for Nat, call something requiring a KnownNat instance.

withKnownSymbol :: Sing n -> (KnownSymbol n => r) -> r Source #

Given a singleton for Symbol, call something requiring a KnownSymbol instance.

type family Error (str :: k0) :: k where ... Source #

The promotion of error. This version is more poly-kinded for easier use.

sError :: Sing (str :: Symbol) -> a Source #

The singleton for error

type family Undefined :: k where ... Source #

The promotion of undefined.

sUndefined :: a Source #

The singleton for undefined.

class KnownNat (n :: Nat) #

This class gives the integer associated with a type-level natural. There are instances of the class for every concrete literal: 0, 1, 2, etc.

Since: 4.7.0.0

Minimal complete definition

natSing

natVal :: KnownNat n => proxy n -> Natural #

Since: 4.10.0.0

class KnownSymbol (n :: Symbol) #

This class gives the string associated with a type-level symbol. There are instances of the class for every concrete literal: "hello", etc.

Since: 4.7.0.0

Minimal complete definition

symbolSing

symbolVal :: KnownSymbol n => proxy n -> String #

Since: 4.7.0.0

type family (a :: Nat) ^ (b :: Nat) :: Nat where ... infixr 8 #

Exponentiation of type-level naturals.

Since: 4.7.0.0

(%^) :: Sing a -> Sing b -> Sing (a ^ b) infixr 8 Source #

The singleton analogue of '(TL.^)' for Nats.

type (<>) a b = AppendSymbol a b infixr 6 Source #

The promoted analogue of '(<>)' for Symbols. This uses the special AppendSymbol type family from GHC.TypeLits.

(%<>) :: Sing a -> Sing b -> Sing (a <> b) infixr 6 Source #

The singleton analogue of '(<>)' for Symbols.

type family Log2 (a :: Nat) :: Nat where ... #

Log base 2 (round down) of natural numbers. Log 0 is undefined (i.e., it cannot be reduced).

Since: 4.11.0.0

sLog2 :: Sing x -> Sing (Log2 x) Source #

type family Div (a :: Nat) (b :: Nat) :: Nat where ... infixl 7 #

Division (round down) of natural numbers. Div x 0 is undefined (i.e., it cannot be reduced).

Since: 4.11.0.0

sDiv :: Sing x -> Sing y -> Sing (Div x y) infixl 7 Source #

type family Mod (a :: Nat) (b :: Nat) :: Nat where ... infixl 7 #

Modulus of natural numbers. Mod x 0 is undefined (i.e., it cannot be reduced).

Since: 4.11.0.0

sMod :: Sing x -> Sing y -> Sing (Mod x y) infixl 7 Source #

type family DivMod (a :: Nat) (a :: Nat) :: (Nat, Nat) where ... Source #

Equations

DivMod x y = Apply (Apply Tuple2Sym0 (Apply (Apply DivSym0 x) y)) (Apply (Apply ModSym0 x) y) 

sDivMod :: Sing x -> Sing y -> Sing (DivMod x y) Source #

type family Quot (a :: Nat) (a :: Nat) :: Nat where ... infixl 7 Source #

Equations

Quot a_6989586621679397750 a_6989586621679397752 = Apply (Apply DivSym0 a_6989586621679397750) a_6989586621679397752 

sQuot :: Sing x -> Sing y -> Sing (Quot x y) infixl 7 Source #

type family Rem (a :: Nat) (a :: Nat) :: Nat where ... infixl 7 Source #

Equations

Rem a_6989586621679397735 a_6989586621679397737 = Apply (Apply ModSym0 a_6989586621679397735) a_6989586621679397737 

sRem :: Sing x -> Sing y -> Sing (Rem x y) infixl 7 Source #

type family QuotRem (a :: Nat) (a :: Nat) :: (Nat, Nat) where ... Source #

Equations

QuotRem a_6989586621679397776 a_6989586621679397778 = Apply (Apply DivModSym0 a_6989586621679397776) a_6989586621679397778 

sQuotRem :: Sing x -> Sing y -> Sing (QuotRem x y) Source #

Defunctionalization symbols

data ErrorSym0 (l :: TyFun k06989586621679378680 k6989586621679378681) Source #

Instances
SuppressUnusedWarnings (ErrorSym0 :: TyFun k06989586621679378680 k6989586621679378681 -> *) Source # 
Instance details
type Apply (ErrorSym0 :: TyFun k0 k2 -> *) (l :: k0) Source # 
Instance details
type Apply (ErrorSym0 :: TyFun k0 k2 -> *) (l :: k0) = (Error l :: k2)

type ErrorSym1 (t :: k06989586621679378680) = Error t Source #

data KnownNatSym0 (l :: TyFun Nat Constraint) Source #

Instances
SuppressUnusedWarnings KnownNatSym0 Source # 
Instance details
type Apply KnownNatSym0 (l :: Nat) Source # 
Instance details
type Apply KnownNatSym0 (l :: Nat) = KnownNat l

type KnownNatSym1 (t :: Nat) = KnownNat t Source #

data (^@#@$) (l :: TyFun Nat (TyFun Nat Nat -> Type)) Source #

Instances
SuppressUnusedWarnings (^@#@$) Source # 
Instance details
type Apply (^@#@$) (l :: Nat) Source # 
Instance details
type Apply (^@#@$) (l :: Nat) = (^@#@$$) l

data (l :: Nat) ^@#@$$ (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings (^@#@$$) Source # 
Instance details
type Apply ((^@#@$$) l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply ((^@#@$$) l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = l1 ^ l2

type (^@#@$$$) (t :: Nat) (t :: Nat) = (^) t t Source #

data (<>@#@$) l Source #

Instances
SuppressUnusedWarnings (<>@#@$) Source # 
Instance details
type Apply (<>@#@$) (l :: Symbol) Source # 
Instance details
type Apply (<>@#@$) (l :: Symbol) = (<>@#@$$) l

data (l :: Symbol) <>@#@$$ l Source #

Instances
SuppressUnusedWarnings (<>@#@$$) Source # 
Instance details
type Apply ((<>@#@$$) l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) Source # 
Instance details
type Apply ((<>@#@$$) l1 :: TyFun Symbol Symbol -> *) (l2 :: Symbol) = l1 <> l2

type (<>@#@$$$) (t :: Symbol) (t :: Symbol) = (<>) t t Source #

data Log2Sym0 (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings Log2Sym0 Source # 
Instance details
type Apply Log2Sym0 (l :: Nat) Source # 
Instance details
type Apply Log2Sym0 (l :: Nat) = Log2 l

type Log2Sym1 (t :: Nat) = Log2 t Source #

data DivSym0 (l :: TyFun Nat (TyFun Nat Nat -> Type)) Source #

Instances
SuppressUnusedWarnings DivSym0 Source # 
Instance details
type Apply DivSym0 (l :: Nat) Source # 
Instance details
type Apply DivSym0 (l :: Nat) = DivSym1 l

data DivSym1 (l :: Nat) (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings DivSym1 Source # 
Instance details
type Apply (DivSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (DivSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Div l1 l2

type DivSym2 (t :: Nat) (t :: Nat) = Div t t Source #

data ModSym0 (l :: TyFun Nat (TyFun Nat Nat -> Type)) Source #

Instances
SuppressUnusedWarnings ModSym0 Source # 
Instance details
type Apply ModSym0 (l :: Nat) Source # 
Instance details
type Apply ModSym0 (l :: Nat) = ModSym1 l

data ModSym1 (l :: Nat) (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings ModSym1 Source # 
Instance details
type Apply (ModSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (ModSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Mod l1 l2

type ModSym2 (t :: Nat) (t :: Nat) = Mod t t Source #

data DivModSym0 (l :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type)) Source #

Instances
SuppressUnusedWarnings DivModSym0 Source # 
Instance details
type Apply DivModSym0 (l :: Nat) Source # 
Instance details
type Apply DivModSym0 (l :: Nat) = DivModSym1 l

data DivModSym1 (l :: Nat) (l :: TyFun Nat (Nat, Nat)) Source #

Instances
SuppressUnusedWarnings DivModSym1 Source # 
Instance details
type Apply (DivModSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) Source # 
Instance details
type Apply (DivModSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) = DivMod l1 l2

type DivModSym2 (t :: Nat) (t :: Nat) = DivMod t t Source #

data QuotSym0 (l :: TyFun Nat (TyFun Nat Nat -> Type)) Source #

Instances
SuppressUnusedWarnings QuotSym0 Source # 
Instance details
type Apply QuotSym0 (l :: Nat) Source # 
Instance details
type Apply QuotSym0 (l :: Nat) = QuotSym1 l

data QuotSym1 (l :: Nat) (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings QuotSym1 Source # 
Instance details
type Apply (QuotSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (QuotSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Quot l1 l2

type QuotSym2 (t :: Nat) (t :: Nat) = Quot t t Source #

data RemSym0 (l :: TyFun Nat (TyFun Nat Nat -> Type)) Source #

Instances
SuppressUnusedWarnings RemSym0 Source # 
Instance details
type Apply RemSym0 (l :: Nat) Source # 
Instance details
type Apply RemSym0 (l :: Nat) = RemSym1 l

data RemSym1 (l :: Nat) (l :: TyFun Nat Nat) Source #

Instances
SuppressUnusedWarnings RemSym1 Source # 
Instance details
type Apply (RemSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) Source # 
Instance details
type Apply (RemSym1 l1 :: TyFun Nat Nat -> *) (l2 :: Nat) = Rem l1 l2

type RemSym2 (t :: Nat) (t :: Nat) = Rem t t Source #

data QuotRemSym0 (l :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type)) Source #

Instances
SuppressUnusedWarnings QuotRemSym0 Source # 
Instance details
type Apply QuotRemSym0 (l :: Nat) Source # 
Instance details

data QuotRemSym1 (l :: Nat) (l :: TyFun Nat (Nat, Nat)) Source #

Instances
SuppressUnusedWarnings QuotRemSym1 Source # 
Instance details
type Apply (QuotRemSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) Source # 
Instance details
type Apply (QuotRemSym1 l1 :: TyFun Nat (Nat, Nat) -> *) (l2 :: Nat) = QuotRem l1 l2

type QuotRemSym2 (t :: Nat) (t :: Nat) = QuotRem t t Source #

Orphan instances

Eq Nat Source # 
Instance details

Methods

(==) :: Nat -> Nat -> Bool #

(/=) :: Nat -> Nat -> Bool #

Eq Symbol Source #

This bogus instance is helpful for people who want to define functions over Symbols that will only be used at the type level or as singletons.

Instance details

Methods

(==) :: Symbol -> Symbol -> Bool #

(/=) :: Symbol -> Symbol -> Bool #

Num Nat Source #

This bogus Num instance is helpful for people who want to define functions over Nats that will only be used at the type level or as singletons. A correct SNum instance for Nat singletons exists.

Instance details

Methods

(+) :: Nat -> Nat -> Nat #

(-) :: Nat -> Nat -> Nat #

(*) :: Nat -> Nat -> Nat #

negate :: Nat -> Nat #

abs :: Nat -> Nat #

signum :: Nat -> Nat #

fromInteger :: Integer -> Nat #

Ord Nat Source # 
Instance details

Methods

compare :: Nat -> Nat -> Ordering #

(<) :: Nat -> Nat -> Bool #

(<=) :: Nat -> Nat -> Bool #

(>) :: Nat -> Nat -> Bool #

(>=) :: Nat -> Nat -> Bool #

max :: Nat -> Nat -> Nat #

min :: Nat -> Nat -> Nat #

Ord Symbol Source # 
Instance details
IsString Symbol Source # 
Instance details

Methods

fromString :: String -> Symbol #