Defrost the CakeExpression snow flake by replacing the rather unique way it dealt with types with the same technique used in other Expression classes.