Re: Type Specification of net:getnameinfo()
Nalin Ranjan <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CACE+zkKC38dq3_WX4-kfkrD3Y+bQFimaFg-65KxrKO_HQ4gEJQ@mail.gmail.com> |
Thanks a lot Nicolas. Will go through, and then may be express my hunch that this is a way in which details are either leaking and/or is not sufficient at the level of a type spec. But who knows I endup correcting myself after a little follow up. नमस्ते। नलिन रंजन On Tue, Jan 26, 2021, 10:05 PM Nicolas Martyanoff <[email protected]> wrote: > On 2021-01-26 21:46, Nalin Ranjan wrote: > > 2. In this particular case of type specification, the only difference is > in > > one of the parameters of the function. I was also wondering if we could > > have used a union instead to write the same type spec, it would have been > > simpler? > > For example, > > Instead of writing a type spec like this > > > > -ifdef(SOME_PRAGMA_CONDITION) > > SomeVar :: xxx_type(). > > -else > > SomeVar :: yyy_type(). > > > > We could specify the same type spec as: > > SomeVar :: xxx_type() | yyy_type(). > > > > Any reason we preferred the former over the latter? > > If Erlang is compiled without socket support, some types will not exist at > all. Using the preprocessor[1] makes it possible to provide specifications > with types which actually exist, with or without socket support. > > [1] https://erlang.org/doc/reference_manual/macros.html > > -- > Nicolas Martyanoff > http://snowsyn.net > [email protected] >