two bugs: float32 case not handled, and interfaces not always unboxed. Start at _actual set of tests_