constraints-0.12: Constraint manipulation

Safe HaskellNone
LanguageHaskell2010

Data.Constraint.Symbol

Description

Utilities for working with KnownSymbol constraints.

This module is only available on GHC 8.0 or later.

Documentation

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

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. Dict (("" ++ a) ~ a) Source #

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

appendAssociates :: forall a b c. Dict (((a ++ b) ++ c) ~ (a ++ (b ++ c))) Source #

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

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

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

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

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

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

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

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

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

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

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