Currently, we validate the inputs and outputs of functions by directly running the validators from function-schemata.
This won't work when users define bespoke validation functions. It also won't work for the Union generic type. Therefore, we must wrap all of these validation functions in Z7s as is done in src/validation.js.