open System
open System.IO
type IFoo =
abstract member Foo : t:Type * r:TextReader -> obj
abstract member Foo<'t> : TextReader -> 't
type Foo() =
interface IFoo with
member x.Foo(t, reader) = obj()
//member x.Foo<'t>(reader) = obj() :?> 't
when I try to compile this, I get an internal error:
error FS0193: internal error: Method 'Foo' in type 'Foo' from assembly 'FSI-ASSEMBLY, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
Instead, I'd expect the compiler to give me:
error FS0366: No implementation was given for 'abstract member IFoo.Foo : TextReader -> 't'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'.