Repository F# setup
open System
open System.IO
open System.Threading
open System.Threading.Tasks
open Axial
open Axial.Layers
open Axial.Console
open Axial.FileSystem
open Axial.Hosting
open Axial.Hosting.Browser
open Axial.Hosting.Node
open Axial.HttpClient
open Axial.PlatformService
open Axial.Process
open Axial.State
open Axial.Telemetry
open Axial.Telemetry.JavaScript

ProcessSpec, ProcessResult, ProcessError, the DSL, and IProcess are target-neutral. A browser cannot start an operating-system process, so Process.live and native stream adapters are available only on .NET.

Fable applications can construct specifications and run them against an IProcess implementation that delegates execution to a worker or another host:

    { Process: IProcess }
    interface IHasProcess with member this.Process = this.Process

let workflow =
    Process.command "device-tool" [ "inspect" ]
    |> Process.run<AppEnvironment>
An interpreter returns lazy `Flow` and `FlowStream` values. It must not start work while constructing those values.