a
requires(method)
в ролях? Ну это ... ну это не совсем то.Помимо того, что это похоже на множественное наследование в Perl, для трейтов ещё обычно более удобный поиск реализации методов делается (не DFS, как в Perl), что избавляет от Diamond problem.