use $type$ for now as a poor version of two dynamic namespaces
remove List from bindings
arity check on generated functions for data
Add type checking to the pipeline