partial struct flattener