From 53d86302fd3f6e89b0b1db9881d33661c82fe4cf Mon Sep 17 00:00:00 2001
From: Paul Louth
Date: Sat, 15 Feb 2025 18:12:09 +0000
Subject: [PATCH] Docs
---
LanguageExt.Core/Monads/README.md | 6 +-
LanguageExt.Pipes/README.md | 163 +++++++++++------------------
LanguageExt.Pipes/README.nuget.md | 165 ++++++++++++------------------
3 files changed, 129 insertions(+), 205 deletions(-)
diff --git a/LanguageExt.Core/Monads/README.md b/LanguageExt.Core/Monads/README.md
index c142bbfd3..96a319110 100644
--- a/LanguageExt.Core/Monads/README.md
+++ b/LanguageExt.Core/Monads/README.md
@@ -1,3 +1,5 @@
-Not all of the monadic types are in this section, but most of them are. The other monadic types are
-[the collections](https://louthy.github.io/language-ext/LanguageExt.Core/Immutable%20Collections/index.html), and the [effect-system monads of `IO`, `Eff`, `StreamT`, and `Proxy`](https://louthy.github.io/language-ext/LanguageExt.Core/Effects/index.html).
+Not all of the monadic types are in this section, but most of them
+are. The other monadic types are [the collections](https://louthy.github.io/language-ext/LanguageExt.Core/Immutable%20Collections/index.html), and the
+[effect-system monads of `IO`, `Eff`, `StreamT`](https://louthy.github.io/language-ext/LanguageExt.Core/Effects/index.html),
+and [`Pipes`](https://louthy.github.io/language-ext/LanguageExt.Pipes/index.html)
diff --git a/LanguageExt.Pipes/README.md b/LanguageExt.Pipes/README.md
index 208ef1b11..37b75f64f 100644
--- a/LanguageExt.Pipes/README.md
+++ b/LanguageExt.Pipes/README.md
@@ -1,10 +1,4 @@
-_This feature of language-ext is based on the wonderful work of
-[Gabriella Gonzalez](https://twitter.com/GabriellaG439) on the [Haskell Pipes
-library](https://hackage.haskell.org/package/pipes-4.3.16/docs/Pipes.html). I have
-had to make some significant changes to make it work in C#, but the essence is the
-same, and the core types and composition of the components is exactly the same._
-
-* If you find this feature confusing at first, and it wouldn't be surprising as
+> If you find this feature confusing at first, and it wouldn't be surprising as
it's quite a complex idea, there are some examples in the [EffectsExample sample in the repo](https://github.com/louthy/language-ext/blob/main/Samples/EffectsExamples/Examples/TextFileChunkStreamExample.cs)
Conventional stream programming forces you to choose only two of the
@@ -18,7 +12,7 @@ If you sacrifice _Effects_ you get `IEnumerable`, which you
can transform using composable functions in constant space, but without
interleaving effects (other than of the _imperative kind_).
-If you sacrifice _Streaming_ you get 'Traverse' and 'Sequence', which are
+If you sacrifice _Streaming_ you get `Traverse` and `Sequence`, which are
composable and effectful, but do not return a single result until the whole
list has first been processed and loaded into memory.
@@ -30,18 +24,19 @@ is streaming and effectful, but is not modular or separable.
programming. `Pipes` also provides a wide variety of stream programming
abstractions which are all subsets of a single unified machinery:
-* effectful [`Producer`](Producer),
-* effectful [`Consumer`](Consumer),
-* effectful [`Pipe`](Pipe) (like Unix pipes)
-
-On top of that, `Pipes` has more advanced features, including bi-directional
-streaming. This comes into play when fusing clients and servers:
+* Effectful [`Producer`](Producer) and [`ProducerT`](ProducerT),
+* Effectful [`Consumer`](Consumer) and [`ConsumerT`](ConsumerT),
+* Effectful [`Pipe`](Pipe) and [`PipeT`](PipeT) (like Unix pipes)
+* Effectful [`Effect`](Effect) and [`EffectT`](EffectT)
-* effectful [`Client`](Client),
-* effectful [`Server`](Server),
+> The `T` suffix types (`ProducerT`, `ConsumerT`, `PipeT`, and `EffectT`) are the
+> more generalist monad-transformers. They can lift any monad `M` you like into them,
+> supplementing the behaviour of `Pipes` with the behaviour of `M`. The non-`T`
+> suffix types (`Producer`, `Consumer`, `Pipe`, and `Effect`) only support the lifting
+> of the `Eff