| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Symbol
Contents
Synopsis
- data Symbol
 - class KnownSymbol (n :: Symbol)
 - symbolVal :: KnownSymbol n => proxy n -> String
 - symbolVal' :: KnownSymbol n => Proxy# n -> String
 - data SomeSymbol where
 - someSymbolVal :: String -> SomeSymbol
 - sameSymbol :: (KnownSymbol a, KnownSymbol b) => Proxy a -> Proxy b -> Maybe (a :~: b)
 - type family AppendSymbol (a :: Symbol) (b :: Symbol) :: Symbol where ...
 - type family CmpSymbol (a :: Symbol) (b :: Symbol) :: Ordering where ...
 - 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 ...
 - appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (a ++ b)
 - appendUnit1 :: Dict (("" ++ a) ~ a)
 - appendUnit2 :: Dict ((a ++ "") ~ a)
 - appendAssociates :: Dict (((a ++ b) ++ c) ~ (a ++ (b ++ c)))
 - takeSymbol :: (KnownNat n, KnownSymbol a) :- KnownSymbol (Take n a)
 - dropSymbol :: (KnownNat n, KnownSymbol a) :- KnownSymbol (Drop n a)
 - takeAppendDrop :: Dict ((Take n a ++ Drop n a) ~ a)
 - lengthSymbol :: KnownSymbol a :- KnownNat (Length 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)
 
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  | 
Defined in GHC.Generics  | |
| KnownSymbol a => SingI (a :: Symbol) | Since: base-4.9.0.0  | 
Defined in GHC.Generics Methods sing :: Sing a  | |
| KnownSymbol n => Reifies (n :: Symbol) String | |
Defined in Data.Reflection  | |
| AsConstructor ctor s s a a => AsAny (ctor :: Symbol) a s | |
Defined in Data.Generics.Sum.Any  | |
| HasField field s t a b => HasAny (field :: Symbol) s t a b | |
Defined in Data.Generics.Product.Any  | |
| GLens' (HasTotalFieldPSym field) sub t => GUpcast sub (S1 (MetaSel (Just field) p f b) (Rec0 t)) | |
| (leaf ~ S1 (MetaSel (Just field) p f b) t, GSmashLeaf leaf sup (HasTotalFieldP field sup)) => GSmash (S1 (MetaSel (Just field) p f b) t :: k -> *) (sup :: k -> *) | |
| GLens' (HasTotalFieldPSym field) sup t => GSmashLeaf (S1 (MetaSel (Just field) p f b) (Rec0 t) :: Type -> *) (sup :: Type -> Type) True | |
Defined in Data.Generics.Product.Internal.Subtype  | |
| GSmashLeaf (S1 (MetaSel (Just field) p f b) (Rec0 t) :: k -> *) (sup :: k -> *) False | |
Defined in Data.Generics.Product.Internal.Subtype  | |
| GIsList Symbol (S1 (MetaSel (Just field) u s i) (Rec0 a)) (S1 (MetaSel (Just field) u s i) (Rec0 b)) ((,) field a ': ([] :: [(Symbol, *)]) :: [(Symbol, *)]) ((,) field b ': ([] :: [(Symbol, *)]) :: [(Symbol, *)]) | |
Defined in Data.Generics.Product.Internal.List Methods glist :: Profunctor p => p (List ((field, a) ': [])) (List ((field, b) ': [])) -> p (S1 (MetaSel (Just field) u s i) (Rec0 a) x) (S1 (MetaSel (Just field) u s i) (Rec0 b) x) glistR :: Profunctor p => p (S1 (MetaSel (Just field) u s i) (Rec0 b) x) (S1 (MetaSel (Just field) u s i) (Rec0 a) x) -> p (List ((field, b) ': [])) (List ((field, a) ': []))  | |
| IsRecord (M1 S (MetaSel (Nothing :: Maybe Symbol) u ss ds) f) False | |
Defined in Data.Aeson.Types.Generic  | |
| data Sing (s :: Symbol) | |
Defined in GHC.Generics  | |
| type DemoteRep Symbol | |
Defined in GHC.Generics  | |
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  | 
Defined in GHC.TypeLits  | |
| Ord SomeSymbol | Since: base-4.7.0.0  | 
Defined in GHC.TypeLits Methods compare :: SomeSymbol -> SomeSymbol -> Ordering # (<) :: SomeSymbol -> SomeSymbol -> Bool # (<=) :: SomeSymbol -> SomeSymbol -> Bool # (>) :: SomeSymbol -> SomeSymbol -> Bool # (>=) :: SomeSymbol -> SomeSymbol -> Bool # max :: SomeSymbol -> SomeSymbol -> SomeSymbol # min :: SomeSymbol -> SomeSymbol -> SomeSymbol #  | |
| Read SomeSymbol | Since: base-4.7.0.0  | 
Defined in GHC.TypeLits Methods readsPrec :: Int -> ReadS SomeSymbol # readList :: ReadS [SomeSymbol] # readPrec :: ReadPrec SomeSymbol # readListPrec :: ReadPrec [SomeSymbol] #  | |
| Show SomeSymbol | Since: base-4.7.0.0  | 
Defined in GHC.TypeLits Methods showsPrec :: Int -> SomeSymbol -> ShowS # show :: SomeSymbol -> String # showList :: [SomeSymbol] -> ShowS #  | |
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
appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (a ++ b) #
appendUnit1 :: Dict (("" ++ a) ~ a) #
appendUnit2 :: Dict ((a ++ "") ~ a) #
takeSymbol :: (KnownNat n, KnownSymbol a) :- KnownSymbol (Take n a) #
dropSymbol :: (KnownNat n, KnownSymbol a) :- KnownSymbol (Drop n a) #
lengthSymbol :: KnownSymbol a :- KnownNat (Length a) #