io.github.frenchy64.fully-satisfies.non-leaky-macros.clojure.core
Implementations of clojure.core macros that don't leak implementation details.
binding
macro
(binding & args)
dosync
macro
(dosync & exprs)
future
macro
(future & body)
lazy-cat
macro
(lazy-cat & args)
lazy-seq
macro
(lazy-seq & args)
locking
macro
(locking & args)
non-leaky-binding
macro
(non-leaky-binding bindings & body)
Like clojure.core/binding, except body cannot leak try/catch syntax.
non-leaky-delay
macro
(non-leaky-delay & body)
Like clojure.core/delay, except body does not have access to recur target.
non-leaky-dosync
macro
(non-leaky-dosync & exprs)
Like clojure.core/dosync, except body cannot leak pre/post syntax or use
recur target.
non-leaky-future
macro
(non-leaky-future & body)
Like clojure.core/future, except body does not have access to a recur target.
non-leaky-lazy-cat
macro
(non-leaky-lazy-cat & colls)
Like clojure.core/lazy-cat, except body does not have access to a recur target.
non-leaky-lazy-seq
macro
(non-leaky-lazy-seq & args)
Like clojure.core/lazy-seq, except body does not have access to a recur target.
non-leaky-locking
macro
(non-leaky-locking x & body)
Like clojure.core/locking, except body cannot leak try/catch syntax.
non-leaky-pvalues
macro
(non-leaky-pvalues & exprs)
Like clojure.core/pvalues, except exprs don't have access to recur targets.
non-leaky-sync
macro
(non-leaky-sync flags-ignored-for-now & body)
Like clojure.core/sync, except body cannot leak pre/post syntax or access
recur target.
non-leaky-vswap!
macro
(non-leaky-vswap! vol f & args)
Like clojure.core/with-redefs, except vol is only expanded once and .reset never reflects.
non-leaky-with-bindings
macro
(non-leaky-with-bindings binding-map & body)
Like clojure.core/with-bindings, except body cannot leak :pre/post syntax or use (recur).
non-leaky-with-in-str
macro
(non-leaky-with-in-str s & args)
Like clojure.core/with-in-str, except body cannot leak try/catch syntax.
non-leaky-with-loading-context
macro
(non-leaky-with-loading-context & body)
Like clojure.core/with-loading-context, except body cannot leak try/catch syntax.
non-leaky-with-local-vars
macro
(non-leaky-with-local-vars name-vals-vec & body)
Like clojure.core/with-local-vars, except body cannot leak try/catch syntax.
non-leaky-with-precision
macro
(non-leaky-with-precision precision & exprs)
Like clojure.core/with-precision, except body is cannot leak try/catch syntax.
non-leaky-with-redefs
macro
(non-leaky-with-redefs bindings & body)
Like clojure.core/with-redefs, except body not leak pre/post syntax and does not
have a recur target available.
pvalues
macro
(pvalues & exprs)
vswap!
macro
(vswap! & args)
with-bindings
macro
(with-bindings & args)
with-in-str
macro
(with-in-str & args)
with-loading-context
macro
(with-loading-context & args)
with-local-vars
macro
(with-local-vars & args)
with-precision
macro
(with-precision & args)
with-redefs
macro
(with-redefs & args)