Safe Haskell | None |
---|---|

Language | Haskell98 |

- data NubList a
- toNubList :: Ord a => [a] -> NubList a
- fromNubList :: NubList a -> [a]
- overNubList :: Ord a => ([a] -> [a]) -> NubList a -> NubList a
- data NubListR a
- toNubListR :: Ord a => [a] -> NubListR a
- fromNubListR :: NubListR a -> [a]
- overNubListR :: Ord a => ([a] -> [a]) -> NubListR a -> NubListR a

# Documentation

NubList : A de-duplicated list that maintains the original order.

Eq a => Eq (NubList a) | |

(Ord a, Read a) => Read (NubList a) | |

Show a => Show (NubList a) | |

Ord a => Monoid (NubList a) | Monoid operations on NubLists. For a valid Monoid instance we need to satistfy the required monoid laws; identity, associativity and closure. Identity : by inspection:
mempty Associativity : by inspection:
(NubList xs Closure : appending two lists of type a and removing duplicates obviously does not change the type. |

(Ord a, Binary a) => Binary (NubList a) | Binary instance for 'NubList a' is the same as for '[a]'. For |

fromNubList :: NubList a -> [a] Source

overNubList :: Ord a => ([a] -> [a]) -> NubList a -> NubList a Source

Lift a function over lists to a function over NubLists.

NubListR : A right-biased version of `NubList`

. That is ```
toNubListR
["-XNoFoo", "-XFoo", "-XNoFoo"]
```

will result in `["-XFoo", "-XNoFoo"]`

,
unlike the normal `NubList`

, which is left-biased. Built on top of
`ordNubRight`

and `listUnionRight`

.

toNubListR :: Ord a => [a] -> NubListR a Source

Smart constructor for the NubListR type.

fromNubListR :: NubListR a -> [a] Source

overNubListR :: Ord a => ([a] -> [a]) -> NubListR a -> NubListR a Source

Lift a function over lists to a function over NubListRs.