relaxing instance declarations

2013-04-28 Thread Doug McIlroy
Is there any strong reason why the where clause in an instance 
declaration cannot declare anything other than class
operators? If not, I suggest relaxing the restriction.

It is not unusual for declarations of class operators to
refer to special auxiliary functions. Under current rules
such functions have to be declared outside the scope in
which they are used.

Doug McIlroy

___
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime


Re: relaxing instance declarations

2013-04-28 Thread Edward Kmett
You can always put those helper functions in the class and then just not
export them from the module.


On Sun, Apr 28, 2013 at 10:49 AM, Doug McIlroy d...@cs.dartmouth.eduwrote:

 Is there any strong reason why the where clause in an instance
 declaration cannot declare anything other than class
 operators? If not, I suggest relaxing the restriction.

 It is not unusual for declarations of class operators to
 refer to special auxiliary functions. Under current rules
 such functions have to be declared outside the scope in
 which they are used.

 Doug McIlroy

 ___
 Haskell-prime mailing list
 Haskell-prime@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-prime

___
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime


Re: relaxing instance declarations

2013-04-28 Thread Doug McIlroy
Not always. For example, you can't mess with the declaration
of a standard class, such as Num.

On Sun, Apr 28, 2013 at 12:06 PM, Edward Kmett ekm...@gmail.com wrote:

 You can always put those helper functions in the class and then just not
 export them from the module.

On Sun, Apr 28, 2013 at 10:49 AM, Doug McIlroy d...@cs.dartmouth.eduwrote:

 Is there any strong reason why the where clause in an instance
 declaration cannot declare anything other than class
 operators? If not, I suggest relaxing the restriction.

 It is not unusual for declarations of class operators to
 refer to special auxiliary functions. Under current rules
 such functions have to be declared outside the scope in
 which they are used.

 Doug McIlroy

___
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime


Re: relaxing instance declarations

2013-04-28 Thread Edward Kmett
Makes sense. I'm not sure what a good syntactic story would be for that feature 
though. Just writing down member names that aren't in the class seems to be too 
brittle and error prone, and new keywords seems uglier than the current 
situation.

Sent from my iPad

On Apr 28, 2013, at 1:24 PM, Doug McIlroy d...@cs.dartmouth.edu wrote:

 Not always. For example, you can't mess with the declaration
 of a standard class, such as Num.
 
 On Sun, Apr 28, 2013 at 12:06 PM, Edward Kmett ekm...@gmail.com wrote:
 
 You can always put those helper functions in the class and then just not
 export them from the module.
 
 On Sun, Apr 28, 2013 at 10:49 AM, Doug McIlroy d...@cs.dartmouth.eduwrote:
 
 Is there any strong reason why the where clause in an instance
 declaration cannot declare anything other than class
 operators? If not, I suggest relaxing the restriction.
 
 It is not unusual for declarations of class operators to
 refer to special auxiliary functions. Under current rules
 such functions have to be declared outside the scope in
 which they are used.
 
 Doug McIlroy

___
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime