add some {-# LANGUAGE BangPatterns #-} to mollify GHC