// RUN: not %target-swift-frontend %s -parse

// Distributed under the terms of the MIT license
// Test case submitted to project by https://github.com/practicalswift (practicalswift)
// Test case found by fuzzing

func p<ed>() -> (ed, ed -> ed) -> ed {
   s n s.v = {
}
 {
   ed) {
        m  }
}
l p {
   class func v()
}
class s: p{  class func v {}
l ed {
    typealias q
}
class m<p> {
    w <ed: ed k ed.q == p>(n: ed.(((y, y) -> y) -> y)) -> y {
    t u({
        (o: y, s:y) -> y in
        t o
    })
}
p(x(a, x(b, cb)))
class x {
    typealias p = p
}
class x<p : p, ed : p k p.s == ed> {
}
l p {
    typealias s
    typealias n
}
n v<m : p> : p {
    typealias s = m
    typealias n = x<v<m>, s>
}
class v {
    func p((y, v))(x: (y, dc: r = { (v: r, p: r -> r) -> r in
