Basic Ideas --- Construction Example: append append(x,y) = case x of nil -> y Cons[x1,xs] -> Cons[x1,append(xs,y)] Find an outermost function call ↓ append(x,y) = case x of nil -> y Cons[x1,xs] -> Cons[x1,DUMMY]append(xs,y)