Allocators are a dependency of anything that allocates, this involves functions and types (via their constructor, which is a type of function.) We used to make the default constructor of types delegate to another constructor taking an allocator and passing in the system allocator, with the same behavior for functions too, where an allocator-less function would just tail call the one taking an allocator and pass in the system allocator. This was very convenient in general, but turned out to be a bad idea because it's too easy to forget to pass the right allocator to things when you expected it, letting some things use the system allocator when they shouldn't of. Starting in commit a3177f9 these convenience constructors and functions are being removed. Eventually we'd like no implicit allocators for anything.
Allocators are a dependency of anything that allocates, this involves functions and types (via their constructor, which is a type of function.) We used to make the default constructor of types delegate to another constructor taking an allocator and passing in the system allocator, with the same behavior for functions too, where an allocator-less function would just tail call the one taking an allocator and pass in the system allocator. This was very convenient in general, but turned out to be a bad idea because it's too easy to forget to pass the right allocator to things when you expected it, letting some things use the system allocator when they shouldn't of. Starting in commit a3177f9 these convenience constructors and functions are being removed. Eventually we'd like no implicit allocators for anything.