The group function takes a ByteString and returns a list of ByteStrings such that the concatenation of the result is equal to the argument. Moreover, each sublist in the result contains only equal elements. For example,
> group "Mississippi" = ["M","i","ss","i","ss","i","pp","i"]
It is a special case of groupBy, which allows the programmer to supply their own equality test.

The group function takes a ByteString and returns a list of ByteStrings such that the concatenation of the result is equal to the argument. Moreover, each sublist in the result contains only equal elements. For example,
> group "Mississippi" = ["M","i","ss","i","ss","i","pp","i"]
It is a special case of groupBy, which allows the programmer to supply their own equality test. It is about 40% faster than groupBy (==)

Create a Builder that encodes a list of values consecutively using a BoundedPrim for each element. This function is more efficient than the canonical
> filter p =
> B.toLazyByteString .
> E.encodeLazyByteStringWithF (E.ifF p E.word8) E.emptyF)
> mconcat . map (primBounded w)
or
> foldMap (primBounded w)
because it moves several variables out of the inner loop.