fib = fib' 1 1 where fib' x y = & x :: fib' y (x + y)