I found a way to do this thanks to this blog !
type D = class inherit B new () = { inherit B() } new (i : int) = { inherit B(i) } new ((i,f) : int*single) = { inherit B(i, f) } end
Yes, it's a little cumbersome, but, as Brian said, this is not the majority of cases.
EDIT: Actually class / end keywords are not required for this (so I am returning what I said about cumbersomeness). As Brian said in his blog here , F # usually defines a type of a specific type, making these tokens unnecessary / redundant.
type D = inherit B new () = { inherit B() } new (i : int) = { inherit B(i) } new ((i,f) : int*single) = { inherit B(i, f) }
source share