(def-abstract-type name & body)
An abstract type, which can be used in conjunction with deftype+.
An abstract type, which can be used in conjunction with deftype+.
(definterface+ name & body)
An interface that won't evaluate if an interface with that name already exists.
Self parameters and multiple arities are defined like defprotocol, as well as wrapping functions for each, so it can be used to replace defprotocol seamlessly.
An interface that won't evaluate if an interface with that name already exists. Self parameters and multiple arities are defined like defprotocol, as well as wrapping functions for each, so it can be used to replace defprotocol seamlessly.
(defprotocol+ name & body)
A protocol that won't evaluate if an equivalent protocol with the same name already exists.
A protocol that won't evaluate if an equivalent protocol with the same name already exists.
(defrecord+ name & body)
A defrecord that won't evaluate if an equivalent datatype with the same name already exists.
A defrecord that won't evaluate if an equivalent datatype with the same name already exists.
(deftype+ name params & body)
A deftype that won't evaluate if an equivalent datatype with the same name already exists, and allows abstract types to be used.
A deftype that won't evaluate if an equivalent datatype with the same name already exists, and allows abstract types to be used.
(extend-protocol+ proto & body)
A variant of extend-protocol
that allows proto
to be extended over other protocols, as well as classes and nil
.
A variant of `extend-protocol` that allows `proto` to be extended over other protocols, as well as classes and `nil`.
(reify+ & body)
A reify that supports abstract types.
A reify that supports abstract types.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close