Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
type family MayFstIndexSnd ts1 ts2 :: Maybe N Source
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 Source
HUnion ([] *) ([] *) ([] *) (Nothing N) (Nothing N) Source | |
HUnion ([] *) ((:) * e els) ((:) * e els) (Nothing N) (Nothing N) Source | |
(HRemove N els2 elsx fi, HUnionable els1 elsx elsr, NotElem * e1 elsr, (~) (Maybe N) (Just N fi) (MayFstIndexSnd * ((:) * e1 els1) els2), (~) (Maybe N) (Nothing N) (MayFstIndexSnd * els2 ((:) * e1 els1))) => HUnion ((:) * e1 els1) els2 ((:) * e1 elsr) (Just N fi) (Nothing N) Source | |
HUnion ((:) * e els) ([] *) ((:) * e els) (Nothing N) (Nothing N) Source | |
(HUnionable els1 els2 elsr, NotElem * e1 ((:) * e2 elsr), NotElem * e2 elsr, (~) (Maybe N) (Nothing N) (MayFstIndexSnd * ((:) * e1 els1) ((:) * e2 els2)), (~) (Maybe N) (Nothing N) (MayFstIndexSnd * ((:) * e2 els2) ((:) * e1 els1))) => HUnion ((:) * e1 els1) ((:) * e2 els2) ((:) * e1 ((:) * e2 elsr)) (Nothing N) (Nothing N) Source | |
(HUnionable els1 els2 elsr, NotElem * e1 elsr, (~) (Maybe N) (Nothing N) (MayFstIndexSnd * ((:) * e1 els1) ((:) * e2 els2)), (~) (Maybe N) (Just N si) (MayFstIndexSnd * ((:) * e2 els2) ((:) * e1 els1))) => HUnion ((:) * e1 els1) ((:) * e2 els2) ((:) * e1 elsr) (Nothing N) (Just N si) Source | |
(HRemove N els2 elsx fi, HUnionable els1 elsx elsr, NotElem * e1 elsr, (~) (Maybe N) (Just N (S fi)) (MayFstIndexSnd * ((:) * e1 els1) ((:) * e2 els2)), (~) (Maybe N) (Just N si) (MayFstIndexSnd * ((:) * e2 els2) ((:) * e1 els1))) => HUnion ((:) * e1 els1) ((:) * e2 els2) ((:) * e1 elsr) (Just N (S fi)) (Just N si) Source | |
(HUnionable els1 els2 elsr, NotElem * e elsr) => HUnion ((:) * e els1) ((:) * e els2) ((:) * e elsr) (Just N Z) (Just N Z) Source |
type HUnionable els1 els2 elsr = HUnion els1 els2 elsr (MayFstIndexSnd els1 els2) (MayFstIndexSnd els2 els1) Source