Closed AshleyYakeley closed 8 months ago
Subterm: rec b, Maybe. (rec c, b | Maybe. c)
Can do this reduction:
rec b, Maybe (rec c, b | Maybe c)
⇒
b = Maybe c
c = b | Maybe c
⇒
b = Maybe c
c = Maybe c | Maybe c
⇒
rec b, Maybe (rec c, Maybe c | Maybe c)
⇒
Maybe (rec c, Maybe c | Maybe c)
Gets as far as:
rec a, (rec b, Maybe (rec c, b | Maybe c)) | Maybe a
⇒
rec a, (Maybe (rec c, Maybe c | Maybe c)) | Maybe a
⇒
rec a, (Maybe (rec c, Maybe c)) | Maybe a
⇒
rec a, ((rec c, Maybe c) | Maybe a)
Converting to type automata will solve this, per Dolan sec. 7.1.2.
Fixed.
rec a, (rec b, Maybe. (rec c, b | Maybe. c)) | Maybe. a
I believe this is equivalent to
rec a, Maybe a
.