tags:

views:

102

answers:

2

I want to declare two classes that are associated, therefore I am declaring them together linked by an 'and'. Each has different attributes but this code is not working ("Unexpected keyword 'and' in definition" error at keyword 'and'. How should I declare the attributes of the second class?

[<AbstractClass>]
type foo() =
  abstract member fun1 : foo -> foo2
[<Serializable>]
and foo2() = class
  member x.bar y = y
end
+5  A: 

It works for me. Did you do open System?

open System

[<AbstractClass>]
type foo() =
  abstract member fun1 : foo -> foo2
and [<Serializable>] foo2() = class
  member x.bar y = y
end

Edit: Ah, it seems that the second attribute should be AFTER the and.

Stringer Bell
+2  A: 

Yes, I opened System and yes the solution is to place it after the and.

Ta!

Bernadette