Using default values for option variables, the dotproduct of empty lists is a 1x0 matrix: (%i1) [].[]; (%o1) matrix([]) I speculated that [].[] would be an empty sum of an empty product, so [].[] --> 0. What's the logic behind [].[] --> matrix([])? --Barton