[This line](https://github.com/fsharp/FSharp.Compiler.Service/blob/3f71039cad0712c606c4554c96082031571357c0/src/fsharp/vs/Symbols.fs#L1848): ``` override x.GetHashCode() = hash x ``` `hash` goes to [`Microsoft.FSharp.Core.LanguagePrimitives.HashCompare.GenericHashIntrinsic<'t>`](https://github.com/fsharp/fsharp/blob/8f02ecb0b79947e67e6a0ef9c482d167baf17696/src/fsharp/FSharp.Core/prim-types.fs#L1930), which does a few checks and, having confirmed that `FSharpType` does not implement `IStructuralEquatable`, [falls straight back to `Object.GetHashCode`](https://github.com/fsharp/fsharp/blob/8f02ecb0b79947e67e6a0ef9c482d167baf17696/src/fsharp/FSharp.Core/prim-types.fs#L1897), thus looping the sequence. Because all these calls are tail calls, this doesn't even cause a `StackOverflowException`, simply hangs up forever.