pToken' :: Lexer Token
pToken' = choice
    [ pPunct
    , marking "addr" $ TokenAddress <$> try pAddress
    , marking "pk" $ TokenPublicKey <$> try pPublicKey
    , marking "stakeholder" $ TokenStakeholderId <$> try pStakeholderId
    , marking "hash" $ TokenHash <$> try pHash
    , marking "block-v" $ TokenBlockVersion <$> try pBlockVersion
    , string "~software~" *> (TokenSoftwareVersion <$> try pSoftwareVersion)
    , marking "filepath" $ TokenFilePath <$> pFilePath
    , marking "num" $ TokenNumber <$> pScientific
    , marking "str" $ TokenString <$> pText
    , marking "ident" $ pIdent
    ] <?> "token"
pToken' :: Lexer Token
pToken' = choice
    [ pPunct
    , marking "addr" $ TokenAddress <$> try pAddress
    , marking "pk" $ TokenPublicKey <$> try pPublicKey
    , marking "stakeholder" $ TokenStakeholderId <$> try pStakeholderId
    , marking "hash" $ TokenHash <$> try pHash
    , marking "block-v" $ TokenBlockVersion <$> try pBlockVersion
    , string "~software~" *> (TokenSoftwareVersion <$> try pSoftwareVersion)
    , marking "filepath" $ TokenFilePath <$> pFilePath
    , marking "num" $ TokenNumber <$> pScientific
    , marking "str" $ TokenString <$> pText
    , marking "ident" $ pIdent
    ] <?> "token"
pToken' = choice
    [ pPunct
    , marking "addr" $ TokenAddress <$> try pAddress
    , marking "pk" $ TokenPublicKey <$> try pPublicKey
    , marking "stakeholder" $ TokenStakeholderId <$> try pStakeholderId
    , marking "hash" $ TokenHash <$> try pHash
    , marking "block-v" $ TokenBlockVersion <$> try pBlockVersion
    , string "~software~" *> (TokenSoftwareVersion <$> try pSoftwareVersion)
    , marking "filepath" $ TokenFilePath <$> pFilePath
    , marking "num" $ TokenNumber <$> pScientific
    , marking "str" $ TokenString <$> pText
    , marking "ident" $ pIdent
    ] <?> "token"