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