check fixed encoding before huge switch case - saves ~100ns in bench
reflect.Value -> codegen
the ast parsing (sort of) works now
functional testing and benchmarking