hset-2.0.0: Primitive list with elements of unique types.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.HSet.Remove

Synopsis

Documentation

class HRemove els1 els2 i | els1 i -> els2 where Source

Remove i's element from hset. Second argument is a resulting hset type

Methods

hremove :: Proxy i -> HSet els1 -> HSet els2 Source

Instances

HRemove Nat ((:) * e els) els Z 
((~) Bool False (Elem * e els2), HRemove Nat els1 els2 i) => HRemove Nat ((:) * e els1) ((:) * e els2) (S i) 

type HDeletable e els1 els2 = HRemove els1 els2 (Index e els1) Source

Delete element from HSet of specified type

>>> let x = (HSCons "sdf" $ HSCons 123 HSNil) :: HSet '[String, Int]
>>> hdelete (Proxy :: Proxy Int) x
HSCons ("sdf") (HSNil)
>>> hdelete (Proxy :: Proxy String) x
HSCons (123) (HSNil)

Constraints that e can be removed from els1 and els2 will be produced in result

hdelete :: forall proxy els1 els2 e. HDeletable e els1 els2 => proxy e -> HSet els1 -> HSet els2 Source

Delete specific element from els1 and returns HSet with els2