-- We can also draw from several lists, for example
allPossibleProducts firstList secondList = [x * y | x <- firstList, y <- secondList]
allPossibleProducts firstList secondList = [x * y | x <- firstList, y <- secondList]
allPossibleProducts firstList secondList = [x * y | x <- firstList, y <- secondList]