The Class:

```
type NotAbstract () = 
    member this.WithOptionalParameters (x, ?y) = 
        let y = defaultArg y 10
        x + y

```

has the following type signature:

```
type NotAbstract =
  class
    new : unit -> NotAbstract
    member WithOptionalParameters : x:int * ?y:int -> int
  end

```

However, this does not work:

```
[<AbstractClass>]
type AbstractExample () = 
    abstract WithOptionalParameters: int * ?int -> int /// Ouch...

type NotAbstract () = 
    inherit AbstractExample ()
    override this.WithOptionalParameters (x, ?y) = 
        let y = defaultArg y 10
        x + y

```

How to write the proper type signature in the abstract definition of a function with optional parameters? I did not find any hint [here](http://msdn.microsoft.com/en-us/library/dd483471.aspx). 

PS: I am aware that (similar) result could be achieved with [polymorphism](https://stackoverflow.com/questions/1031273/what-is-polymorphism)