Given the following type
type WorkflowStep<'next, 'prev, 'cancel> =
abstract member Next : unit -> 'next
abstract member Prev : unit -> 'prev
abstract member Cancel : unit -> 'cancel
I'd like to express the fact that 'next, 'prev and 'cancel should also be of type WorkflowStep or of type unit is this possible to encode on the type level with F#?