The lack of a move constructor in GLProgram was causing Map reallocations to delete their owned shaders/programs.