[Haskell-cafe] multiple declarations error in Haskell - should it be relaxed?

Richard Eisenberg eir at cis.upenn.edu
Sun Nov 30 20:05:35 UTC 2014


This seems reasonable to me. If you want this, post a feature request at https://ghc.haskell.org/trac/ghc/newticket

Richard

On Nov 28, 2014, at 6:44 AM, Andrew Butterfield <Andrew.Butterfield at scss.tcd.ie> wrote:

> Condsider the following Haskell program (fragment):
> 
> f 0 = “zero”
> g 0 = “NULL”
> f n = “non-zero”
> g n = “PRESENT”
> 
> This will result in two “Multiple Declaration” errors.
> There is a  good motivation for this - disallowing such an interleaving
> of declarations makes it easy for the compiler to capture a common
> typo, namely errors of the following  form - here an attempt to define
> a single function called myFun.
> 
> myFun 0 = “zero”
> myfun 1 = “one”
> myFun n = “too big!”
> 
> However I have use-cases where it would be nice to interleave as per
> the first example above - with markedly different function names.
> It invokes a large case analysis, where I have other auxiliary functions
> associated with each case, but which I’d like to
> (1) have at the top-level for testability
> (2) keep textually local to the case with which they are associated.
> 
> I don’t think there is a language extension to disable the multiple
> declaration check - but would such a feature we possible. I’d see it
> as one which still performs the check, but issues a warning rather
> than an error - particularly if it notices that the interleaved names
> are very similar.
> 
> Is this a reasonable suggestion, or are there other reasons for not doing
> this that I’ve missed?
> 
> Maybe there is a better way to satisfy (1) and (2) above?
> 
> Regards,
>  Andrew
> --------------------------------------------------------------------
> Andrew Butterfield     Tel: +353-1-896-2517     Fax: +353-1-677-2204
> Lero at TCD, Head of Foundations & Methods Research Group
> School of Computer Science and Statistics,
> Room G.39, O'Reilly Institute, Trinity College, University of Dublin
>                          http://www.scss.tcd.ie/Andrew.Butterfield/
> --------------------------------------------------------------------
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 



More information about the Haskell-Cafe mailing list