gluon 0.18.2

A static, type inferred programming language for application embedding
Documentation
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
]