planet-mitchell-0.0.0: Planet Mitchell

Safe HaskellNone
LanguageHaskell2010

Symbol

Contents

Synopsis

Symbol

data Symbol #

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

Instances
SingKind Symbol

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Associated Types

type DemoteRep Symbol :: *

Methods

fromSing :: Sing a -> DemoteRep Symbol

KnownSymbol a => SingI (a :: Symbol)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

sing :: Sing a

KnownSymbol n => Reifies (n :: Symbol) String 
Instance details

Defined in Data.Reflection

Methods

reflect :: proxy n -> String #

IsRecord (M1 S (MetaSel (Nothing :: Maybe Symbol) u ss ds) f) False 
Instance details

Defined in Data.Aeson.Types.Generic

data Sing (s :: Symbol) 
Instance details

Defined in GHC.Generics

data Sing (s :: Symbol) where
type DemoteRep Symbol 
Instance details

Defined in GHC.Generics

type DemoteRep Symbol = String

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: base-4.7.0.0

Minimal complete definition

symbolSing

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

Since: base-4.7.0.0

symbolVal' :: KnownSymbol n => Proxy# n -> String #

Since: base-4.8.0.0

data SomeSymbol where #

This type represents unknown type-level symbols.

Constructors

SomeSymbol :: SomeSymbol

Since: base-4.7.0.0

Instances
Eq SomeSymbol

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeLits

Ord SomeSymbol

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeLits

Read SomeSymbol

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeLits

Show SomeSymbol

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeLits

someSymbolVal :: String -> SomeSymbol #

Convert a string into an unknown type-level symbol.

Since: base-4.7.0.0

sameSymbol :: (KnownSymbol a, KnownSymbol b) => Proxy a -> Proxy b -> Maybe (a :~: b) #

We either get evidence that this function was instantiated with the same type-level symbols, or Nothing.

Since: base-4.7.0.0

type family AppendSymbol (a :: Symbol) (b :: Symbol) :: Symbol where ... #

Concatenation of type-level symbols.

Since: base-4.10.0.0

type family CmpSymbol (a :: Symbol) (b :: Symbol) :: Ordering where ... #

Comparison of type-level symbols, as a function.

Since: base-4.7.0.0

type family (++) :: Symbol -> Symbol -> Symbol where ... #

type family Take :: Nat -> Symbol -> Symbol where ... #

type family Drop :: Nat -> Symbol -> Symbol where ... #

type family Length :: Symbol -> Nat where ... #

appendUnit1 :: Dict (("" ++ a) ~ a) #

appendUnit2 :: Dict ((a ++ "") ~ a) #

appendAssociates :: Dict (((a ++ b) ++ c) ~ (a ++ (b ++ c))) #

takeAppendDrop :: Dict ((Take n a ++ Drop n a) ~ a) #

takeLength :: (Length a <= n) :- (Take n a ~ a) #

take0 :: Dict (Take 0 a ~ "") #

takeEmpty :: Dict (Take n "" ~ "") #

dropLength :: (Length a <= n) :- (Drop n a ~ "") #

drop0 :: Dict (Drop 0 a ~ a) #

dropEmpty :: Dict (Drop n "" ~ "") #

lengthTake :: Dict (Length (Take n a) <= n) #

lengthDrop :: Dict (Length a <= (Length (Drop n a) + n)) #

dropDrop :: Dict (Drop n (Drop m a) ~ Drop (n + m) a) #

takeTake :: Dict (Take n (Take m a) ~ Take (Min n m) a) #