Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
- newtype Group a = Group {}
- class Grouping a where
- class Grouping1 f where
- nub :: Grouping a => [a] -> [a]
- nubWith :: Grouping b => (a -> b) -> [a] -> [a]
- group :: Grouping a => [a] -> [[a]]
- groupWith :: Grouping b => (a -> b) -> [a] -> [[a]]
- groupingEq :: Grouping a => a -> a -> Bool
- runGroup :: Group a -> [(a, b)] -> [[b]]
- groupingNat :: Int -> Group Int
Documentation
Productive Stable Unordered Discriminator
Eq
equipped with a compatible stable unordered discriminator.
Nothing
Grouping Bool | |
Grouping Int | |
Grouping Int8 | |
Grouping Int16 | |
Grouping Int32 | |
Grouping Int64 | |
Grouping Word | |
Grouping Word8 | |
Grouping Word16 | |
Grouping Word32 | |
Grouping Word64 | |
Grouping Void | |
Grouping a => Grouping [a] | |
(Grouping a, Integral a) => Grouping (Ratio a) | |
Grouping a => Grouping (Complex a) | |
Grouping a => Grouping (Maybe a) | |
(Grouping a, Grouping b) => Grouping (Either a b) | |
(Grouping a, Grouping b) => Grouping (a, b) | |
(Grouping a, Grouping b, Grouping c) => Grouping (a, b, c) | |
(Grouping1 f, Grouping1 g, Grouping a) => Grouping (Compose f g a) | |
(Grouping a, Grouping b, Grouping c, Grouping d) => Grouping (a, b, c, d) |
Combinators
groupWith :: Grouping b => (a -> b) -> [a] -> [[a]] Source
O(n). This is a replacement for groupWith
using discrimination.
The result equivalence classes are _not_ sorted, but the grouping is stable.
Internals
groupingNat :: Int -> Group Int Source