pulled pattern_instance_new into proc / invoke