map -package:containers -package:basement -package:psqueues -package:Cabal-syntax -package:base -package:regex-tdfa -package:dense-linear-algebra -package:monoidal-containers -package:conduit -package:text -package:os-string -package:unordered-containers -package:vector

Apply a function to each element of a Stream, lazily
map f xs is the list obtained by applying f to each element of xs, i.e.,
map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
map f [x1, x2, ...] == [f x1, f x2, ...]
>>> map (+1) [1, 2, 3]
[2,3,4]
Map a function over all values in the map.
Map a function over a NonEmpty stream.
Combinator for the <map> element. Example:
map $ span $ toHtml "foo"
Result:
<map><span>foo</span></map>
O(n) map f xs is the ByteString obtained by applying f to each element of xs.
O(n) map f xs is the ByteString obtained by applying f to each element of xs
O(n) map f xs is the ShortByteString obtained by applying f to each element of xs.
Transform the original string-like value but keep it case insensitive.
map f xs is the DList obtained by applying f to each element of xs. <math>(length (toList xs)). map obeys the law:
toList (map f xs) = map f (toList xs)
map f xs is the DNonEmpty obtained by applying f to each element of xs. <math>(length (toNonEmpty xs)). map obeys the law:
toNonEmpty (map f xs) = map f (toNonEmpty xs)
O(n) map f xs is the ShortByteString obtained by applying f to each element of xs.
Fold pairs into a map.
Generates a map using a Range to determine the length. This may fail to generate anything if the keys produced by the generator do not account for a large enough number of unique items to satify the required map size.
Apply a bijection over a list using map.
Apply a function to all values flowing downstream
map id = cat

map (g . f) = map f >-> map g
Map a function over a Stream
Type-level fmap for type-level functors. Note: this name clashes with Map from containers. FMap is provided as a synonym to avoid this.

Example

>>> data Example where Ex :: a -> Example  -- Hide the type of examples to avoid brittleness in different GHC versions

>>> data AddMul :: Nat -> Nat -> Exp Nat

>>> type instance Eval (AddMul x y) = (x TL.+ y) TL.* (x TL.+ y)

>>> :kind! Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat])
Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat]) :: Example
= Ex [4, 9, 16, 25, 36]