createP ((k,w):xs) !q = createP xs q'
  where
    !pre = P.newPrecedence w
    !v = k
    !q' = P.enqueue k pre v q

----------------------------------------------------------------
createP ((k,w):xs) !q = createP xs q'
  where
    !pre = P.newPrecedence w
    !v = k
    !q' = P.enqueue k pre v q

----------------------------------------------------------------
createP ((k,w):xs) !q = createP xs q'
  where
    !pre = P.newPrecedence w
    !v = k
    !q' = P.enqueue k pre v q

----------------------------------------------------------------