add type driven wire protocols with boost fusion