use functional in v0.8.x in Xcode/clang