f :: forall p0 c b d y . (forall p x . p (B (Bl x)) -> p (Bl (B x))) ->
     (forall p x . p (B ( c (D x))) -> p (Bl ( c (Dl x)))) ->
     (forall p x . p (Dl (D x)) -> p (D (Dl x))) ->
     (forall p x . p (Al (Bl (Bl x))) -> p (Al (X x))) ->
     (forall p x . p (X (Bl x)) -> p (B (X x))) ->
     (forall p x . p (B ( b (Cl ( d (D x))))) -> p (Bl (Bl ( c (Dl (Dl x)))))) ->
     (forall p x . p (Dl (Y x)) -> p (Y (D x))) ->
     (forall p x . p (Dl (Dl (El x))) -> p (Y (El x))) ->
     (forall p x . p (X ( c (Y x))) -> p ( b (Cl ( d x)))) ->
     p0 (Al (Bl (Bl ( c (Dl (Dl (El y)))))))

f = undefined
f :: forall p0 c b d y . (forall p x . p (B (Bl x)) -> p (Bl (B x))) ->
     (forall p x . p (B ( c (D x))) -> p (Bl ( c (Dl x)))) ->
     (forall p x . p (Dl (D x)) -> p (D (Dl x))) ->
     (forall p x . p (Al (Bl (Bl x))) -> p (Al (X x))) ->
     (forall p x . p (X (Bl x)) -> p (B (X x))) ->
     (forall p x . p (B ( b (Cl ( d (D x))))) -> p (Bl (Bl ( c (Dl (Dl x)))))) ->
     (forall p x . p (Dl (Y x)) -> p (Y (D x))) ->
     (forall p x . p (Dl (Dl (El x))) -> p (Y (El x))) ->
     (forall p x . p (X ( c (Y x))) -> p ( b (Cl ( d x)))) ->
     p0 (Al (Bl (Bl ( c (Dl (Dl (El y)))))))
f = undefined
f = undefined