fix pre-commit script
apply clang-format to all code
add completion protocol (null implementation)
call complete on chained reducers
implement completion in mapping transducer reducer