On Tue, Sep 05, 2006 at 12:11:20PM +0100, Ross Paterson wrote: > [..] > You seem to be using special instances to do two things: add spacing and > remove extraneous parentheses. A neater way to do the latter would be > to use the precedence parameter of showsPrec for Term to control whether > the parentheses are added in the first place, e.g. (untested) > > showsPrec p t = > (case t > of > VarT v -> shows v > App f [] [] -> showString (name f) > App f [] [r] -> showParen (p > app_prec) $ > showString (name f) . showChar ' ' . > showsPrec (app_prec+1) r > ... > where app_prec = 10
Thank you very much. I have to study this. Because I always defined Show via showsPrec, and also was always missing of what is the first argument of showsPrec. _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users