listLengthCmp :: [a] -> Int -> Ordering
listLengthCmp = atLength atLen atEnd
 where
  atEnd = LT    -- Not yet seen 'n' elts, so list length is < n.

  atLen []     = EQ
  atLen _      = GT
listLengthCmp :: [a] -> Int -> Ordering
listLengthCmp = atLength atLen atEnd
 where
  atEnd = LT    -- Not yet seen 'n' elts, so list length is < n.

  atLen []     = EQ
  atLen _      = GT
listLengthCmp = atLength atLen atEnd
 where
  atEnd = LT    -- Not yet seen 'n' elts, so list length is < n.

  atLen []     = EQ
  atLen _      = GT