2 ms·
Let's say you have definitions like that: f: Nat -> Nat g: Nat -> Nat h: Nat -> Nat h x = g (x * 2) g x = f (x * 3) f x = x < 0 ? 1 : h
by ajuc 5y ago
Let's say you have definitions like that:
f: Nat -> Nat
g: Nat -> Nat
h: Nat -> Nat
h x = g (x * 2)
g x = f (x * 3)
f x = x < 0 ? 1 : h (x / 4)
And now you change f to be
f x = x < 1 ? 1 : h (x / 4)
How do you do that? There's a cycle in the callgraph. In fact - how do you calculate a hash of a function that calls itself if you need its hash to calculate its hash :)
EDIT: nevermind, recursion is a special case handled differently.