[erlang-questions] alternative syntax to '-spec' attributes.

Eric Merritt <>
Tue Jan 29 21:05:27 CET 2013

Thanks Kostis and Anthony thats exactly what I was looking for.


On Tue, Jan 29, 2013 at 2:31 AM, Kostis Sagonas <> wrote:
> On 01/29/2013 01:49 AM, Eric Merrit wrote:
>> There seems to be an alternative syntax for specs. Lets say we have a spec
>> declared in the traditional way
>> -spec to_boolean(term()) ->  boolean().
>> We could also declare it the following way and have it be consumed without
>> problems
>> -spec to_boolean/1 :: (term()) ->  boolean().
>> I like the second way quite a bit since it visually distinguishes between
>> spec declarations and function declarations better then the traditional
>> syntax. However, I recently went looking for documentation on this and now
>> can't find it. So I am wondering what its status is.
> As Antony also mentioned, the :: version is the old spec syntax. It's still
> accepted by the parser, but this is only for reasons of backwards
> compatibility and will most likely become obsolete soon.
> Besides a bit more verbose (as you can see from your example), another
> reason to switch to the new one was that the old one required a sanity check
> that the arity specified in the function name actually matches the number of
> argument types specified by the programmer. The newer one does not need
> this.
> Kostis
> _______________________________________________
> erlang-questions mailing list
> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list