This document proposes a functional programming approach called PFQ/lang for packet processing on Linux middleboxes. PFQ/lang defines packet processing as compositions of monadic functions. It aims to improve programmability, interoperability, and multi-core support. The runtime executes PFQ/lang programs on the PFQ framework for accelerated packet I/O. Early results show PFQ/lang can express common use cases and achieves line-rate performance on real hardware.