Apologies in advance to Don Syme here.  I'm weak, and easily distracted. F# is my muse.

let WriteChaptersAsync (x) =
     async { use someBrain = Brain.OpenAndThink(sprintf "getIt.tmp" x)
     let! ideas = someBrain.ReadAsync(thoughts)
     let  ideas' = TransformIntoParagraphs(pages,x)
     use outStream = Brain.OpenAndWrite(sprintf "gotIt.done" x)
     do! outStream.WriteAsync(ideas')  }

let WriteChaptersAsync ( ) =
     printfn "WriteChatpersAsync...";
     let tasks = [ for x in 1 ..numPages -> WriteChaptersAsync(x) ]

     //realistically using Async.Future here, or maybe Async.Spawn...
     Async.Run (Async.Parallel tasks) | > ignore
     printfn "WriteChaptersAsync finished!";

Don Syme on F# Async Workflows on Ch9

Don Syme's WebLog on F# and Other Research Projects : Introducing F# Asynchronous Workflows