Burada, pipes
paketinin resmi dersinde verilen Effect
diyagramı verilmiştir. Effect
yanaNasıl olur? Efekt, tüm akışlar yerine sadece iki akışta sızdırmaz?
type Effect = Proxy X()() X
Upstream | Downstream
+---------+
| |
X <== <==()
| |
() ==> ==> X
| | |
+----|----+
v
r
Bütün akışlarını mühürleme, sadece Proxy X X X X
olmasını bekliyordum, herhangi bir veri akışını yoktur. Fakat bunun yerine, iki akışa izin verir. Bunun için özel bir neden var mı? Sadece Effect
normalde imza Proxy X X X X
ile, ne yazarsanız, o mükemmel iyi derleyici geçirebilirsiniz:
myMonad :: Proxy X X X X IO()
myMonad = do
a <- lift $ getLine
lift $ print a
return()
Neden olamaz böyle biz run
şey? örnekten