This fails:
noeq
type rtyp : Type0 -> Type u#1 =
| RR : #s:Type0 -> p:(s → Type0) ->rtyp (x:s{p x})
but this works fine:
let test (s:Type0) (p:s -> Type0) : Type0 = x:s{p x}
noeq
type rtyp : Type0 -> Type u#1 =
| RR : #s:Type0 -> p:(s -> Type0) -> rtyp (test s p)
The error message is not that informative, and I also don't know exactly why it fails.