Can I express recursive relationships of generic types with type constraints in F#?

Viewed 87

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#?

2 Answers
Related