namespace WoofWorkflows type StepDag<'a, 'plat> = private | StepDag type SealedStepDag<'a, 'plat> = private | SealedStepDag type Step<'a> = private | Step type Comp<'a> = private | Comp of (unit -> 'a) [] module Comp = let make (x : 'a) : Comp<'a> = Comp (fun () -> x) [] module StepDag = let empty<'a, 'plat> (v : 'a) : StepDag<'a, 'plat> = StepDag let addStep (name : string) (step : 'a Step) (cont : 'a -> StepDag<'b, 'plat>) : StepDag<'b, 'plat> = failwith "" let seal<'a, 'plat> (s : StepDag<'a, 'plat>) : SealedStepDag<'a, 'plat> = SealedStepDag