:: [IO (Maybe a)] -> IO (Maybe a) is:exact

Run the list of computations in parallel, returning the result of the first thread that completes with (Just x), if any. Users of the global pool must call stopGlobalPool from the main thread at the end of their program. See also parallelFirst.
This utility function run a list of IO actions and returns the first that return a Just, if no one does, returns Nothing
Takes computations returnings Maybes; tries each one in order. The first one to return a Just wins. Returns Nothing if all computations return Nothing.