Согласно Erlang Types and Function Specifications, чтобы ограничить тип выходного сигнала функции в ::
ограничения могут быть использованы в when
части -spec
атрибута:Какова последняя Erlang версия требует is_subtype
-spec id(X) -> X when X :: tuple().
Для обеспечения обратной совместимости можно также использовать:
-spec id(X) -> X when is_subtype(X, tuple()).
Но использование is_subtype не рекомендуется (не рекомендуется). Какова последняя версия Erlang, требующая использования is_subtype вместо ::?
Если вам интересно с практической точки зрения, просто используйте новую нотацию, не беспокоясь – Lol4t0
Мне нужно поддерживать старые версии Erlang и знать, если я могу использовать текущую нотацию ... – jvf