`funflow-nix` provides functions for creating flows which run in a nix environment. The library exposes the `NixConfig` data type which allows you to specify the environment and command to run. This is then turned into a flow using `nix`. A complete example can be seen in `examples/Simple.hs`. We can pin the version of nixpkgs we want to use by specifying a tarball to use as the source. ``` tarballSource :: NixpkgsSource tarballSource = NixpkgsTarball [uri|https://github.com/NixOS/nixpkgs/archive/a19357241973538212b5cb435dde84ad25cbe337.tar.gz|] nixConfig :: Environment -> NixConfig nixConfig senv = NixShellConfig { environment = senv , command = "jq" , args = [ParamText "--version"] , env = [] , stdout = StdOutCapture , nixpkgsSource = tarballSource } ``` Once the config has been specified. It can be turned into a flow by using the `nix` function. ``` jqVersionPkg :: SimpleFlow () String jqVersionPkg = readString_ <<< nix (\() -> nixConfig (PackageList ["jq"])) ```