
Henning Thielemann wrote:
On Tue, 13 Nov 2007, Dougal Stanton wrote:
On 13/11/2007, Henning Thielemann
wrote: On Tue, 13 Nov 2007, Dougal Stanton wrote:
-- int a = 3; -- int *pa = &a; ampersand :: t -> Pointer t ampersand a = Just a What's bad about using 'ampersand' function as replacement for the constructor 'Just'? I also wanted to use it in pattern matching but have the advantage of all the stuff already written for Maybe.
No problem, write a function like 'maybe' to inspect the data.
Instead of 'f m' with f :: Maybe T -> S f (Just x) = g x f Nothing = h
Yes. It is a problem. Do you write all your code using higher-order functions, never matching explicitly on constructors? I don't. Matching explicitly on constructors is an elegant and easy-to-read way to write programs. It's annoying to have to choose between (a) nicely named constructors and (b) being able to re-use library functions defined for Maybe. Jules