「Programming with Arrows」というドキュメントを読んでいるのですが、
(このタイトルでググればすぐに見れます)

[1.3 Arrows as computations] の後半辺りが理解できません
(5ページ目 But whereas monadic computations are・・・の辺り)

monadic computation は出力の型だけパラメタ化されて、
入力の型ではパラメタ化されない
一方 arrow computation は入力も出力もパラメタ化される、とあります

また、そのため、先のページで例示したストリーミングの arrow は(SF 型)、
arrow だからこそ表現でき、monad では表現できない例だとあります

この辺りの意味がよく分かりません
特にストリーミングの arrow が monad では表現できないという意味がわかりません
分からないなりに考えてみたのですが、

arrow ==> runSF (arr (+1)) [1..5] (同ドキュメントの4ページ目)
monad ==> [1..5] >>= (\x -> [x+1])

これは、arrow と同じ computation を monad で表現できるが、

arrow ==> delay x = SF (x:) (同ページ)
monad ==> ???

これは monad の中だけでは表現できない、ということなんでしょうか?
(もしそうだとしても、入力もパラメタ化できる事との繋がりがまだモヤモヤしてる)