haskell wins again. only in haskell can you have a single timeout function which can be used for all things you would ever want to set a timeout on. no function ever needs it's own timeout parameters or logic, if someone wants to call your code and do something when it times out, they just call your code with the timeout function.. that is the kind of stuff you get when you can generalize things so much while still attributing it usably