[erlang-questions] OTP-9649 and further changes

Björn Gustavsson bgustavsson@REDACTED
Mon Jan 23 11:25:32 CET 2012

On 1/10/12, Yurii Rashkovskii <yrashk@REDACTED> wrote:
> Hi,
> I was wondering if anybody (especially from the OTP team) can shed
> some light on the following subject.
> In R15 we've got this:
> OTP-9649  Tuple funs (a two-element tuple with a module name and a
> 	      function) are now officially deprecated and will be removed
> 	      in R16. Use 'fun M:F/A' instead. To make you aware that your
> 	      system uses tuple funs, the very first time a tuple fun is
> 	      applied, a warning will be sent to the error logger.
> Which is fine.
> But I was wondering if there's any word out about the fate of tuple
> modules? The ones like {erlang}:element(1). Are they expected to be
> kept around? (I certainly hope they are :)

No, we don't expect to keep them.

As pointed out by others, "tuple modules" is just an implementation
detail of parameterized modules (which is an experimental feature).

We have not reached a decision yet, but in the future we expect
we will do one of two things:

* Remove parameterized modules completely from the compiler
and run-time system.


* Implement parameterized modules properly by creating a new
data type, both to allow better type checking by Dialyzer, and
to possibly improve performance.


Björn Gustavsson, Erlang/OTP, Ericsson AB

More information about the erlang-questions mailing list