Peter,

I think that's correct. I would really love to be able to make alternate constructors and views. I know we can make "specialized" constructors, but I don't think there's a good way to pattern match on these. It would be pretty sweet if we could.

/jve


On Fri, Jan 16, 2009 at 11:14 AM, Peter Verswyvelen <bugfact@gmail.com> wrote:
As far as I understand, record syntax and data accessor only give access to the data, they don't provide alternate views / interpretations of the data, something that Active Patterns or view patterns in Haskell do?

On Fri, Jan 16, 2009 at 4:27 PM, Henning Thielemann <lemming@henning-thielemann.de> wrote:

On Fri, 16 Jan 2009, John Van Enk wrote:

2009/1/16 Peter Verswyvelen <bugfact@gmail.com>

[...]

After a while you decide that you need to change the Bla data type, maybe
give Dog more fields, maybe completely redesign it, maybe not exposing it,
but you want to keep existing code backwards compatible. With F# you can
write Active Patterns for the old Dog and Cat constructors, so all existing
code remains compatible. At least that is the way I understand it, but I
have not actually worked yet with Active Patterns, will do so soon :)

You get something similar with the record syntax (though, probably still not
quite as powerful as the active patterns):

... or use data-accessor package.