Unfortunately you need to create separate functions for different sized tuples. For example: tupleToList1 :: (a) -> [a] tupleToList1 (x) = [x] tupleToList2 :: (a, a) -> [a] tupleToList2 (x, y) = [x, y] tupleToList3 :: (a, a, a) -> [a] tupleToList3 (x, y, z) = [x, y, z] Unless you use the lens package (which is a rather complex and maybe not very beginner-friendly library). For example: import Control.Lens (1, 2, 3) ^.. each