add definitions of fst/snd