On Saturday 18 November 2006 00:37, Neil Mitchell wrote:
> Hi
>
> > > How controversial would a proposal to {-# DEPRECATE fromJust #-} be, in
> > > favour of:
> > >
> > >     Just _ = x  -- which will give you the precise line number
> > >
> > > It seems to me this is one cause of mysterious newbie errors we
> > > could easily discourage, with little harm.
> >
> > Btw, I'm not seriously suggesting removing it ;)
> > It could be discouraged ever so slightly in the haddocks though.
>
> I strongly disagree. If we are removing things that confuse newbies
> why not start with higher rank types, MPTC's and GADT's ;)
>
> fromJust is simple, useful and clear. What you mean is that
> implementations aren't very good at debugging this. It seems unfair to
> blame partial functions for the lack of a debugger. If a call stack
> was automatically output every time a fromJust failed would this even
> be something people complained about?

Well, I strongly disagree. :)

I suspect I would be classified as a newbie relative to most posters on this 
list but here's my thoughts anyway...

I chose to learn haskell largely because I thought the static type safety 
would help eliminate bugs, I've never once been happy when I've needed to 
fire up a debugger or add trace statements and I hoped they would become 
things of the past.

One of my initial responses to haskell was disappointment upon seeing head, 
fromJust and the like.  'Those look nasty', I sez to meself.
From day one I've tried to avoid using them.  Very occasionally I do use them 
in the heat of the moment, but it makes me feel unclean and I end up having 
to take my keyboard into the bathroom for a good scrubbing with the sandsoap.

The disappointment has pretty much changed to frustration since reading Oleg, 
and others, type-hackery work.  I realise the problems are just poor/limited 
usage of haskell, not inherent in the language.  Unfortunately I can 
understand the 'right' solutions but still have trouble formulating them 
myself.  I'm hoping that if I hang out in the type-hackery 'hot zone' long 
enough I'll start emitting enough picoOlegs myself to solve simple 
problems. ;)

My view is that if I can reason about my program and know a static property I 
want to be able to stamp this into the types and have my reasoning validated 
during compilation.  
But existing library code with weak typesafety is a large inertial mass, when 
trying to do something 'right' the interfacing is a daunting prospect.

In general I'd rather have effort go into promoting 'right' solutions, and 
making those solutions easier to express, than going into debuggers 
for 'wrong' solutions.



Daniel
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to