Я пытаюсь создать интерфейс, который требует дополнительных методов поверх IEvent, например:
type Varying<'t> =
abstract member Get : unit -> 't
abstract member Set : 't -> unit
abstract member AddHandler : Handler<'t> -> unit
abstract member RemoveHandler : Handler<'t> -> unit
member v.Add(f) = v.AddHandler(new Handler<_>(fun _ x -> f x))
interface IEvent<'t> with
member c.AddHandler(h) = c.AddHandler(h)
member c.RemoveHandler(h) = c.RemoveHandler(h)
member c.Add(f) = c.Add(f)
Я добавил Get
& Set
методы. Проблема в том, что компилятор F # хочет, чтобы я реализовал абстрактные члены:
Реализация абстрактного члена Varying.AddHandler: Handler <'t> -> unit'
не предоставлена.
Но смысл этого типа в том, что член является абстрактным. Что я делаю не так?