 do
    sc:vk:caps:letters ← lift readLine
    Key
      <$> parseScancode sc
      <*> (Just <$> parseShortcutPos vk)
      <*> pure []
      <*> traverse p
klcKeys ∷ (Logger m, Parser m) ⇒ m [Key]
klcKeys = do
    try $ spacing *> string "LAYOUT" *> endLine *> pure ()
    catMaybes <$> many (isHex *> klcKey)
klcKeys = do
    try $ spacing *> string "LAYOUT" *> endLine *> pure ()
    catMaybes <$> many (isHex *> klcKey)