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

Safe HaskellNone
LanguageHaskell2010

Data.HSet.Union

Documentation

type family MayFstIndexSnd (ts1 :: [k]) (ts2 :: [k]) :: Maybe N where ... #

Equations

MayFstIndexSnd (e ': els) x = IndexOfMay e x 
MayFstIndexSnd '[] x = Nothing 

class (fidx ~ MayFstIndexSnd els1 els2, sidx ~ MayFstIndexSnd els2 els1) => HUnion els1 els2 elsr fidx sidx | els1 els2 fidx sidx -> elsr where #

Methods

hunion :: HSet els1 -> HSet els2 -> HSet elsr #

Instances
HUnion ([] :: [Type]) ([] :: [Type]) ([] :: [Type]) (Nothing :: Maybe N) (Nothing :: Maybe N) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet [] -> HSet [] -> HSet [] #

HUnion ([] :: [Type]) (e ': els) (e ': els) (Nothing :: Maybe N) (Nothing :: Maybe N) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet [] -> HSet (e ': els) -> HSet (e ': els) #

(HRemove els2 elsx fi, HUnionable els1 elsx elsr, NotElem e1 elsr, Just fi ~ MayFstIndexSnd (e1 ': els1) els2, (Nothing :: Maybe N) ~ MayFstIndexSnd els2 (e1 ': els1)) => HUnion (e1 ': els1) els2 (e1 ': elsr) (Just fi) (Nothing :: Maybe N) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e1 ': els1) -> HSet els2 -> HSet (e1 ': elsr) #

HUnion (e ': els) ([] :: [Type]) (e ': els) (Nothing :: Maybe N) (Nothing :: Maybe N) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e ': els) -> HSet [] -> HSet (e ': els) #

(HUnionable els1 els2 elsr, NotElem e1 (e2 ': elsr), NotElem e2 elsr, (Nothing :: Maybe N) ~ MayFstIndexSnd (e1 ': els1) (e2 ': els2), (Nothing :: Maybe N) ~ MayFstIndexSnd (e2 ': els2) (e1 ': els1)) => HUnion (e1 ': els1) (e2 ': els2) (e1 ': (e2 ': elsr)) (Nothing :: Maybe N) (Nothing :: Maybe N) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e1 ': els1) -> HSet (e2 ': els2) -> HSet (e1 ': (e2 ': elsr)) #

(HUnionable els1 els2 elsr, NotElem e1 elsr, (Nothing :: Maybe N) ~ MayFstIndexSnd (e1 ': els1) (e2 ': els2), Just si ~ MayFstIndexSnd (e2 ': els2) (e1 ': els1)) => HUnion (e1 ': els1) (e2 ': els2) (e1 ': elsr) (Nothing :: Maybe N) (Just si) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e1 ': els1) -> HSet (e2 ': els2) -> HSet (e1 ': elsr) #

(HRemove els2 elsx fi, HUnionable els1 elsx elsr, NotElem e1 elsr, Just (S fi) ~ MayFstIndexSnd (e1 ': els1) (e2 ': els2), Just si ~ MayFstIndexSnd (e2 ': els2) (e1 ': els1)) => HUnion (e1 ': els1) (e2 ': els2) (e1 ': elsr) (Just (S fi)) (Just si) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e1 ': els1) -> HSet (e2 ': els2) -> HSet (e1 ': elsr) #

(HUnionable els1 els2 elsr, NotElem e elsr) => HUnion (e ': els1) (e ': els2) (e ': elsr) (Just Z) (Just Z) # 
Instance details

Defined in Data.HSet.Union

Methods

hunion :: HSet (e ': els1) -> HSet (e ': els2) -> HSet (e ': elsr) #

type HUnionable els1 els2 elsr = HUnion els1 els2 elsr (MayFstIndexSnd els1 els2) (MayFstIndexSnd els2 els1) #