This could really use some adjustment. We have some tricky datatypes to represent: - i64 vs. f64 vs. AsRef<[u8]> - Option vs not option - Reference vs owned This is currently quite messy, these modules will need some cleanup