constraints-0.14.2: Constraint manipulation
Safe HaskellNone
LanguageHaskell2010

Data.Constraint.Symbol

Description

Utilities for working with KnownSymbol constraints.

Synopsis

Documentation

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

Concatenation of type-level symbols.

Since: base-4.10.0.0

type (++) (m :: Symbol) (n :: Symbol) = AppendSymbol m n infixr 5 Source #

An infix synonym for AppendSymbol.

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

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

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

appendUnit1 :: forall (a :: Symbol). Dict (AppendSymbol "" a ~ a) Source #

appendUnit2 :: forall (a :: Symbol). Dict (AppendSymbol a "" ~ a) Source #

takeSymbol :: forall (n :: Nat) (a :: Symbol). (KnownNat n, KnownSymbol a) :- KnownSymbol (Take n a) Source #

dropSymbol :: forall (n :: Nat) (a :: Symbol). (KnownNat n, KnownSymbol a) :- KnownSymbol (Drop n a) Source #

takeAppendDrop :: forall (n :: Nat) (a :: Symbol). Dict (AppendSymbol (Take n a) (Drop n a) ~ a) Source #

takeLength :: forall (n :: Nat) (a :: Symbol). (Length a <= n) :- (Take n a ~ a) Source #

take0 :: forall (a :: Symbol). Dict (Take 0 a ~ "") Source #

takeEmpty :: forall (n :: Nat). Dict (Take n "" ~ "") Source #

dropLength :: forall (n :: Nat) (a :: Symbol). (Length a <= n) :- (Drop n a ~ "") Source #

drop0 :: forall (a :: Symbol). Dict (Drop 0 a ~ a) Source #

dropEmpty :: forall (n :: Nat). Dict (Drop n "" ~ "") Source #

lengthTake :: forall (n :: Nat) (a :: Symbol). Dict (Length (Take n a) <= n) Source #

lengthDrop :: forall (n :: Nat) (a :: Symbol). Dict (Length a <= (Length (Drop n a) + n)) Source #

dropDrop :: forall (n :: Nat) (m :: Nat) (a :: Symbol). Dict (Drop n (Drop m a) ~ Drop (n + m) a) Source #

takeTake :: forall (n :: Nat) (m :: Nat) (a :: Symbol). Dict (Take n (Take m a) ~ Take (Min n m) a) Source #