Ok, well, I guess I'm still learning my way around the documentation. It 
has nothing to do with Module.concat() but rather how defmodule deals with 
dynamic names. I found the below in the Kernel#defmodule docs. Sorry for 
the noise, and thank you for the great new language!

--Ian


 ## Nesting

  Nesting a module inside another module affects the name of the nested 
module:
      defmodule Foo do
        defmodule Bar do
        end
      end

  In the example above, two modules - `Foo` and `Foo.Bar` - are created.
  When nesting, Elixir automatically creates an alias to the inner module,
  allowing the second module `Foo.Bar` to be accessed as `Bar` in the same
  lexical scope where it's defined (the `Foo` module).

...


## Dynamic names

  Elixir module names can be dynamically generated. This is very
  useful when working with macros. For instance, one could write:

      defmodule String.to_atom("Foo#{1}") do
        # contents ...
      end

  Elixir will accept any module name as long as the expression passed as the
  first argument to `defmodule/2` evaluates to an atom.
  Note that, when a dynamic name is used, Elixir won't nest the name under 
the
  current module nor automatically set up an alias.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-talk/87ad00a8-aa27-4d04-9188-c373fcecedd0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to