In categorizing linguistic expressions, atomic types stand for phrases that one can think of as grammatically ‘complete’. Examples, for English, could be s for declarative sentences (‘Mary dreams’,…), np for noun phrases (‘Mary’, ‘the girl’,…), n for common nouns (‘girl’, ‘smart girl’,…). Division expresses incompleteness: an expression with type A\B (B/A) will produce a phrase of type B when it is put together with a phrase of type A to its left (right).  Product types A ⊗ B explicitly express the formation of a complex phrase out of constituent parts of type A and B in that order.  So if ‘Mary’ is typed as np and the verb ‘dreams’ as np\s, we obtain s for the combination ‘Mary dreams’ by multiplying out these types: np ⊗ (np\s). Similarly for the combination ‘the girl dreams’, where one would start from a type np/n for the determiner and n for ‘girl’: ((np/n) ⊗ n) ⊗ (np\s).