2016-04-07 3 views
3

Ich versuche, die channelsDemo von der distributed-process Dokumentation zu laufen, aber wenn ich versuche, channelsDemo von main zu laufen wie folgt:Lauf verteilter Prozess des Prozesstyp in IO

main = channelsDemo 

ich die folgende Fehlermeldung erhalten:

Hier

Couldn't match expected type IO() with actual type Process()

ist die channelsDemo Funktion:

channelsDemo :: Process() 
channelsDemo = do 
    (sp, rp) <- newChan :: Process (SendPort String, ReceivePort String) 

    -- send on a channel 
    spawnLocal $ sendChan sp "hello!" 

    -- receive on a channel 
    m <- receiveChan rp 
    say $ show m 

Ich sehe das Problem, kann aber nicht herausfinden, wie es zu beheben ist.

Antwort

4

distributed-process hat eine runProcess Funktion, die die richtige Signatur zu haben scheint:

runProcess :: LocalNode -> Process() -> IO() 

und es gibt eine Möglichkeit, eine LocalNode zu erstellen:

newLocalNode :: Transport -> RemoteTable -> IO LocalNode