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

Reply via email to