Base type constraint incorrectly flagged as incompatiable in recursive type definitions
- Dominant language
- F#
- Stars
- 4.3k
- Forks
- 876
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 131
Description
**Repro steps**
F# Interactive version 10.6.0.0 for F# 4.7
```fs
type A<'T>() = class end
type B<'T, 'A when 'A :> A<'T>>() = class end
type C() = inherit A()
and [>)>] C' = class end // error
type [>)>] D() = class end // ok
```
**Expected behavior**
Compiles fine.
**Actual behavior**

Note `D` has no errors.
**Known workarounds**
```diff
-and [>)>] C' = class end // error
+and [>>)>] C' = class end // no error
```
**Related information**
Provide any related information (optional):
* Operating system: Windows 10
* .NET Runtime kind (.NET Core, .NET Framework, Mono): .NET Framework
* Editing Tools (e.g. Visual Studio Version, Visual Studio): VS16.3.8
Contributor guide
Assessment
This issue has not been assessed yet.