anchor.diff:              [| decision |], ""
   
           let scheduleChildWorkflow stageNum (workflow : Workflow) =
  -            let workflowType = WorkflowType(Name = workflow.Name, Version = workflow.Version)
  -            let state        = { StageNumber = stageNum; AttemptNumber = attempts + 1; MaxAttempts = workflow.MaxAttempts }
  +            let schedulable  = workflow :> ISchedulable
  +            let workflowType = WorkflowType(Name = schedulable.Name, Version = workflow.Version)
  +            let state        = { StageNumber = stageNum; AttemptNumber = attempts + 1; MaxAttempts = schedulable.MaxAttempts }
               let control      = state |> stageStateSerializer.SerializeToString
  -            let decision = StartChildWorkflowExecution(getStageActionId workflow.Name state, 
  +            let decision = StartChildWorkflowExecution(getStageActionId schedulable.Name state, 
                                                          workflowType,
                                                          workflow.ChildPolicy,
                                                          Some workflow.TaskList, 
  
positive.code:     let findEventTypeById eventId (evts : HistoryEvent seq) =
          evts |> Seq.pick (function | { EventId = eventId'; EventType = eventType } when eventId = eventId' -> Some eventType | _ -> None)
  
      let getStageActionId actionName { StageNumber = stage; AttemptNumber = n } = sprintf "%d.%s.attempt_%d" stage actionName n
      let getActivityVersion stageNum = sprintf "%s.%d" name stageNum
  
      // sort the stages by Id
      let stages = defaultArg stages [] |> List.sortBy (fun { StageNumber = n } -> n)
      
      /// tries to get the nth (zero-index) stage
      let getStage n = if n >= stages.Length then None else List.nth stages n |> Some
  
negative.code:                  ?execStartToCloseTimeout = execStartToCloseTimeout,
                   ?childPolicy             = childPolicy,
                   ?identity                = identity)         
                   
      member this.Start swfClt = 
          register swfClt |> ignore
          startDecisionWorker  swfClt
          startActivityWorkers swfClt
          startChildWorkflows  swfClt        
  
      // #region Public Events
  
  