[erlang-patches] tid() is not a predefined type anymore

Per Hedeland <>
Wed Jun 2 23:21:08 CEST 2010


Thanks a lot for this! Applied with minor tweaks to our R13B03-ish OTP.
However seeing the actual list of predefined types for the first
time:-), I think there are a few more of them that falls in the same
category as tid(), and should be made module-specific for the same
reasons:

                {array, 0},
                {dict, 0},
                {digraph, 0},
                {gb_set, 0},
                {gb_tree, 0},
                {queue, 0},
                {set, 0},

E.g. having a predefined type queue(), which can only be defined as "The
opaque type returned by new/0 in the OTP module called 'queue'", and
which prevents all use of that type name in user-written modules (where
it could otherwise exist peacefully as mod:queue()), really doesn't seem
like a good idea to me. I won't argue this point further though.:-)

--Per

Kostis Sagonas <> wrote:
>
>There is a patch that removes tid() from the list of predefined types.
>It can be included as is provided that the 'export_type' branch is first 
>included in OTP.  Otherwise, one has to manually remove the line which 
>reads:
>
>-export_type([tab/0, tid/0]).
>
>from file ets.erl
>
>
>	git fetch git://github.com/kostis/otp.git ets-tid-type
>
>Kostis


More information about the erlang-patches mailing list