To be picky &check_updates/1 is actually just syntactic sugar for fn (x) -> check_updates(x) end. All the & capture operator does is transform to an anonymous function. It has some syntax limitations when using it to include arguments, for example when you wanted to create an anonymous function with 0 arguments.