carve up proto::functional namespace