-- Following are several valid expressions. -- They produce a result and hence they should return expected results () (1) (1,2) (1,True) fst (1,2) fst (1,True) snd (1,2) snd (1,True) -- there are 50 components (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49) (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29) (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19) -- and many more with heterogeneous types. :type (1,2,3,4) :type (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49) :symbol (,,,) :symbol (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)