This is the typical declaration of an abstract member in F#:
abstract member createEmployee : string -> string -> Employee
You define the
The syntax for this is super fiddly IMO. I wanted to do this with the parameters as a tuple (like a C# method) and only through trial and error did I find this to work:
abstract member PutChar : x:int * y:int * c:char * flag:Background -> unit
And this uglier variant also works:
abstract member PutChar : x : int * y : int * c : char * flag : Background -> unit
Below are things that all felt reasonable but failed with the same error - Unexpected symbol ':' in member definition.
:
// ALL BAD vvv
abstract member PutChar : (x:int * y:int * c:char * flag:Background) -> unit
abstract member PutChar : (x:int, y:int, c:char, flag:Background) -> unit
abstract member PutChar : (x:int) * (y:int) * (c:char) * (flag:Background) -> unit
// ALL BAD ^^^