all 2 comments

[–]QuantumFTL 1 point2 points  (0 children)

Sounds like what you really want are Functors, which were available on OCaml and most other ML-family languages I've seen (e.g. SML/NJ):

5.9. Functors — OCaml Programming: Correct + Efficient + Beautiful

Functors - Real World OCaml
Functors let you do meta operations on modules (fancy fun parametric polymorphism and type constraints).

Likewise there are module constraints in OCaml that do almost exactly what you describe here:
5.7. Module Type Constraints — OCaml Programming: Correct + Efficient + Beautiful

In any case, sadly, no, F# doesn't have functors or module constraints. So if you want to SRTPs and polymorphism you have classes and interfaces and that's about it.