;; ^ is not an operator in Clojure at all - it is metadata syntax,
;; and bit-xor is a normal function. So an "extra operator" for
;; your own type is, once again, just another named function.
(defrecord Point [x y])
(defn p-pow [p n]
(->Point (long (Math/pow (:x p) n))
(long (Math/pow (:y p) n))))
(def p1 (p-pow (->Point 2 3) 3))
;; p1 is 8, 27
(def p2 (p-pow (->Point 2 3) 2))
;; p2 is 4, 9
(println "p1 is" (:x p1) (:y p1))
(println "p2 is" (:x p2) (:y p2))