extract generic plugin pass from Ivory.Language.Plugin