classy-prelude-0.5.10: A typeclass-based Prelude.

Safe HaskellNone

ClassyPrelude.Classes

Synopsis

Documentation

class CanMap ci co i o | ci -> i, co -> o, ci o -> co, co i -> ci whereSource

Methods

map :: (i -> o) -> ci -> coSource

Instances

CanMap LText LText Char Char 
CanMap LByteString LByteString Word8 Word8 
CanMap Text Text Char Char 
CanMap ByteString ByteString Word8 Word8 
CanMap [a] [b] a b 
CanMap (Maybe a) (Maybe b) a b 
(Unbox a, Unbox b) => CanMap (UVector a) (UVector b) a b 
CanMap (Vector a) (Vector b) a b 
(Eq b, Hashable b) => CanMap (HashSet a) (HashSet b) a b 
(Ord a, Ord b) => CanMap (Set a) (Set b) a b 
CanMap (Seq a) (Seq b) a b 
CanMap (HashMap k v1) (HashMap k v2) v1 v2 
CanMap (Map k v1) (Map k v2) v1 v2 

class CanConcatMap ci co i o | ci -> i, co -> o, ci o -> co, co i -> ci whereSource

Methods

concatMap :: (i -> o) -> ci -> coSource

class CanFilter c i | c -> i whereSource

Methods

filter :: (i -> Bool) -> c -> cSource

class CanFilterM c i | c -> i whereSource

Methods

filterM :: Monad m => (i -> m Bool) -> c -> m cSource

Instances

CanFilterM [a] a 
Unbox a => CanFilterM (UVector a) a 
CanFilterM (Vector a) a 
CanFilterM (Seq a) a 

class CanSingleton c i | c -> i whereSource

Methods

singleton :: i -> cSource

class CanPack c i | c -> i whereSource

Methods

pack :: [i] -> cSource

unpack :: c -> [i]Source

subsequences :: c -> [c]Source

permutations :: c -> [c]Source

Instances

CanPack LText Char 
CanPack LByteString Word8 
CanPack FilePath Char 
CanPack Text Char 
CanPack ByteString Word8 
CanPack [a] a 
CanPack (Maybe a) a 
Unbox a => CanPack (UVector a) a 
CanPack (Vector a) a 
(Hashable x, Eq x) => CanPack (HashSet x) x 
Ord x => CanPack (Set x) x 
CanPack (Seq a) a 
(Eq k, Hashable k) => CanPack (HashMap k v) (k, v) 
Ord k => CanPack (Map k v) (k, v) 

class Monad m => CanMapM ci mco m i o | ci -> i, mco -> m o, ci o m -> mco, mco i -> ci whereSource

Methods

mapM :: (i -> m o) -> ci -> mcoSource

Instances

Monad m => CanMapM [i] (m [o]) m i o 
Monad m => CanMapM (Maybe i) (m (Maybe o)) m i o 
(Unbox i, Unbox o, Monad m) => CanMapM (UVector i) (m (UVector o)) m i o 
Monad m => CanMapM (Vector i) (m (Vector o)) m i o 
Monad m => CanMapM (Seq i) (m (Seq o)) m i o 

class CanMapM_ ci i | ci -> i whereSource

Methods

mapM_ :: Monad m => (i -> m o) -> ci -> m ()Source

Instances

CanMapM_ [a] a 
CanMapM_ (Maybe a) a 
Unbox a => CanMapM_ (UVector a) a 
CanMapM_ (Vector a) a 
(Eq a, Hashable a) => CanMapM_ (HashSet a) a 
Ord a => CanMapM_ (Set a) a 
CanMapM_ (Seq a) a 

class CanReplicateM c i len | c -> i len whereSource

Methods

replicateM :: Monad m => len -> m i -> m cSource

class CanLookup c k v | c -> k v whereSource

Methods

lookup :: k -> c -> Maybe vSource

Instances

Eq k => CanLookup [(k, v)] k v 
(Eq k, Hashable k) => CanLookup (HashMap k v) k v 
Ord k => CanLookup (Map k v) k v 

class CanInsert f whereSource

Methods

insert :: fSource

Instances

(CanInsertVal c' k v, ~ * c c') => CanInsert (k -> v -> c -> c') 
(Eq x, Hashable x, ~ * (HashSet x) s, ~ * x x') => CanInsert (x' -> s -> HashSet x) 
(Ord x, ~ * (Set x) s, ~ * x x') => CanInsert (x' -> s -> Set x) 

class CanInsertVal c k v | c -> k v whereSource

Methods

insertVal :: k -> v -> c -> cSource

Instances

Eq k => CanInsertVal [(k, v)] k v 
(Eq k, Hashable k) => CanInsertVal (HashMap k v) k v 
Ord k => CanInsertVal (Map k v) k v 

class CanDelete f whereSource

Methods

delete :: fSource

Instances

(CanDeleteVal c' k, ~ * c c') => CanDelete (k -> c -> c') 

class CanDeleteVal c k | c -> k whereSource

Methods

deleteVal :: k -> c -> cSource

Instances

Eq k => CanDeleteVal [(k, v)] k 
Ord x => CanDeleteVal (Set x) x 
(Eq k, Hashable k) => CanDeleteVal (HashMap k v) k 
Ord k => CanDeleteVal (Map k v) k 

class CanMember c k | c -> k whereSource

Methods

member :: k -> c -> BoolSource

notMember :: k -> c -> BoolSource

Instances

Eq x => CanMember [x] x 
Eq x => CanMember (Maybe x) x 
(Unbox x, Eq x) => CanMember (UVector x) x 
Eq x => CanMember (Vector x) x 
(Eq x, Hashable x) => CanMember (HashSet x) x 
Ord x => CanMember (Set x) x 
Eq x => CanMember (Seq x) x 

class CanBreak c i | c -> i whereSource

Methods

break :: (i -> Bool) -> c -> (c, c)Source

span :: (i -> Bool) -> c -> (c, c)Source

dropWhile :: (i -> Bool) -> c -> cSource

takeWhile :: (i -> Bool) -> c -> cSource

class CanAny c i | c -> i whereSource

Methods

any :: (i -> Bool) -> c -> BoolSource

all :: (i -> Bool) -> c -> BoolSource

class CanFold c i accum | c -> i whereSource

Methods

fold :: (accum -> i -> accum) -> accum -> c -> accumSource

Strict left fold.

Instances

CanFold LText Char accum 
CanFold LByteString Word8 accum 
CanFold Text Char accum 
CanFold ByteString Word8 accum 
CanFold [a] a accum 
CanFold (Maybe a) a accum 
Unbox a => CanFold (UVector a) a accum 
CanFold (Vector a) a accum 
CanFold (HashSet a) a accum 
CanFold (Set a) a accum 
CanFold (Seq a) a accum 

class CanWords t whereSource

Methods

words :: t -> [t]Source

unwords :: [t] -> tSource

Instances

class CanLines t whereSource

Methods

lines :: t -> [t]Source

Instances

class CanUnlines t whereSource

Methods

unlines :: [t] -> tSource

Instances

class CanSplit c i | c -> i whereSource

Methods

split :: (i -> Bool) -> c -> [c]Source

class CanToChunks c i | c -> i, i -> c whereSource

Methods

toChunks :: c -> [i]Source

fromChunks :: [i] -> cSource

class CanEncodeUtf8 ci co | co -> ci, ci -> co whereSource

Methods

encodeUtf8 :: ci -> coSource

class CanDecodeUtf8 ci co | co -> ci, ci -> co whereSource

Note: implementations should ensure that decodeUtf8 is a total function. As such, the standard decodeUtf8 provided by the text package should not be used, but instead decodeUtf8With lenientDecode.

Methods

decodeUtf8 :: ci -> coSource

class CanGetLine a whereSource

Methods

getLine :: aSource

Instances

class CanToLower a whereSource

Methods

toLower :: a -> aSource

class CanToUpper a whereSource

Methods

toUpper :: a -> aSource

class CanFind c i | c -> i whereSource

Methods

find :: (i -> Bool) -> c -> Maybe iSource

Instances

CanFind LText Char 
CanFind Text Char 
CanFind [a] a 
CanFind (Maybe a) a 
Unbox a => CanFind (UVector a) a 
CanFind (Vector a) a 
CanFind (Set a) a 
CanFind (Seq a) a 
CanFind (HashMap k v) v 
CanFind (Map k v) v 

class CanConcat c i | c -> i whereSource

Methods

concat :: c -> iSource

Instances

Monoid m => CanConcat [m] m 
(Unbox m, Monoid m) => CanConcat (UVector m) m 
Monoid m => CanConcat (Vector m) m 
Monoid m => CanConcat (Set m) m 
Monoid m => CanConcat (Seq m) m 
Monoid v => CanConcat (HashMap k v) v 
Monoid v => CanConcat (Map k v) v 

class CanNubBy c i | c -> i whereSource

Methods

nubBy :: (i -> i -> Bool) -> c -> cSource

nub :: (Ord i, CanNubBy c i) => c -> cSource

Instances

CanNubBy [a] a 

class CanUnion c whereSource

Methods

union :: c -> c -> cSource

Instances

Eq a => CanUnion [a] 
(Eq a, Hashable a) => CanUnion (HashSet a) 
Ord a => CanUnion (Set a) 
(Hashable k, Eq k) => CanUnion (HashMap k a) 
Ord k => CanUnion (Map k a) 

class CanDifference c whereSource

Methods

difference :: c -> c -> cSource

Instances

Eq a => CanDifference [a] 
(Eq a, Hashable a) => CanDifference (HashSet a) 
Ord a => CanDifference (Set a) 
(Hashable k, Eq k) => CanDifference (HashMap k a) 
Ord k => CanDifference (Map k a) 

class CanIntersection c whereSource

Methods

intersection :: c -> c -> cSource

Instances

class CanSortBy c a | c -> a whereSource

Methods

sortBy :: (a -> a -> Ordering) -> c -> cSource

Instances

CanSortBy [a] a 
CanSortBy (Seq a) a 

class Ord a => CanSort c a | c -> a whereSource

Methods

sort :: c -> cSource

Instances

Ord a => CanSort [a] a 
Ord a => CanSort (Seq a) a 

class CanCons c a whereSource

Methods

cons :: a -> c -> cSource

class CanCompareLength c whereSource

Methods

compareLength :: Integral l => c -> l -> OrderingSource

This is a more effective alternative to statements like i >= length xs for types having an O(n) complexity of length operation like list or Text. It does not traverse the whole data structure if the value being compared to is lesser.

class CanGroupBy c a | c -> a whereSource

Methods

groupBy :: (a -> a -> Bool) -> c -> [c]Source

class CanGroupBy' c a | c -> a whereSource

Methods

groupBy' :: (a -> a -> Bool) -> c -> [c]Source

Similar to standard groupBy, but operates on the whole collection, not just the consecutive items.

Instances

CanGroupBy' [a] a 

class CanGroup c a | c -> a whereSource

Methods

group :: c -> [c]Source

class CanGroup' c a | c -> a whereSource

Methods

group' :: c -> [c]Source

Similar to standard group, but operates on the whole collection, not just the consecutive items.

Instances

Eq a => CanGroup' [a] a 

class CanRepeat c a | c -> a whereSource

Methods

repeat :: a -> cSource

class CanZipWith c1 i1 c2 i2 c3 i3 | c1 -> i1, c2 -> i2, c3 -> i3 whereSource

Methods

zipWith :: (i1 -> i2 -> i3) -> c1 -> c2 -> c3Source

class CanZipWith3 c1 i1 c2 i2 c3 i3 c4 i4 | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4 whereSource

Methods

zipWith3 :: (i1 -> i2 -> i3 -> i4) -> c1 -> c2 -> c3 -> c4Source

Instances

CanZipWith3 [a] a [b] b [c] c [d] d 
(Unbox a, Unbox b, Unbox c, Unbox d) => CanZipWith3 (UVector a) a (UVector b) b (UVector c) c (UVector d) d 
CanZipWith3 (Vector a) a (Vector b) b (Vector c) c (Vector d) d 
CanZipWith3 (Seq a) a (Seq b) b (Seq c) c (Seq d) d 

class CanZipWith4 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5 whereSource

Methods

zipWith4 :: (i1 -> i2 -> i3 -> i4 -> i5) -> c1 -> c2 -> c3 -> c4 -> c5Source

Instances

CanZipWith4 [a] a [b] b [c] c [d] d [e] e 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => CanZipWith4 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e 
CanZipWith4 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e 
CanZipWith4 (Seq a) a (Seq b) b (Seq c) c (Seq d) d (Seq e) e 

class CanZipWith5 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6 whereSource

Methods

zipWith5 :: (i1 -> i2 -> i3 -> i4 -> i5 -> i6) -> c1 -> c2 -> c3 -> c4 -> c5 -> c6Source

Instances

CanZipWith5 [a] a [b] b [c] c [d] d [e] e [f] f 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => CanZipWith5 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e (UVector f) f 
CanZipWith5 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e (Vector f) f 

class CanZipWith6 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 c7 i7 | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6, c7 -> i7 whereSource

Methods

zipWith6 :: (i1 -> i2 -> i3 -> i4 -> i5 -> i6 -> i7) -> c1 -> c2 -> c3 -> c4 -> c5 -> c6 -> c7Source

Instances

CanZipWith6 [a] a [b] b [c] c [d] d [e] e [f] f [g] g 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f, Unbox g) => CanZipWith6 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e (UVector f) f (UVector g) g 
CanZipWith6 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e (Vector f) f (Vector g) g 

class CanZipWith7 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 c7 i7 c8 i8 | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6, c7 -> i7, c8 -> i8 whereSource

Methods

zipWith7 :: (i1 -> i2 -> i3 -> i4 -> i5 -> i6 -> i7 -> i8) -> c1 -> c2 -> c3 -> c4 -> c5 -> c6 -> c7 -> c8Source

Instances

CanZipWith7 [a] a [b] b [c] c [d] d [e] e [f] f [g] g [h] h 

class CanZip c1 i1 c2 i2 t | c1 -> i1, c2 -> i2 whereSource

Methods

zip :: c1 -> c2 -> t (i1, i2)Source

class CanZip3 c1 i1 c2 i2 c3 i3 t | c1 -> i1, c2 -> i2, c3 -> i3 whereSource

Methods

zip3 :: c1 -> c2 -> c3 -> t (i1, i2, i3)Source

Instances

CanZip3 [a] a [b] b [c] c [] 
(Unbox a, Unbox b, Unbox c) => CanZip3 (UVector a) a (UVector b) b (UVector c) c UVector 
CanZip3 (Vector a) a (Vector b) b (Vector c) c Vector 
CanZip3 (Seq a) a (Seq b) b (Seq c) c Seq 

class CanZip4 c1 i1 c2 i2 c3 i3 c4 i4 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4 whereSource

Methods

zip4 :: c1 -> c2 -> c3 -> c4 -> t (i1, i2, i3, i4)Source

Instances

CanZip4 [a] a [b] b [c] c [d] d [] 
(Unbox a, Unbox b, Unbox c, Unbox d) => CanZip4 (UVector a) a (UVector b) b (UVector c) c (UVector d) d UVector 
CanZip4 (Vector a) a (Vector b) b (Vector c) c (Vector d) d Vector 
CanZip4 (Seq a) a (Seq b) b (Seq c) c (Seq d) d Seq 

class CanZip5 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5 whereSource

Methods

zip5 :: c1 -> c2 -> c3 -> c4 -> c5 -> t (i1, i2, i3, i4, i5)Source

Instances

CanZip5 [a] a [b] b [c] c [d] d [e] e [] 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => CanZip5 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e UVector 
CanZip5 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e Vector 

class CanZip6 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6 whereSource

Methods

zip6 :: c1 -> c2 -> c3 -> c4 -> c5 -> c6 -> t (i1, i2, i3, i4, i5, i6)Source

Instances

CanZip6 [a] a [b] b [c] c [d] d [e] e [f] f [] 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => CanZip6 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e (UVector f) f UVector 
CanZip6 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e (Vector f) f Vector 

class CanZip7 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 c7 i7 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6, c7 -> i7 whereSource

Methods

zip7 :: c1 -> c2 -> c3 -> c4 -> c5 -> c6 -> c7 -> t (i1, i2, i3, i4, i5, i6, i7)Source

Instances

CanZip7 [a] a [b] b [c] c [d] d [e] e [f] f [g] g [] 

class CanUnzip c1 i1 c2 i2 t | c1 -> i1, c2 -> i2 whereSource

Methods

unzip :: t (i1, i2) -> (c1, c2)Source

class CanUnzip3 c1 i1 c2 i2 c3 i3 t | c1 -> i1, c2 -> i2, c3 -> i3 whereSource

Methods

unzip3 :: t (i1, i2, i3) -> (c1, c2, c3)Source

Instances

CanUnzip3 [a] a [b] b [c] c [] 
(Unbox a, Unbox b, Unbox c) => CanUnzip3 (UVector a) a (UVector b) b (UVector c) c UVector 
CanUnzip3 (Vector a) a (Vector b) b (Vector c) c Vector 

class CanUnzip4 c1 i1 c2 i2 c3 i3 c4 i4 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4 whereSource

Methods

unzip4 :: t (i1, i2, i3, i4) -> (c1, c2, c3, c4)Source

Instances

CanUnzip4 [a] a [b] b [c] c [d] d [] 
(Unbox a, Unbox b, Unbox c, Unbox d) => CanUnzip4 (UVector a) a (UVector b) b (UVector c) c (UVector d) d UVector 
CanUnzip4 (Vector a) a (Vector b) b (Vector c) c (Vector d) d Vector 

class CanUnzip5 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5 whereSource

Methods

unzip5 :: t (i1, i2, i3, i4, i5) -> (c1, c2, c3, c4, c5)Source

Instances

CanUnzip5 [a] a [b] b [c] c [d] d [e] e [] 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e) => CanUnzip5 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e UVector 
CanUnzip5 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e Vector 

class CanUnzip6 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6 whereSource

Methods

unzip6 :: t (i1, i2, i3, i4, i5, i6) -> (c1, c2, c3, c4, c5, c6)Source

Instances

CanUnzip6 [a] a [b] b [c] c [d] d [e] e [f] f [] 
(Unbox a, Unbox b, Unbox c, Unbox d, Unbox e, Unbox f) => CanUnzip6 (UVector a) a (UVector b) b (UVector c) c (UVector d) d (UVector e) e (UVector f) f UVector 
CanUnzip6 (Vector a) a (Vector b) b (Vector c) c (Vector d) d (Vector e) e (Vector f) f Vector 

class CanUnzip7 c1 i1 c2 i2 c3 i3 c4 i4 c5 i5 c6 i6 c7 i7 t | c1 -> i1, c2 -> i2, c3 -> i3, c4 -> i4, c5 -> i5, c6 -> i6, c7 -> i7 whereSource

Methods

unzip7 :: t (i1, i2, i3, i4, i5, i6, i7) -> (c1, c2, c3, c4, c5, c6, c7)Source

Instances

CanUnzip7 [a] a [b] b [c] c [d] d [e] e [f] f [g] g []