Hello Dan, Saturday, November 4, 2006, 3:49:13 AM, you wrote: > You might want to rename your (&&&) and (|||), though, since they clash > with those defined in Control.Arrow.
> I found that by defining (???) then way I did, I could use > (Control.Arrow.|||) as-is for the second part. i just not use arrows because i don't understand them. my definitions of "&&&" and "|||" is like those in C/perl/ruby and most times i use them alone: debugging &&& debug_info, first_time ||| putStrLn "" in the far future, i will be glad to see && and || redefined in this way (or some like this; it should just provide ruby's look&feel plus extensibility). although for my own program this may be solved by just not importing Prelude. hmmm, i should think about it.. but && and || functions is not exactly the same as ?: operator (nor in C, nor in standard Haskell, nor in my implementation). with these operations condition is tested _twice_ and if second argument has "false" value, third one will be returned anyway: True && False || True => True True ? False : True => False btw, it may be extended slightly more by adding application version: a &&. f = a &&& (f a) example: str &&. ("debug info: "++) now such function named unlessNull that is not so neat -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe