Switch over to passing the 'new' function around rather than the ugly Phantom datatype.