A agree with Dan that some better name for the ('a -> 'b) -> 'a -> 'b atomic would be better but really buy Stephen's argument that the type (unit -> 'a) -> 'a REALLY says what it does. I way prefer this kind of type and this kind of function because the built-in `helper' aspect of the other one is irrelvant to what is really going on and just makes the point a bit less clear.