https://github.com/haskell-effectful/typed-process-effectful
Bindings of typed-process for the effectful ecosystem
https://github.com/haskell-effectful/typed-process-effectful
effect-system effectful haskell
Last synced: 4 months ago
JSON representation
Bindings of typed-process for the effectful ecosystem
- Host: GitHub
- URL: https://github.com/haskell-effectful/typed-process-effectful
- Owner: haskell-effectful
- License: bsd-3-clause
- Created: 2022-02-20T21:19:34.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-08-12T06:26:13.000Z (6 months ago)
- Last Synced: 2025-09-21T07:27:24.089Z (4 months ago)
- Topics: effect-system, effectful, haskell
- Language: Haskell
- Homepage:
- Size: 48.8 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# typed-process-effectful
## Description
An alternative `Process` effect for the [`effectful`][effectful] ecosystem.
While to the `Process` effect shipped with the `effectful` library is based on
the [`process`][process] package this implementation relies on
[`typed-process`][typed-process] instead.
## How to use
The functions exposed by the `Effectful.Process.Typed` module are those from
[`System.Process.Typed`](https://hackage.haskell.org/package/typed-process-0.2.6.1/docs/System-Process-Typed.html)
with the notable difference that they have a `TypedProcess :> es` constraint.
Use `runTypedProcess` to handle the effect and eliminate the constraint.
```haskell
import Effectful.Monad
import Effectful.Process.Typed
main :: IO ()
main = runEff . runTypedProcess $ true
true :: TypedProcess :> es => Eff es ()
true = Effectful.Process.Typed.runProcess_ $ shell "true"
```
[effectful]: https://github.com/haskell-effectful/effectful
[process]: https://hackage.haskell.org/package/process
[typed-process]: https://hackage.haskell.org/package/typed-process