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)

delay

macro

(delay & body)

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)

sync

macro

(sync & args)

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)