Describe the bug
The following code passes, despite transmuting memory in undefined ways
let mut builder = UnionBuilder::new_sparse(2);
builder.append::<Float32Type>("a", 1.0).unwrap();
builder.append::<Int32Type>("a", 1).unwrap();
let array = builder.build().unwrap();
To Reproduce
Test above
Expected behavior
UnionBuilder::append should error if the types don't match
Additional context
Add any other context about the problem here.