adjust box/c to use the val-first-projection protocol