 # syntax as `unquote(key)(record)` wouldn't be valid (as Elixir
 # allows you to parenthesis just on specific cases as `foo()`
 # and `foo.bar()`)
-def getters_and_setters([{ key, _ }|t], i, acc) do
+defmacro getters_and_setters([{ key, _ }|t], i, acc) do
   i = i + 1
 
   contents = quote do

#       { FileInfo, Orddict.fetch(opts, :atime, nil), Orddict.fetch(opts, :mtime, nil) }
#     end
#
def initializers(name, values) do
  # Get default values from the dictionary.
  defaults  = Orddict.values(values)


  getters_and_setters(t, i, [contents|acc])
end

defmacro getters_and_setters([], _i, acc), do: acc