I feel like at the moment there is a lot of code scattered around that does parsing of some sort, e.g. in steenrod_evaluator, cli_module_constructor and finite_dimensional_module. It would be nice to abstract out some common components to make things more tractable.