Data.Diverse.TypeLevel

type UniqueMember x xs

type family UniqueMembers (xs :: [k]) (ys :: [k]) :: Constraint where ...

type UniqueLabelMember l xs

type MaybeUniqueMember x xs

type MemberAt n x xs

type MaybeMemberAt n x xs

type family SnocUnique (xs :: [k]) (x :: k) :: [k] where ...

type family AppendUnique (xs :: [k]) (ys :: [k]) :: [k] where ...

type family UniqueIfExists ys x xs :: Constraint where ...

type IsDistinct xs

type family Nub (xs :: [k]) :: [k] where ...

type Unique x xs

type UniqueLabel l xs

type family UniqueLabels (ls :: [k1]) (xs :: [k]) :: Constraint where ...

type IndexOf x xs

type PositionOf x xs

type KindAtIndex n xs

type KindAtLabel l xs

type family KindAtPositionIs (n :: Nat) (x :: k) (xs :: [k]) :: Constraint where ...

type family KindsAtIndices (ns :: [Nat]) (xs :: [k]) :: [k] where ...

type family KindsAtLabels (ls :: [k1]) (xs :: [k]) :: [k] where ...

type family Remove (x :: k) (xs :: [k]) :: [k] where ...

type Replace x y xs

type Replaces xs ys zs

type RemoveIndex n xs

type ReplaceIndex n y xs

type ReplacesIndex ns ys xs

type family Before (x :: k) (xs :: [k]) :: [k] where ...

type family To (x :: k) (xs :: [k]) :: [k] where ...

type family After (x :: k) (xs :: [k]) :: [k] where ...

type family From (x :: k) (xs :: [k]) :: [k] where ...

type family BeforeIndex (n :: Nat) (xs :: [k]) :: [k] where ...

type family ToIndex (n :: Nat) (xs :: [k]) :: [k] where ...

type family AfterIndex (n :: Nat) (xs :: [k]) :: [k] where ...

type family FromIndex (n :: Nat) (xs :: [k]) :: [k] where ...

type family Tail (xs :: [k]) :: [k] where ...

type family Head (xs :: [k]) :: k where ...

type family Last (xs :: [k]) :: k where ...

type family Length (xs :: [k]) :: Nat where ...

type SameLength xs ys

type family Complement (xs :: [k]) (ys :: [k]) :: [k] where ...

type family Append (xs :: [k]) (ys :: [k]) :: [k] where ...

type family Init (xs :: [k]) :: [k] where ...

type Zip xs ys

type family CaseResult (c :: [k1] -> k2) (x :: k1) :: k2

type family CaseResults (c :: [k1] -> k2) (xs :: [k1]) :: [k2] where ...

type family AllConstrained (c :: k -> Constraint) (xs :: [k]) :: Constraint where ...