| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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 #
Minimal complete definition
Instances
| HUnion ([] :: [*]) ([] :: [*]) ([] :: [*]) (Nothing :: Maybe N) (Nothing :: Maybe N) # | |
| HUnion ([] :: [*]) (e ': els) (e ': els) (Nothing :: Maybe N) (Nothing :: Maybe N) # | |
| (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) # | |
| HUnion (e ': els) ([] :: [*]) (e ': els) (Nothing :: Maybe N) (Nothing :: Maybe N) # | |
| (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) # | |
| (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) # | |
| (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) # | |
| (HUnionable els1 els2 elsr, NotElem e elsr) => HUnion (e ': els1) (e ': els2) (e ': elsr) (Just Z) (Just Z) # | |
type HUnionable els1 els2 elsr = HUnion els1 els2 elsr (MayFstIndexSnd els1 els2) (MayFstIndexSnd els2 els1) #