Hello World server in F#

(*
Hello World server
Binds REP socket to tcp://*:5555
Expects "Hello" from client, replies with "World"
*)

#r @"bin/fszmq.dll"
open fszmq

let main () =
use context = new Context(1)

// socket to talk to clients
use responder = context |> Context.rep
"tcp://*:5555" |> Socket.bind responder

while true do
// wait for next request from client
responder |> Socket.recv |> ignore
printfn "Received Hello"

// do some work
System.Threading.Thread.Sleep 1

// send reply back to client
"World"B |> Socket.send responder

// we never get here but if we did, this would be how we end
0 (* return code *)

main ()