lean4-htt/tests/compiler/init.lean

31 lines
563 B
Text

new_frontend
namespace Foo
initialize ref : IO.Ref Nat ← IO.mkRef 10
initialize vals : IO.Ref (Array String) ← IO.mkRef #[]
def registerVal (s : String) : IO Unit := do
if (← vals.get).contains s then
throw $ IO.userError "value already registered"
vals.modify (·.push s)
initialize
IO.println "started the program"
ref.modify (· + 20)
registerVal "hello"
initialize
registerVal "world"
initialize
registerVal "foo"
end Foo
open Foo
def main : IO Unit := do
IO.println "hello world"
IO.println (← ref.get)
IO.println (← vals.get)