   end
 
   test "l helper" do
+    assert_raise UndefinedFunctionError, "undefined function: Helpers_test_module.run/0", fn ->
+      Helpers_test_module.run
+    end
+
     assert l(:non_existent_module) == {:error,:nofile}
 
     File.write! "test-module-code.ex", test_module_code
     assert c("test-module-code.ex") == [Helpers_test_module]
-    #File.write! "test-module-code.ex", "defmodule Helpers_test_module do end"
+    assert Helpers_test_module.run == :run
+
+    File.write! "test-module-code.ex", "defmodule Helpers_test_module do end"
+    # FIXME: is there another way to compile a file without loading its module?
+    System.cmd "elixirc test-module-code.ex"
+
     assert l(Helpers_test_module) == {:module, Helpers_test_module}
-    assert Helpers_test_module.run == :run
+    assert_raise UndefinedFunctionError, fn ->
+      Helpers_test_module.run
+    end
   after
     File.rm "test-module-code.ex"
     File.rm! "Elixir.Helpers_test_module.beam"

  end

  test "c helper multiple modules" do
    File.write! "test-module-code.ex", test_module_code <> "\n" <> another_test_module
    assert c("test-module-code.ex") |> Enum.sort == [Another_test_module,Helpers_test_module]
    assert Helpers_test_module.run == :run

    end

    File.write! "test-module-code.ex", test_module_code
    assert c("test-module-code.ex") == [Helpers_test_module]
    assert Helpers_test_module.run == :run
    # FIXME: `r Helpers_test_module` returns :nosource
    assert r(Helpers_test_module) == [Helpers_test_module]

    assert r == [Helpers_test_module]
