make fst and snd work for Triple as well
don't eval at runtime