* Maybe there is a way to define a default implentation of an ABC or a Protocol?
* (Promising) Maybe we can cop out. If it's a Protocol, dispatch to a proto-defined hook that passes the buck to the function writer. I.e. add a placeholder "type" to arg_specs. That "type" requires the user to handle the initializer themselves.
+I think I can catch protocols thusly:
+
+``` python
+elif hasattr(prm.annotation, 'is_protocol' and prm.annotation._is_protocol):
+ do_thing()
+```
+
+You can use `prm.annotation.__abstractmethods__` to determine what methods need to be defined.
+
### Parser definition vs Runtime arguments
* If you look through Union and define the parser based on the first type...