Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.HSet.Modify
- class (i ~ IndexOf e1 els1, i ~ IndexOf e2 els2) => HModify els1 els2 e1 e2 i | els1 els2 e2 i -> e1, els1 els2 e1 i -> e2, els1 e1 e2 i -> els2, els2 e1 e2 i -> els1 where
- type HModifiable els1 els2 e1 e2 = HModify els1 els2 e1 e2 (IndexOf e1 els1)
- type HMonoModifiable els e = HModifiable els els e e
- hMonoModify :: HMonoModifiable els e => (e -> e) -> HSet els -> HSet els
- hModifyTagged :: forall proxy l els1 els2 e1 e2. HModifiable els1 els2 (Tagged l e1) (Tagged l e2) => proxy l -> (e1 -> e2) -> HSet els1 -> HSet els2
- hMonoModifyTagged :: forall proxy l els e. HMonoModifiable els (Tagged l e) => proxy l -> (e -> e) -> HSet els -> HSet els
- hUntag :: forall proxy els1 els2 l e. HModifiable els1 els2 (Tagged l e) e => proxy l -> proxy e -> HSet els1 -> HSet els2
- hTag :: forall proxy els1 els2 l e. HModifiable els1 els2 e (Tagged l e) => proxy l -> proxy e -> HSet els1 -> HSet els2
Documentation
class (i ~ IndexOf e1 els1, i ~ IndexOf e2 els2) => HModify els1 els2 e1 e2 i | els1 els2 e2 i -> e1, els1 els2 e1 i -> e2, els1 e1 e2 i -> els2, els2 e1 e2 i -> els1 where Source
type HModifiable els1 els2 e1 e2 = HModify els1 els2 e1 e2 (IndexOf e1 els1) Source
Check that we can turn one hset to another
type HMonoModifiable els e = HModifiable els els e e Source
Helper type infering that hset els
contains element of type e
and can be modified
hMonoModify :: HMonoModifiable els e => (e -> e) -> HSet els -> HSet els Source
Like hmodify
but do not change the hset's type
hModifyTagged :: forall proxy l els1 els2 e1 e2. HModifiable els1 els2 (Tagged l e1) (Tagged l e2) => proxy l -> (e1 -> e2) -> HSet els1 -> HSet els2 Source
hMonoModifyTagged :: forall proxy l els e. HMonoModifiable els (Tagged l e) => proxy l -> (e -> e) -> HSet els -> HSet els Source