Module definition

(defmodule name
  (export (f 2) (g 1) ... )
  (export all)
  (import (from mod (f1 2) (f2 1) ... )
          (rename mod ((f1 2) sune) ((f2 1) kurt) ... ))
  (import (prefix mod mod-prefix))              - NYI
  (attr-1 value-1 value-2)
  ... )

There can be multiple export and import declarations within module declaration. The (export all) declaration is allowed together with other export declarations and overrides them. Other attributes which are not recognised by the compiler are allowed and are simply passed on to the module and can be accessed through module_info/0/module_info/1.