Keyword literal as function apply(:<<) result

Description

Fails:

1 2 3 (let [x [:k1 :k2 :k3]] (m/match [x] [(:k1 :<< first)] :first))
1 2 3 4 Invalid list syntax :<< in (:k1 :<< first). Valid syntax: [[:default :guard] [:or :default] [:default :only] [:default :seq] [:default :when] [:default :as] [:default :<<] [:default :clojure.core.match/vector]]

Work:

1 2 3 4 (let [k1 :k1 x [:k1 :k2 :k3]] (m/match [x] [(k1 :<< first)] :first))

Is it a bug or a feature?
How to match keywords correctly?

Environment

[org.clojure/clojure "1.9.0-beta2"]
[org.clojure/core.match "0.3.0-alpha5"]

Status

Assignee

David Nolen

Reporter

import

Labels

None

Approval

None

Patch

None

Priority

Major
Configure