aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/ref.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/stdlib/ref.ts b/stdlib/ref.ts
new file mode 100644
index 0000000..22650f7
--- /dev/null
+++ b/stdlib/ref.ts
@@ -0,0 +1,14 @@
+import { Effect } from './effect'
+
+// TODO: Make Ref opaque
+// declare const $ref: unique symbol
+
+export type Ref = string // & { [$ref]: true }
+
+export interface CreateRef<_Val> extends Effect<Ref> {}
+
+export interface GetRef<_Key extends Ref> extends Effect {}
+
+export interface SetRef<_Key extends Ref, _Val> extends Effect {}
+
+export interface DeleteRef<_Key extends Ref> extends Effect {}