If comp :: A is defined by comp = bodynonrec for some bodynonrec :: A,
and wrap :: B->A and unwrap :: A->B satisfy any of the non-recursive worker/wrapper
assumptions, then
comp = wrap work
where work :: B is defined by
work = unwrap body
The Non-Recursive Worker/Wrapper Assumptions
There are two different worker/wrapper assumptions
wrap . unwrap
= id
(basic assumption)
wrap (unwrap bodynonrec)
= bodynonrec
(non-rec body assumption)
The Non-Recursive Worker/Wrapper Transformation
The Worker/Wrapper Theorem is simple to specialize to the non-recursive case, and comes
out almost trivially, but is sometimes useful to consider under the same framework
as the original Worker/Wrapper Theorem.