Pregroup grammars.  Pregroups are an algebraic version of compact bilinear logic (Lambek 1993) obtained by collapsing the tensor and cotensor operations.  Pregroup grammars were introduced in Lambek 1999 as a simplification of the original Syntactic Calculus L. They have since been used to build computational fragments for a great variety of languages by Lambek and co-workers. A pregroup is a partially ordered monoid in which each element a has a left and a right adjoint, al, ar, satisfying ala → 1 → aal and aar → 1 → ara, respectively.  Type assignment takes the form of associating a word with one or more elements from the free pregroup generated by a partially ordered set of basic types.  For the connection with categorial type formulas, one can use the translations a/b = abl and b\a = bra. Parsing, in the pregroup setting, is extremely straightforward. Lambek (1999) proves that one only has to perform the contractions replacing ala and ala by the multiplicative unit 1.  This is essentially a check for well-bracketing — an operation that can be entrusted to a pushdown automaton. The expansions 1 → aal and 1 → ara are needed to prove equations like (ab)l = blal.  We have used the latter to obtain the pregroup version of the higher-order relative pronoun type (n\n)/(s/np) in the example below.