Type design question