Yes, this is indeed the point. Right now we express properties that a type class should obey, but there is no compiler assistance to prove or verify them.

A compiler aware of "properties" can do additional symbolic manipulation to increase performance. Surely there has been some research in this area already.

Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net    |    877-376-2724 x 101

On Feb 19, 2009, at 3:35 AM, Alberto G. Corona wrote:



2009/2/19 Wolfgang Jeltsch <g9ks1...@acme.softbase.org>
Am Donnerstag, 19. Februar 2009 02:22 schrieb sylvain:
> Haskell is a nice, mature and efficient programming language.
> By its very nature it could also become a nice executable formal
> specification language, provided there is tool support.

Wouldn't it be better to achieve the goals you describe with a dependently
typed programming language?

But I wonder how a dependent typed language can express certain properties, for example, the distributive property between the operation + and * in a ring or simply the fact that show(read x)==x. As far as I understand, a dependent type system can restrict the set of values for wich a function apply, but it can not express complex relationships between operations. My knowledge on dependent types is very limited. I would like to be wrong on this.

The point is that permits the automatic checking of such properties at the class level (or module level) are critical, to make sure that derived instances agree with that. This would be very good to feel confident and program at higuer levels of abstraction.

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

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

Reply via email to