   
 (extend-protocol IPeriod
   guangyin.internal.types.ObjectWrapper
-  (period [this] (period @this))
-  (period [this other] (period @this other))
+  (period ([this] (period @this))
+          ([this other] (period @this other)))
   clojure.lang.Keyword
   (period [this] (wrap (fields/periods this)))
   java.time.temporal.TemporalAmount


(extend-protocol ILocalDate
  guangyin.internal.types.ObjectWrapper
  (local-date [this] (local-date @this))
  (local-date [this param] (local-date @this param))
  clojure.lang.Keyword
  (local-date [this] (if (= this :now)
                         (wrap (LocalDate/now))


(extend-protocol IZonedDateTime
  guangyin.internal.types.ObjectWrapper
  (zoned-date-time ([this] (zoned-date-time @this))
                   ([this param] (zoned-date-time @this param))
                   ([date time zone] (zoned-date-time @date time zone)))
  clojure.lang.Keyword
  (zoned-date-time [this] (when (= this :now)
                                (wrap (ZonedDateTime/now))))
