 
     test "invalid argument is literal" do
       message = "invalid arguments for use, expected a compile time atom or alias, got: 42"
+
       assert_raise ArgumentError, message, fn ->
         Code.eval_string("use 42")
       end

    test "put_in/3" do
      users = %{"john" => %{age: 27}, "meg" => %{age: 23}}

      assert put_in(users, ["john", :age], 28) ==
             %{"john" => %{age: 28}, "meg" => %{age: 23}}

      assert_raise FunctionClauseError, fn ->
        put_in(users, [], %{})


    test "invalid match" do
      a = List.first([3])

      assert_raise MatchError, fn ->
        destructure [^a, _b, _c], a_list()
      end
