On Fri, Jan 13, 2012 at 8:23 PM, Matthew Farkas-Dyck <strake888 at gmail.com> wrote: > p :: P (p (P pp p)) This is not too far off the original design of Miranda, in which type variable names were drawn from the set {*, **, ***, ...} /g -- "Would you be so kind as to remove the apricots from the mashed potatoes?"