patterns with many arguments