public void Censor() { var writer1 = TellHelper("Message 1").BindIgnoringLeft( TellHelper("Message 2")).BindIgnoringLeft( MyWriter.Return(42)); var writer2 = MyWriter.Censor(msgs => new ListMonoid <string>(msgs.List.Where(msg => msg.EndsWith("2"))), writer1); var tuple = writer2.RunWriter; var a = tuple.Item1; var w = tuple.Item2; Assert.That(a, Is.EqualTo(42)); Assert.That(w.List, Is.EqualTo(new[] { "Message 2" })); }