I recently wound up with some test code like this let foodefaultbehaviour is needed to access the old behaviour after withredefs foodefaultbehaviour foo fooifnotbar fn filename target if bar target foodefaultbehaviour filename target withredefs foo fooifnotbar . and this works out as expected . It ' s a bit ugly , but significantly better than the version with infinite recursion when I didn ' t letbind the original function <| sep |> Glad you are getting over it . <| sep |> What ' s so bad about it ? It ' s pretty similar to Brawl ' s UI , which was good in my book . <| sep |> A lot of work for what appears to be a one bed one bath home . I doubt they ever plan to sell given the effort they put in though . <| sep |> I guess I mean radical less regarding their exact political positions and more in terms of their attitude towards people on the right .