
Max's idea (see below) of a second where clause is cute, but
not sanctioned by Haskell syntax.
Iavor wrote, "It would be quite arbitrary to restrict this only
to instances."
Actually what I have in mind is to make the language MORE
consistent, by eliminating distinctions between instance-wheres
and ordinary declaration-wheres. Currently instance-wheres may
only declare class methods, while declaration-wheres may declare
variables at will. Also instance-wheres may not declare type
signatures, while declaration-wheres may. I propose dropping
these restrictions on instance-wheres.
Hazard: Adding a method to an existing class could accidentally
capture a name that was previously local to an instance-where.
Capture can be prevented by declaring type signatures for local
variables. The compiler might warn when such defensive
declarations are lacking.
Doug
On Mon, 29 Apr 2013 15:56 Iavor Diatchki wrote: You could probably get away with just using two "where" clauses: instance Foo a where
bar = ...
where
auxilliary = ... On 28 April 2013 18:42, 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 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 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 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 Content-Type: text/html; charset=UTF-8