>>> mconcat ["Hello", " ", "Haskell", "!"] "Hello Haskell!"
>>> S.mconcat $ S.take 2 $ S.map (Data.Monoid.Last . Just) S.stdinLn
first<Enter>
last<Enter>
Last {getLast = Just "last"} :> ()
mconcat = Stream.fold Fold.mconcatPre-release
>>> mconcat = Scanl.sconcat mempty
>>> monoids = fmap Data.Monoid.Sum $ Stream.enumerateFromTo 1 3
>>> Stream.toList $ Stream.scanl Scanl.mconcat monoids
[Sum {getSum = 0},Sum {getSum = 1},Sum {getSum = 3},Sum {getSum = 6}]
>>> :{
let foo :: Tensored (,) () '[Bool, Int]
foo = Tensored (True, (8, ()))
:}
>>> :{
let bar :: Tensored Either Void '[Bool, Int]
bar = Tensored $ Right $ Left 8
:}
>>> :{
let baz :: Tensored These Void '[Bool, Int]
baz = Tensored $ These True $ This 8
:}