Thank you Alexei for clarifying.

I did not see that you could use the macro in a pattern match like that.
The following is also possible if you want to avoid using a guard:

defmodule B do
  import Record
  defrecord(:bb, a: 1)

  def set(record = bb(), i) do
    bb(record, a: i)
  end
end

The `macro` does provide all the convenience you need.

The only matters outstanding are:

   1. Usage of  `__MODULE__` as the `record` `atom`(without losing the
   macro convenience)
   2. Having the syntax resemble that of defstruct more notation wise, e.g.
   `~B{a: i}` including in terms of updating

Those would make it easier to pick up `defrecord` with all its nuances but
are certainly not critical.

`defrecord` functionality wise is feature complete so I withdraw my
proposal.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" 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-core/CAAkfbUo2PyQRbFK5gHSj0h6D3cSj6_6NoDt%3DnNrYzaGDnPEjqA%40mail.gmail.com.

Reply via email to