diff options
Diffstat (limited to '')
| -rw-r--r-- | src/stdlib/fs.ts | 6 | ||||
| -rw-r--r-- | src/stdlib/io.ts | 17 | ||||
| -rw-r--r-- | src/stdlib/stdio.ts | 10 | ||||
| -rw-r--r-- | src/stdlib/sys.ts | 8 |
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> { } |
