aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/stdlib/fs.ts6
-rw-r--r--src/stdlib/io.ts17
-rw-r--r--src/stdlib/stdio.ts10
-rw-r--r--src/stdlib/sys.ts8
4 files changed, 16 insertions, 25 deletions
diff --git a/src/stdlib/fs.ts b/src/stdlib/fs.ts
index 0bd6a2c..1374da5 100644
--- a/src/stdlib/fs.ts
+++ b/src/stdlib/fs.ts
@@ -1,6 +1,6 @@
-import { EffectAtom } from './io'
+import { Effect } from './io'
-export interface WriteFile<_Path extends string, _Content extends string> extends EffectAtom { }
+export interface WriteFile<_Path extends string, _Content extends string> extends Effect { }
-export interface ReadFile<_Path extends string> extends EffectAtom<string> { }
+export interface ReadFile<_Path extends string> extends Effect<string> { }
diff --git a/src/stdlib/io.ts b/src/stdlib/io.ts
index c1e4574..d8e3ed2 100644
--- a/src/stdlib/io.ts
+++ b/src/stdlib/io.ts
@@ -1,22 +1,13 @@
-export interface EffectAtom<T = unknown> { output: T }
-export type Effect = EffectAtom[]
+export interface Effect<T = unknown> { output: T }
export interface Kind1<Inp = unknown, Out = unknown> {
input: Inp
return: Out
}
-export interface Program<Effs extends Effect, ExitCode extends number = 0> {
- effects: Effs,
- exitCode: ExitCode,
-}
+export interface Bind<_Eff extends Effect, _Fn extends Kind1> extends Effect { }
-export interface Bind<Eff extends EffectAtom, Fn extends Kind1> extends EffectAtom {
- input: Eff
- chainTo: Fn
-}
+export interface Seq<_Effs extends Effect[]> extends Effect { }
-export interface Seq<Effs extends EffectAtom[]> extends EffectAtom {
- effects: Effs
-}
+export interface DefineEffect<_Name extends string, _Func extends string> extends Effect { }
diff --git a/src/stdlib/stdio.ts b/src/stdlib/stdio.ts
index 96c27f8..b20d2da 100644
--- a/src/stdlib/stdio.ts
+++ b/src/stdlib/stdio.ts
@@ -1,10 +1,10 @@
-import { EffectAtom } from './io'
+import { Effect } from './io'
-export interface PutString<_ extends string> extends EffectAtom { }
+export interface PutString<_ extends string> extends Effect { }
-export interface Print<_ extends any> extends EffectAtom { }
+export interface Print<_ extends any> extends Effect { }
-export interface Debug<_ extends string, T> extends EffectAtom<T> { }
+export interface Debug<_ extends string, T> extends Effect<T> { }
-export interface ReadLine extends EffectAtom<string> { }
+export interface ReadLine extends Effect<string> { }
diff --git a/src/stdlib/sys.ts b/src/stdlib/sys.ts
index 1a9b18e..03541be 100644
--- a/src/stdlib/sys.ts
+++ b/src/stdlib/sys.ts
@@ -1,8 +1,8 @@
-import { EffectAtom } from './io'
+import { Effect } from './io'
-export interface GetEnv<_Name extends string> extends EffectAtom<string> { }
+export interface GetEnv<_Name extends string> extends Effect<string> { }
-export interface GetArgs extends EffectAtom<string[]> { }
+export interface GetArgs extends Effect<string[]> { }
-export interface JsExpr<_Expr extends string> extends EffectAtom<any> { }
+export interface JsExpr<_Expr extends string> extends Effect<any> { }