Derive editors for data types