use 'template' keyword to treat 'operator ()' as a dependent template name in TaggedRule class