let { assert_eq, group, test } = import! std.test
let { (<|) } = import! std.function
let { ? } = import! std.io
let int = import! std.int
let { Bool } = import! std.bool
let { Reference, ref, (<-), load } = import! std.effect.reference
let { ? } = import! std.effect
let { lift } = import! std.effect.lift
let assert_eq_ref l r : [Show a] -> [Eq a] -> a -> Reference a -> _ =
do r = load r
assert_eq l r
// Dummy test
group "reference" [
test "basic" <| \_ ->
do ri = ref 0
assert_eq_ref 0 ri
ri <- 2
assert_eq_ref 2 ri
assert_eq_ref 2 ri
ri <- 10
assert_eq_ref 10 ri
]