Actually, my data model with one list of tasks and another list of dependencies could get very tedious. For the example picture I posted, I could write something like:

openbox >> ( readmanual <|> ( attachwires >> plugin >> turnon ) ) >> use

but I'd be in trouble if, say, there was something else that could start after "attachwires" but had no other relationships to any other tasks and would run on into the "use" era. Is there any kind of super-monad that could express that?

It's the same problem as trying to decompose an asymmetrical Wheatstone Bridge into serialĀ andĀ parallel sub-networks. Is there any solution to that?

Adrian.