/'a      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Safe abcdefghijklmbhijklm abcdefghijklmNone%&9;<=DRT Node attributeshort descriptionlong descriptionoverwrite the global optionThe id of a nodeKAn abstract type representing the database used to store states of workflowconcurrency controller The result of a computation node*number of concurrent processes,A Workflow is a DAG8 no !"#$%&'()*+,-./0123452  !"#$%&'()*+,-./0123452,-./ 124350'()*+ !&#$"%  no !"#$%&'()*+,-./012345None pqr6789:;<=>? 6789:;<=>? 6789<:;?=> pqr6789:;<=>?None@ABCDEF@ABCDEFCD@ABEF@ABCDEFNone9:; s%Objects that can be converted to ExpQt!Links between computational nodesuA computation nodev%The order of incoming edges of a nodeIfDeclare a computational node. The function must have the signature: (DBData a, DBData b) => a -> IO bJxDeclare a function that can be called on remote function :: ToExpQ q => T.Text -> q -> Builder () function funcName fn =%many-to-one generalized link functionK (~>) = link.L singletonM6Build the workflow. This function will first create functions defined in the builder. These pieces will then be assembled to form a function that will execute each individual function in a correct order, named $prefix$_sciflow. Lastly, a function table will be created with the name $prefix$_function_table.NtBuild only a part of the workflow that has not been executed. This is used during development for fast compliation.O(Contruct a DAG representing the workfloww1Remove nodes that are executed before from a DAG.Gxyz{s|H}tuvInode idfunction AttribuesJKLMprefixNpath to the dbOw~PQRSTUVHIJKLMNOIJKLHMNOGxyz{s|H}tuvIJKLMNOw~PQRSTUVNoneWPrint the computation graphWWWWNoneX;  !"#$%&'()*+,-./012345HIJKLMNOXXXNone9;[An action to be execute before the workflow. The action should have type: IO () -> IO (). ^ i.e., some initialization processes.&YZ[\]^_`YZ[\]^_^]_YZ[\YZ[\]^_`       !"#$%&'()*+,--./011223456789:;<=>?@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyyz{|}~$SciFlow-0.5.0-2wgz3No4vg5CVaV7OvzyEaScientific.Workflow.TypesScientific.Workflow.DBScientific.Workflow.UtilsScientific.Workflow.BuilderScientific.Workflow.VisualizeScientific.WorkflowScientific.Workflow.Main Paths_SciFlow Attribute_label_note_batch_submitToRemotePID WorkflowDBDBData serialize deserializeshowYamlreadYaml BatchData batchFunction BatchData'batchFunction'IsList $fDBDataa $fBatchDataab$fBatchData'HFalseab$fBatchData'HTrue[][] WorkflowState_db _procStatus_procParaControl_remote NodeResultSuccessFail ScheduledAttributeSetterbatchlabelnotesubmitToRemotedefaultAttributeRunOptdatabasenThread runOnRemoteWorkflowClosure Processor ProcStatedbprocParaControl procStatusremoteopenDBcloseDBreadDatareadDataByteStringsaveData updateDatasaveDataByteString isFinishedgetKeys delRecord RemoteOpts extraParamsdebugerror'defaultRemoteOpts runRemote $fLiftMapBuildernodelink~>path buildWorkflowbuildWorkflowPartmkDAG$fApplicativeParallel$fFunctorParallel $fToExpQQ $fToExpQName$fLiftGr $fLiftText$fLiftAttribute renderBuilder runWorkflowMainOpts preAction programHeaderdefaultMainOpts defaultMainmainWith$fLiftMainOptscatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameHFalseHTrue dbTableName createTablehasTableToExpQEdgeNodeEdgeOrdtrimDAGParallel runParallelDAGtoExpQFunction mkWorkflowmkProc GlobalOptsdbPathCMDRunViewCatWriteDeleteRecoverDumpDBCall globalParser runParserrunExe viewParserviewExe catParsercatExe writeParserwriteExermParserrmExe recoverParser recoverExe dumpDBParser dumpDBExe callParsercallExemainFunc