You use 'and':

type firstType = 
     | T1 of secondType

and secondType =
     | T1 of firstType

I figured it. It's:


type firstType = 
     | T1 of secondType
     //................

and secondType =
     | T1 of firstType  
     //................   

The limitation is that the types have to be declared in the same file.