diff --git a/lux-c++/source/program.lux b/lux-c++/source/program.lux index 752663f5bc..c9c9e5edec 100644 --- a/lux-c++/source/program.lux +++ b/lux-c++/source/program.lux @@ -241,7 +241,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as /runtime.Declaration))) @@ -270,7 +270,7 @@ platform.#runtime /runtime.translation platform.#phase_wrapper ..phase_wrapper - platform.#write (|>> _.code (of utf8.format injection))]]))) + platform.#write (|>> _.code (by utf8.format injection))]]))) (the (extender _) Extender @@ -287,7 +287,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of environment.default exit +0))) + (async.future (by environment.default exit +0))) (the _ (program [service cli.service] diff --git a/lux-cl/source/program.lux b/lux-cl/source/program.lux index 504b214dd2..34a8cede59 100644 --- a/lux-cl/source/program.lux +++ b/lux-cl/source/program.lux @@ -341,7 +341,7 @@ (the (ingest context content) (|> content - (of encoding.utf8 projection) + (by encoding.utf8 projection) try.trusted (as (_.Expression Any)))) @@ -362,7 +362,7 @@ platform.#host host platform.#phase common_lisp.translate platform.#runtime runtime.translate - platform.#write (|>> _.code (of encoding.utf8 injection))]))) + platform.#write (|>> _.code (by encoding.utf8 injection))]))) (the get_ecl_cli_inputs (let [@idx (_.var "i")] @@ -410,7 +410,7 @@ (the (declare_success! _) (-> Any (Promise Any)) - (promise.future (of world/program.default exit +0))) + (promise.future (by world/program.default exit +0))) (the (then pre post) (-> (_.Expression Any) (_.Expression Any) diff --git a/lux-js/source/program.lux b/lux-js/source/program.lux index 9c575df555..b4f19d7295 100644 --- a/lux-js/source/program.lux +++ b/lux-js/source/program.lux @@ -558,7 +558,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -620,7 +620,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -659,7 +659,7 @@ platform.#phase js.expression platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper - platform.#write (|>> _.code (of utf8.format injection))]))) + platform.#write (|>> _.code (by utf8.format injection))]))) (the (lux_program context program) (Program _.Expression _.Statement) @@ -714,7 +714,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of environment.default exit +0))) + (async.future (by environment.default exit +0))) (the (scope body) (-> _.Statement _.Statement) diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux index 104e9b76fa..2dc9ede58a 100644 --- a/lux-jvm/source/program.lux +++ b/lux-jvm/source/program.lux @@ -29,7 +29,7 @@ [meta [archive (.only Archive)] ["[0]" context] - ["[0]" cli] + ["[0]" cli]z ["[0]" packager ["[1]" jvm]]] [language @@ -152,7 +152,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of environment.default exit +0))) + (async.future (by environment.default exit +0))) (the _ (program [service cli.service] diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux index ff9e5c40cc..447ca27d4f 100644 --- a/lux-lua/source/program.lux +++ b/lux-lua/source/program.lux @@ -719,7 +719,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -760,7 +760,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -839,7 +839,7 @@ platform.#phase lua.expression platform.#runtime runtime.translate platform.#phase_wrapper (..phase_wrapper ..to_host) - platform.#write (|>> _.code (of utf8.format injection))]]))) + platform.#write (|>> _.code (by utf8.format injection))]]))) .lua (the platform (IO (Platform [Register _.Label] _.Expression _.Statement)) (do io.monad @@ -849,7 +849,7 @@ platform.#phase lua.expression platform.#runtime runtime.translate platform.#phase_wrapper (..phase_wrapper ..to_host) - platform.#write (|>> _.code (of utf8.format injection))])))) + platform.#write (|>> _.code (by utf8.format injection))])))) (the (lux_program context program) (Program _.Expression _.Statement) @@ -860,7 +860,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of world/environment.default exit +0))) + (async.future (by world/environment.default exit +0))) (the (lux_compiler it) (-> Any platform.Custom) diff --git a/lux-mode/lux-mode.el b/lux-mode/lux-mode.el index e9e8b8d9e6..a66973fb89 100644 --- a/lux-mode/lux-mode.el +++ b/lux-mode/lux-mode.el @@ -395,7 +395,7 @@ Called by `imenu--generic-function'." (type//capability (altRE "capability")) ;; Data (data//record (altRE "its" "has" "revised")) - (data//interface (altRE "use" "implementation" "with" "of")) + (data//interface (altRE "use" "implementation" "with" "by")) (data//implicit (altRE "implicitly" "a/an" "a" "an")) (data//collection (altRE "list" "sequence" "tree")) ;; Code diff --git a/lux-php/source/program.lux b/lux-php/source/program.lux index 9929a6e648..bbf5d9cad6 100644 --- a/lux-php/source/program.lux +++ b/lux-php/source/program.lux @@ -499,7 +499,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -519,7 +519,7 @@ platform.#host host platform.#phase php.translate platform.#runtime runtime.translate - platform.#write (|>> _.code (of utf8.format injection))]))) + platform.#write (|>> _.code (by utf8.format injection))]))) (the (program context program) (Program _.Expression _.Statement) @@ -565,7 +565,7 @@ (the (declare_success! _) (-> Any (Promise Any)) - (promise.future (of world/program.default exit +0))) + (promise.future (by world/program.default exit +0))) (`` (the _ (program [service /cli.service] diff --git a/lux-python/source/program.lux b/lux-python/source/program.lux index e099029b79..c36cff4a3d 100644 --- a/lux-python/source/program.lux +++ b/lux-python/source/program.lux @@ -441,7 +441,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -483,7 +483,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -539,7 +539,7 @@ platform.#phase python.expression platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper - platform.#write (|>> _.code (of utf8.format injection))]))) + platform.#write (|>> _.code (by utf8.format injection))]))) (the (lux_program context program) (Program _.Expression _.Statement) @@ -556,7 +556,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of world/environment.default exit +0))) + (async.future (by world/environment.default exit +0))) (the (scope body) (-> _.Statement _.Statement) diff --git a/lux-r/source/program.lux b/lux-r/source/program.lux index fce5da309e..82a816ec6a 100644 --- a/lux-r/source/program.lux +++ b/lux-r/source/program.lux @@ -538,7 +538,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Expression))) @@ -561,7 +561,7 @@ platform.#host host platform.#phase r.translate platform.#runtime runtime.translate - platform.#write (|>> _.code (of utf8.format injection))]]))) + platform.#write (|>> _.code (by utf8.format injection))]]))) (the (program context program) (Program _.Expression _.Expression) @@ -591,7 +591,7 @@ (the (declare_success! _) (-> Any (Promise Any)) - (promise.future (of world/program.default exit +0))) + (promise.future (by world/program.default exit +0))) (the (scope body) (-> _.Expression _.Expression) diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux index 2cc7fe4798..1590ddabf1 100644 --- a/lux-ruby/source/program.lux +++ b/lux-ruby/source/program.lux @@ -772,7 +772,7 @@ (the (ingest context content) (|> content - (of utf8.format projection) + (by utf8.format projection) try.trusted (as _.Statement))) @@ -974,7 +974,7 @@ platform.#phase ruby.expression platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper - platform.#write (|>> _.code (of utf8.format injection))]))) + platform.#write (|>> _.code (by utf8.format injection))]))) (the (lux_program context program) (Program _.Expression _.Statement) @@ -990,7 +990,7 @@ (the (declare_success! _) (-> Any (Async Any)) - (async.future (of world/environment.default exit +0))) + (async.future (by world/environment.default exit +0))) (the (lux_compiler it) (-> Any platform.Custom) diff --git a/lux-scheme/source/program.lux b/lux-scheme/source/program.lux index 27b98e76d9..3cf8422f35 100644 --- a/lux-scheme/source/program.lux +++ b/lux-scheme/source/program.lux @@ -395,7 +395,7 @@ (the (ingest context content) (|> content - (of encoding.utf8 projection) + (by encoding.utf8 projection) try.trusted (as _.Expression))) @@ -416,7 +416,7 @@ platform.#host host platform.#phase scheme.translate platform.#runtime runtime.translate - platform.#write (|>> _.code (of encoding.utf8 injection))]))) + platform.#write (|>> _.code (by encoding.utf8 injection))]))) (the (program context program) (Program _.Expression _.Expression) @@ -459,7 +459,7 @@ (the (declare_success! _) (-> Any (Promise Any)) - (promise.future (of world/program.default exit +0))) + (promise.future (by world/program.default exit +0))) (`` (the _ (program [service /cli.service] diff --git a/stdlib/source/documentation/lux.lux b/stdlib/source/documentation/lux.lux index 4e0daf2aad..e525cd05e4 100644 --- a/stdlib/source/documentation/lux.lux +++ b/stdlib/source/documentation/lux.lux @@ -557,8 +557,8 @@ "Opens a implementation and generates a definition for each of its members (including nested members)." ($.example (' (use "i:[0]" order))) ($.comment "=>") - ($.example (' (the i:= (of order =)))) - ($.example (' (the i:< (of order <))))) + ($.example (' (the i:= (by order =)))) + ($.example (' (the i:< (by order <))))) ($.definition /.|>> "Similar to the piping macro, but rather than taking an initial object to work on, creates a function for taking it." @@ -597,12 +597,12 @@ [// [type (.use "[0]" equivalence)]])))) - ($.definition /.of + ($.definition /.by "Allows accessing the value of a implementation's member." - ($.example (' (of format injection))) + ($.example (' (by format injection))) ($.comment "Also allows using that value as a function.") - ($.example (' (of format injection +123)))) + ($.example (' (by format injection +123)))) ($.definition /.has "Sets the value of a record at a given tag." @@ -702,7 +702,7 @@ [ (template.with [ ] [(cover [] (compare - (of format injection )))] + (by format injection )))] [bit #1 "#1"] [integer +123 "+123"] @@ -795,7 +795,7 @@ ... ($.example (' (the (hash (^let set [member_hash _])) ... (list#mix (function (_ elem acc) ... (+ acc - ... (of member_hash hash elem))) + ... (by member_hash hash elem))) ... 0 ... (set.list set)))))) diff --git a/stdlib/source/documentation/lux/math/number/decimal.lux b/stdlib/source/documentation/lux/math/number/decimal.lux index bea675dacf..3fb367445c 100644 --- a/stdlib/source/documentation/lux/math/number/decimal.lux +++ b/stdlib/source/documentation/lux/math/number/decimal.lux @@ -155,7 +155,7 @@ ($.definition /.approximately "" - ($.example (' (of (approximately margin_of_error) = standard value)))) + ($.example (' (by (approximately margin_of_error) = standard value)))) ($.definition /.mod "" diff --git a/stdlib/source/documentation/lux/meta/type/implicit.lux b/stdlib/source/documentation/lux/meta/type/implicit.lux index d3cfbb8201..1b6fc96d31 100644 --- a/stdlib/source/documentation/lux/meta/type/implicit.lux +++ b/stdlib/source/documentation/lux/meta/type/implicit.lux @@ -29,7 +29,7 @@ \n \n "Caveat emptor: You need to make sure to import the module of any implementation you want to use." \n "Otherwise, this macro will not find it.") ($.example (' ($.comment "Natural equivalence"))) - ($.example (' (of number.equivalence = x y))) + ($.example (' (by number.equivalence = x y))) ($.example (' (any = x y))) ($.comment "Can optionally add the prefix of the module where the signature was defined.") @@ -46,12 +46,12 @@ ($.definition /.with "Establish lexical bindings for implementations that will be prioritized over non-lexically-bound implementations." ($.example (' (with [n.addition] - (n.= (of n.addition composite left right) + (n.= (by n.addition composite left right) (any composite left right)))))) ($.definition /.implicitly "Establish local definitions for implementations that will be prioritized over foreign definitions." ($.example (' (implicitly n.multiplication))) - ($.example (' (n.= (of n.multiplication composite left right) + ($.example (' (n.= (by n.multiplication composite left right) (any composite left right))))) )) diff --git a/stdlib/source/experiment/effect.lux b/stdlib/source/experiment/effect.lux index 6f874edbb0..d894738612 100644 --- a/stdlib/source/experiment/effect.lux +++ b/stdlib/source/experiment/effect.lux @@ -46,7 +46,7 @@ _ (throw "yolo")] (in (n.+ left right)))) (catch (function (_ error) - (of /.monad in (-- 0)))))) + (by /.monad in (-- 0)))))) (the (try it) (for_any (_ of) @@ -57,7 +57,7 @@ [it (it throw)] (in {.#Right it}))) (catch (function (_ error) - (of /.monad in {.#Left error}))))) + (by /.monad in {.#Left error}))))) (use "/#[0]" /.monad) diff --git a/stdlib/source/experiment/tool/interpreter.lux b/stdlib/source/experiment/tool/interpreter.lux index 8e5d792dd7..054ed590a7 100644 --- a/stdlib/source/experiment/tool/interpreter.lux +++ b/stdlib/source/experiment/tool/interpreter.lux @@ -84,9 +84,9 @@ .#info .#mode] {.#Interpreter} state)) - [state _] (of (its platform.#file_system platform) + [state _] (by (its platform.#file_system platform) lift (phase.value' state enter_module)) - _ (of Console write ..welcome_message)] + _ (by Console write ..welcome_message)] (in state))) (expansion.let [ (these (Operation anchor expression declaration [Type Any]))] @@ -206,16 +206,16 @@ multi_line? false]) (do ! [_ (if multi_line? - (of Console write " ") - (of Console write "> ")) - line (of Console read_line)] + (by Console write " ") + (by Console write "> ")) + line (by Console read_line)] (if (and (not multi_line?) (text.= ..exit_command line)) - (of Console write ..farewell_message) + (by Console write ..farewell_message) (when (read_eval_print (revised #source (add_line line) context)) {try.#Success [context' representation]} (do ! - [_ (of Console write representation)] + [_ (by Console write representation)] (again context' false)) {try.#Failure error} diff --git a/stdlib/source/injection/lux/data/binary.lux b/stdlib/source/injection/lux/data/binary.lux index 1c3c4807fa..54c27ae889 100644 --- a/stdlib/source/injection/lux/data/binary.lux +++ b/stdlib/source/injection/lux/data/binary.lux @@ -132,7 +132,7 @@ (-> (Injection left) (Injection right) (Injection (And left right)))) (function (_ [preV postV]) - (of ..monoid composite (pre preV) (post postV)))) + (by ..monoid composite (pre preV) (post postV)))) (the .public (rec body) (for_any (_ of) @@ -202,7 +202,7 @@ (template.with [ ] [(the .public (Injection Text) - (|>> (of utf8.format injection) + (|>> (by utf8.format injection) ))] [utf8_08 ..binary_08] @@ -231,13 +231,13 @@ (open "specification#[0]") ..monoid specification/* (sequence#each valueW value) size (|> specification/* - (of sequence.mix mix + (by sequence.mix mix (function (_ post pre) (n.+ pre (product.left post))) (product.left specification#identity)))] [(n#+ size) (function (_ [offset binary]) - (of sequence.mix mix + (by sequence.mix mix (function (_ [_ post] pre) (post pre)) (|> binary diff --git a/stdlib/source/injection/lux/data/text.lux b/stdlib/source/injection/lux/data/text.lux index 9236b92469..699a4fc5e8 100644 --- a/stdlib/source/injection/lux/data/text.lux +++ b/stdlib/source/injection/lux/data/text.lux @@ -40,10 +40,10 @@ (Injection ) )] - [natural Natural (of natural.base_10 injection)] - [integer Integer (of integer.base_10 injection)] - [revolution Revolution (of revolution.base_10 injection)] - [decimal Decimal (of decimal.base_10 injection)] + [natural Natural (by natural.base_10 injection)] + [integer Integer (by integer.base_10 injection)] + [revolution Revolution (by revolution.base_10 injection)] + [decimal Decimal (by decimal.base_10 injection)] [text Text text.injection] ) @@ -51,7 +51,7 @@ [(the .public ,name (Injection Decimal) (let [suffix (its unit.#suffix (template.symbol [unit._] [,name]))] - (|>> (of (template.symbol [decimal._] [,name]) injection) + (|>> (by (template.symbol [decimal._] [,name]) injection) (text.split_by decimal.separator) (maybe.else ["" ""]) product.left @@ -67,7 +67,7 @@ [(`` (template.with [ ] [(the .public (Injection ) - (of injection))] + (by injection))] (,, (template.spliced ,))))] @@ -96,7 +96,7 @@ (the .public (padded padding injection) (-> Natural (Injection Natural) (Injection Natural)) - (of (natural.padded padding + (by (natural.padded padding (implementation (the injection injection) (the (projection _) (undefined)))) @@ -106,7 +106,7 @@ (for_any (_ %) (Injection (modular.Mod %))) (let [format (modular.format (modular.modulus modular))] - (of format injection modular))) + (by format injection modular))) (the .public (list injection) (for_any (_ of) diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux index a0b9cb54a1..317e73eb2b 100644 --- a/stdlib/source/library/lux.lux +++ b/stdlib/source/library/lux.lux @@ -5398,14 +5398,14 @@ {.#None} (failure ..wrong_syntax)))) -(the .public of +(the .public by (macro (_ tokens) (when tokens (list implementation [_ {#Symbol member}]) (meta#in (list (` (..with (, implementation) (, (as_symbol member)))))) (list#partial implementation member args) - (meta#in (list (` ((..of (, implementation) (, member)) (,* args))))) + (meta#in (list (` ((..by (, implementation) (, member)) (,* args))))) _ (failure ..wrong_syntax)))) diff --git a/stdlib/source/library/lux/abstract/apply.lux b/stdlib/source/library/lux/abstract/apply.lux index caa0d34d22..46554b7d55 100644 --- a/stdlib/source/library/lux/abstract/apply.lux +++ b/stdlib/source/library/lux/abstract/apply.lux @@ -29,14 +29,14 @@ (its ..functor inner_apply))) (the (on oix oif) ... TODO: Switch from this version to the one below (in comments) ASAP. - (let [oif' (of outer_apply on + (let [oif' (by outer_apply on oif - (of outer_monad in (function (_ if ix) (of inner_apply on ix if))))] - (of outer_apply on oix oif')) - ... (let [outer_apply (of outer_apply on) - ... inner_apply (of inner_apply on)] + (by outer_monad in (function (_ if ix) (by inner_apply on ix if))))] + (by outer_apply on oix oif')) + ... (let [outer_apply (by outer_apply on) + ... inner_apply (by inner_apply on)] ... (all outer_apply ... oif - ... (of outer_monad in inner_apply) + ... (by outer_monad in inner_apply) ... oix)) ))) diff --git a/stdlib/source/library/lux/abstract/comonad/free.lux b/stdlib/source/library/lux/abstract/comonad/free.lux index cd7d9b002d..e645a99f76 100644 --- a/stdlib/source/library/lux/abstract/comonad/free.lux +++ b/stdlib/source/library/lux/abstract/comonad/free.lux @@ -17,7 +17,7 @@ (Functor (Free !)))) (implementation (the (each $ [head tail]) - [($ head) (of dsl each (each $) tail)]))) + [($ head) (by dsl each (each $) tail)]))) (the .public (comonad dsl) (for_any (_ !) @@ -31,4 +31,4 @@ (the (disjoint [head tail]) [[head tail] - (of dsl each disjoint tail)]))) + (by dsl each disjoint tail)]))) diff --git a/stdlib/source/library/lux/abstract/equivalence.lux b/stdlib/source/library/lux/abstract/equivalence.lux index 1cc87545cd..7b196d24b2 100644 --- a/stdlib/source/library/lux/abstract/equivalence.lux +++ b/stdlib/source/library/lux/abstract/equivalence.lux @@ -20,7 +20,7 @@ (the (each value it) (implementation (the (= expected actual) - (of it = (value expected) (value actual))))))) + (by it = (value expected) (value actual))))))) (the .public (sum left right) (for_any (_ left right) @@ -30,10 +30,10 @@ (the (= expected actual) (when [expected actual] [{.#Left expected} {.#Left actual}] - (of left = expected actual) + (by left = expected actual) [{.#Right expected} {.#Right actual}] - (of right = expected actual) + (by right = expected actual) _ false)))) @@ -44,8 +44,8 @@ (Equivalence (And left right)))) (implementation (the (= [leftE rightE] [leftA rightA]) - (and (of left = leftE leftA) - (of right = rightE rightA))))) + (and (by left = leftE leftA) + (by right = rightE rightA))))) (the .public (recursive sub) (for_any (_ of) diff --git a/stdlib/source/library/lux/abstract/format.lux b/stdlib/source/library/lux/abstract/format.lux index 399fe9c820..40e7796236 100644 --- a/stdlib/source/library/lux/abstract/format.lux +++ b/stdlib/source/library/lux/abstract/format.lux @@ -26,10 +26,10 @@ (Format @2 @0))) (implementation (the injection - (|>> (of format_10 injection) - (of format_21 injection))) + (|>> (by format_10 injection) + (by format_21 injection))) - (the (projection cy) + (the (projection it) (do try.monad - [by (of format_21 projection cy)] - (of format_10 projection by))))) + [it (by format_21 projection it)] + (by format_10 projection it))))) diff --git a/stdlib/source/library/lux/abstract/hash.lux b/stdlib/source/library/lux/abstract/hash.lux index 7d82f93ca4..8f485dcbf5 100644 --- a/stdlib/source/library/lux/abstract/hash.lux +++ b/stdlib/source/library/lux/abstract/hash.lux @@ -23,8 +23,8 @@ (the (each f super) (implementation (the equivalence - (of equivalence.functor each f - (of super equivalence))) + (by equivalence.functor each f + (by super equivalence))) (the hash - (|>> f (of super hash))))))) + (|>> f (by super hash))))))) diff --git a/stdlib/source/library/lux/abstract/interval.lux b/stdlib/source/library/lux/abstract/interval.lux index 4b23d02ca1..e5fc126549 100644 --- a/stdlib/source/library/lux/abstract/interval.lux +++ b/stdlib/source/library/lux/abstract/interval.lux @@ -98,8 +98,8 @@ (Interval of))) (implementation (the enum (its ..enum right)) - (the bottom (order.min (of right order) (of left bottom) (of right bottom))) - (the top (order.max (of right order) (of left top) (of right top))))) + (the bottom (order.min (by right order) (by left bottom) (by right bottom))) + (the top (order.max (by right order) (by left top) (by right top))))) (the .public (intersection left right) (for_any (_ of) @@ -107,8 +107,8 @@ (Interval of))) (implementation (the enum (its ..enum right)) - (the bottom (order.max (of right order) (of left bottom) (of right bottom))) - (the top (order.min (of right order) (of left top) (of right top))))) + (the bottom (order.max (by right order) (by left bottom) (by right bottom))) + (the top (order.min (by right order) (by left top) (by right top))))) (the .public (complement interval) (for_any (_ of) @@ -116,17 +116,17 @@ (Interval of))) (implementation (the enum (its ..enum interval)) - (the bottom (of interval succ (of interval top))) - (the top (of interval pred (of interval bottom))))) + (the bottom (by interval succ (by interval top))) + (the top (by interval pred (by interval bottom))))) (the .public (precedes? reference it) (for_any (_ of) (-> (Interval of) (Predicate (Interval of)))) (let [(open "[0]") reference - limit (of reference bottom)] - (and (< limit (of it bottom)) - (< limit (of it top))))) + limit (by reference bottom)] + (and (< limit (by it bottom)) + (< limit (by it top))))) (the .public (succeeds? reference it) (for_any (_ of) @@ -152,9 +152,9 @@ (-> (Interval of) (Predicate (Interval of)))) (let [(open ",#[0]") reference - limit (of reference bottom)] - (and (,#= limit (of it top)) - (order.<= ,#order limit (of it bottom))))) + limit (by reference bottom)] + (and (,#= limit (by it top)) + (order.<= ,#order limit (by it bottom))))) (the .public (touches? reference it) (for_any (_ of) @@ -169,11 +169,11 @@ (-> (Interval of) (Predicate (Interval of)))) (let [(open ",#[0]") reference] - (and (,#= (of reference ) - (of it )) + (and (,#= (by reference ) + (by it )) ( ,#order - (of reference ) - (of it )))))] + (by reference ) + (by it )))))] [starts? ,#bottom order.<= ,#top] [finishes? ,#top order.>= ,#bottom] @@ -185,8 +185,8 @@ (implementation (the (= expected actual) (let [(open ",#[0]") expected] - (and (,#= ,#bottom (of actual bottom)) - (,#= ,#top (of actual top))))))) + (and (,#= ,#bottom (by actual bottom)) + (,#= ,#top (by actual top))))))) (alias [=] ..equivalence) @@ -199,8 +199,8 @@ (and (inner? reference) (inner? it)) (and (outer? reference) (outer? it))) (let [(open ",#[0]") reference] - (and (order.>= ,#order (of reference bottom) (of it bottom)) - (order.<= ,#order (of reference top) (of it top)))) + (and (order.>= ,#order (by reference bottom) (by it bottom)) + (order.<= ,#order (by reference top) (by it top)))) (or (singleton? reference) (and (inner? reference) (outer? it))) @@ -208,10 +208,10 @@ ... (and (outer? reference) (inner? it)) (let [(open ",#[0]") reference] - (or (and (order.>= ,#order (of reference bottom) (of it bottom)) - (order.> ,#order (of reference bottom) (of it top))) - (and (,#< (of reference top) (of it bottom)) - (order.<= ,#order (of reference top) (of it top))))) + (or (and (order.>= ,#order (by reference bottom) (by it bottom)) + (order.> ,#order (by reference bottom) (by it top))) + (and (,#< (by reference top) (by it bottom)) + (order.<= ,#order (by reference top) (by it top))))) )) (the .public (overlaps? reference it) @@ -219,7 +219,7 @@ (-> (Interval of) (Predicate (Interval of)))) (let [(open ",#[0]") reference] - (and (not (of ..equivalence = reference it)) + (and (not (by ..equivalence = reference it)) (if (singleton? it) false @@ -228,8 +228,8 @@ (or (and (inner? it) (outer? reference)) (and (outer? it) (inner? reference))) - (or (order.>= ,#order (of reference bottom) (of it top)) - (order.<= ,#order (of reference top) (of it bottom))) + (or (order.>= ,#order (by reference bottom) (by it top)) + (order.<= ,#order (by reference top) (by it bottom))) ... both inner (inner? it) diff --git a/stdlib/source/library/lux/abstract/monad.lux b/stdlib/source/library/lux/abstract/monad.lux index 736fdbd101..6a271fa7dc 100644 --- a/stdlib/source/library/lux/abstract/monad.lux +++ b/stdlib/source/library/lux/abstract/monad.lux @@ -132,8 +132,8 @@ (for_any (_ ! before after) (-> (Monad !) (-> before (! after)) (-> (! before) (! after)))) - (|>> (of monad each f) - (of monad conjoint))) + (|>> (by monad each f) + (by monad conjoint))) (the .public (all monad) (for_any (_ ! of) @@ -193,7 +193,7 @@ (! whole))) (when xs {.#End} - (of monad in init) + (by monad in init) {.#Item x xs'} (do monad diff --git a/stdlib/source/library/lux/abstract/monad/free.lux b/stdlib/source/library/lux/abstract/monad/free.lux index 9f0d8710bb..6fd4cf7648 100644 --- a/stdlib/source/library/lux/abstract/monad/free.lux +++ b/stdlib/source/library/lux/abstract/monad/free.lux @@ -25,7 +25,7 @@ {#Pure ($ it)} {#Impure value} - {#Impure (of dsl each (each $) value)})))) + {#Impure (by dsl each (each $) value)})))) (the .public (apply dsl) (for_any (_ !) @@ -41,12 +41,12 @@ {#Pure ($ it)} [{#Pure $} {#Impure !it}] - {#Impure (of dsl each - (of (..functor dsl) each $) + {#Impure (by dsl each + (by (..functor dsl) each $) !it)} [{#Impure !$} _] - {#Impure (of dsl each (on !it) !$)} + {#Impure (by dsl each (on !it) !$)} )))) (the .public (monad dsl) @@ -65,7 +65,7 @@ !it {#Impure !it} - {#Impure (of dsl each - (of (monad dsl) conjoint) + {#Impure (by dsl each + (by (monad dsl) conjoint) !it)} )))) diff --git a/stdlib/source/library/lux/abstract/monad/indexed.lux b/stdlib/source/library/lux/abstract/monad/indexed.lux index 9972077d16..66f8f272e2 100644 --- a/stdlib/source/library/lux/abstract/monad/indexed.lux +++ b/stdlib/source/library/lux/abstract/monad/indexed.lux @@ -64,10 +64,10 @@ (the named_monad (Projection [(Maybe Text) Code]) - (?.either (?code.tuple (?.and (of ?.monad each (|>> {.#Some}) + (?.either (?code.tuple (?.and (by ?.monad each (|>> {.#Some}) ?code.local) ?code.any)) - (of ?.monad each (|>> [{.#None}]) + (by ?.monad each (|>> [{.#None}]) ?code.any))) (the .public do diff --git a/stdlib/source/library/lux/abstract/monoid.lux b/stdlib/source/library/lux/abstract/monoid.lux index 2f82ac6893..461d6911f2 100644 --- a/stdlib/source/library/lux/abstract/monoid.lux +++ b/stdlib/source/library/lux/abstract/monoid.lux @@ -19,9 +19,9 @@ (Monoid [left right]))) (implementation (the identity - [(of left identity) - (of right identity)]) + [(by left identity) + (by right identity)]) (the (composite [lL rL] [lR rR]) - [(of left composite lL lR) - (of right composite rL rR)]))) + [(by left composite lL lR) + (by right composite rL rR)]))) diff --git a/stdlib/source/library/lux/abstract/order.lux b/stdlib/source/library/lux/abstract/order.lux index 0c4ff6747d..5acfd8d386 100644 --- a/stdlib/source/library/lux/abstract/order.lux +++ b/stdlib/source/library/lux/abstract/order.lux @@ -26,17 +26,17 @@ (the .public (<= order parameter subject) Comparison - (or (of order < parameter subject) - (of order = parameter subject))) + (or (by order < parameter subject) + (by order = parameter subject))) (the .public (> order parameter subject) Comparison - (of order < subject parameter)) + (by order < subject parameter)) (the .public (>= order parameter subject) Comparison - (or (of order < subject parameter) - (of order = subject parameter))) + (or (by order < subject parameter) + (by order = subject parameter))) (every .public (Choice of) (-> (Order of) of of @@ -44,11 +44,11 @@ (the .public (min order x y) Choice - (if (of order < y x) x y)) + (if (by order < y x) x y)) (the .public (max order x y) Choice - (if (of order < y x) y x)) + (if (by order < y x) y x)) (the .public functor (contravariant.Functor Order) @@ -56,10 +56,10 @@ (the (each value order) (implementation (the equivalence - (of equivalence.functor each value (of order equivalence))) + (by equivalence.functor each value (by order equivalence))) (the (< reference it) - (of order < (value reference) (value it))))))) + (by order < (value reference) (value it))))))) (these (the do (.in_module# .prelude .do)) (the meta#monad (.in_module# .prelude .meta#monad)) @@ -78,24 +78,24 @@ (for_any ((, '_) (,* '*type_parameters)) (-> (, 'type) (, 'type) .Bit)) - (of (, 'order) (,' <) (, 'parameter) (, 'subject)))) + (by (, 'order) (,' <) (, 'parameter) (, 'subject)))) (` (the .public ((,' >) (, 'parameter) (, 'subject)) (for_any ((, '_) (,* '*type_parameters)) (-> (, 'type) (, 'type) .Bit)) - (of (, 'order) (,' <) (, 'subject) (, 'parameter)))) + (by (, 'order) (,' <) (, 'subject) (, 'parameter)))) (` (the .public ((,' <=) (, 'parameter) (, 'subject)) (for_any ((, '_) (,* '*type_parameters)) (-> (, 'type) (, 'type) .Bit)) - (or (of (, 'order) (,' <) (, 'parameter) (, 'subject)) - (of (, 'order) (,' =) (, 'parameter) (, 'subject))))) + (or (by (, 'order) (,' <) (, 'parameter) (, 'subject)) + (by (, 'order) (,' =) (, 'parameter) (, 'subject))))) (` (the .public ((,' >=) (, 'parameter) (, 'subject)) (for_any ((, '_) (,* '*type_parameters)) (-> (, 'type) (, 'type) .Bit)) - (or (of (, 'order) (,' <) (, 'subject) (, 'parameter)) - (of (, 'order) (,' =) (, 'parameter) (, 'subject)))))))) + (or (by (, 'order) (,' <) (, 'subject) (, 'parameter)) + (by (, 'order) (,' =) (, 'parameter) (, 'subject)))))))) _ (failure .wrong_syntax))))) diff --git a/stdlib/source/library/lux/control/concurrency/actor.lux b/stdlib/source/library/lux/control/concurrency/actor.lux index 6f8d3554a9..32e2383dce 100644 --- a/stdlib/source/library/lux/control/concurrency/actor.lux +++ b/stdlib/source/library/lux/control/concurrency/actor.lux @@ -49,7 +49,7 @@ [current (async.value read)] (when current {.#Some [head tail]} - (of ! each (|>> {.#Item head}) + (by ! each (|>> {.#Item head}) (pending tail)) {.#None} @@ -105,7 +105,7 @@ (let [[obituary _] (its #obituary (nominal.representation actor))] (|> obituary async.value - (of io.functor each + (by io.functor each (|>> (pipe.when {.#None} bit.yes @@ -233,7 +233,7 @@ (if continue? (|> actor (..mail! (action event stop)) - (of ! each try.maybe)) + (by ! each try.maybe)) (in {.#None})))) channel))) diff --git a/stdlib/source/library/lux/control/concurrency/async.lux b/stdlib/source/library/lux/control/concurrency/async.lux index fdb958f14d..d2ff71e6b2 100644 --- a/stdlib/source/library/lux/control/concurrency/async.lux +++ b/stdlib/source/library/lux/control/concurrency/async.lux @@ -80,7 +80,7 @@ (for_any (_ r w) (-> (Async' r w) (IO (Value r)))) (|>> nominal.representation atom.read! - (of io.functor each (|>> product.left + (by io.functor each (|>> product.left (maybe#each (|>> variance.read)))))) (the .public (upon! f async) @@ -103,7 +103,7 @@ (the .public resolved? (for_any (_ r w) (-> (Async' r w) (IO Bit))) (|>> ..value - (of io.functor each + (by io.functor each (|>> (pipe.when {.#None} false diff --git a/stdlib/source/library/lux/control/concurrency/csp.lux b/stdlib/source/library/lux/control/concurrency/csp.lux index 2f1fc90698..88beaddd47 100644 --- a/stdlib/source/library/lux/control/concurrency/csp.lux +++ b/stdlib/source/library/lux/control/concurrency/csp.lux @@ -68,12 +68,12 @@ (the .public (write value sink) (for_any (_ w) (-> w (Sink w) (Process Any))) - (async.future (of sink feed value))) + (async.future (by sink feed value))) (the .public (close sink) (for_any (_ w) (-> (Sink w) (Process Any))) - (async.future (of sink close))) + (async.future (by sink close))) (the .public try (for_any (_ a) (-> (Process a) (Process (Try a)))) diff --git a/stdlib/source/library/lux/control/concurrency/frp.lux b/stdlib/source/library/lux/control/concurrency/frp.lux index 82d965937c..d21bfb28d2 100644 --- a/stdlib/source/library/lux/control/concurrency/frp.lux +++ b/stdlib/source/library/lux/control/concurrency/frp.lux @@ -149,7 +149,7 @@ (when ?ma {.#Some [a ma']} (exec - (io.value (of sink feed a)) + (io.value (by sink feed a)) (again ma')) {.#None} @@ -157,7 +157,7 @@ (again mma')) {.#None} - (in (is Any (io.value (of sink close)))))))) + (in (is Any (io.value (by sink close)))))))) output))))) (every .public (Subscriber a) @@ -247,7 +247,7 @@ (io.value (loop (again [_ []]) (do io.monad [value action - _ (of sink feed value)] + _ (by sink feed value)] (async.upon! again (async.delay milli_seconds))))) [output sink]))) @@ -272,7 +272,7 @@ [item it] (when item {.#Some [head tail]} - (if (of equivalence = previous head) + (if (by equivalence = previous head) (distinct' equivalence previous tail) (in {.#Some [head (distinct' equivalence head tail)]})) @@ -296,7 +296,7 @@ [item it] (when item {.#Some [head tail]} - (of ! each (|>> {.#Item head}) + (by ! each (|>> {.#Item head}) (list tail)) {.#None} diff --git a/stdlib/source/library/lux/control/concurrency/semaphore.lux b/stdlib/source/library/lux/control/concurrency/semaphore.lux index 1d48c38ffe..84bdbec56b 100644 --- a/stdlib/source/library/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/library/lux/control/concurrency/semaphore.lux @@ -41,7 +41,7 @@ (Atom State) (the most_positions_possible - (.natural (of i.interval top))) + (.natural (by i.interval top))) (the .public (semaphore initial_open_positions) (-> Natural @@ -167,7 +167,7 @@ (do async.monad [outcome (..signal! turnstile)] (again (++ step))) - (of async.monad in [])))) + (by async.monad in [])))) (template.with [ ] [(the ( barrier) diff --git a/stdlib/source/library/lux/control/concurrency/stm.lux b/stdlib/source/library/lux/control/concurrency/stm.lux index 421ea38c2f..45b17e657f 100644 --- a/stdlib/source/library/lux/control/concurrency/stm.lux +++ b/stdlib/source/library/lux/control/concurrency/stm.lux @@ -70,7 +70,7 @@ (do ! [banned (monad.only ! (function (_ sink) (do ! - [result (of sink feed (variance.write new_value))] + [result (by sink feed (variance.write new_value))] (in (when result {try.#Success _} false @@ -100,8 +100,8 @@ (frp.channel [])))] _ (atom.update! (function (_ [value observers]) [value {.#Item (implementation - (the close (of sink close)) - (the feed (|>> variance.read (of sink feed)))) + (the close (by sink close)) + (the feed (|>> variance.read (by sink feed)))) observers}]) (nominal.representation target))] (in [channel sink]))) @@ -128,7 +128,7 @@ (list.example (function (_ [_var _original _current]) (same? (as (Var Any) var) (as (Var Any) _var)))) - (of maybe.monad each (function (_ [_var _original _current]) + (by maybe.monad each (function (_ [_var _original _current]) _current)) as_expected)) diff --git a/stdlib/source/library/lux/control/exception.lux b/stdlib/source/library/lux/control/exception.lux index fe37c8c74e..b88464dc38 100644 --- a/stdlib/source/library/lux/control/exception.lux +++ b/stdlib/source/library/lux/control/exception.lux @@ -124,7 +124,7 @@ (let [(, g!descriptor) (, (code.text descriptor))] [..#label (, g!descriptor) ..#constructor (function ((, g!self) (, input)) - (of text.monoid (,' composite) (, g!descriptor) (, body)))])))))))))) + (by text.monoid (,' composite) (, g!descriptor) (, body)))])))))))))) (.the .public (report entries) (-> (List [Text Text]) diff --git a/stdlib/source/library/lux/control/function/inline.lux b/stdlib/source/library/lux/control/function/inline.lux index 4c98ccf389..fb110a12b7 100644 --- a/stdlib/source/library/lux/control/function/inline.lux +++ b/stdlib/source/library/lux/control/function/inline.lux @@ -54,4 +54,4 @@ (list parameter (` .any)))) list#conjoint)]] (in (list (` (syntax.macro ((, g!_) [(,* g!parameters)]) - (.of meta.monad (,' in) (.list (.`' (, inlined)))))))))))) + (.by meta.monad (,' in) (.list (.`' (, inlined)))))))))))) diff --git a/stdlib/source/library/lux/control/function/mutual.lux b/stdlib/source/library/lux/control/function/mutual.lux index 73ead71aa0..78fd6cd219 100644 --- a/stdlib/source/library/lux/control/function/mutual.lux +++ b/stdlib/source/library/lux/control/function/mutual.lux @@ -50,7 +50,7 @@ (<| (as Macro) (is Macro') (function (_ parameters) - (of meta.monad in (list (` (((, g!self) (, g!context)) (,* parameters)))))))) + (by meta.monad in (list (` (((, g!self) (, g!context)) (,* parameters)))))))) (.the .public let (syntax.macro (_ [functions (.tuple (<>.some ..mutual)) diff --git a/stdlib/source/library/lux/control/function/named.lux b/stdlib/source/library/lux/control/function/named.lux index 5108b15ec9..84d1427f1f 100644 --- a/stdlib/source/library/lux/control/function/named.lux +++ b/stdlib/source/library/lux/control/function/named.lux @@ -71,7 +71,7 @@ (dictionary.value (, 'it) (, 'parameters))) (list (,* (list#each code.text parameters)))) {try.#Success (, 'parameters)} - (of meta.monad (,' in) + (by meta.monad (,' in) (list (` ((, 'function) ((,' .,*) (, 'parameters)))))) {try.#Failure (, 'error)} diff --git a/stdlib/source/library/lux/control/function/polymorphism/context.lux b/stdlib/source/library/lux/control/function/polymorphism/context.lux index 9b3b71cfa2..6fc10ef30a 100644 --- a/stdlib/source/library/lux/control/function/polymorphism/context.lux +++ b/stdlib/source/library/lux/control/function/polymorphism/context.lux @@ -63,7 +63,7 @@ (.the .public empty Context - (set.empty (of hash.functor each (|>> nominal.representation) symbol.hash))) + (set.empty (by hash.functor each (|>> nominal.representation) symbol.hash))) )) (template.with [ ] @@ -153,10 +153,10 @@ (do meta.monad [[(, g!_) (, g!_) (, g!_) (, g!_) (, g!_) (, g!_) (, g!_) (, g!scenarios)] (context.search' (|>> product.left - (of text.equivalence (,' =) (, (code.text (its #name signature))))) + (by text.equivalence (,' =) (, (code.text (its #name signature))))) [(.in_module# (, (code.text @)) ..stack) (symbol ..stack)])] - (of meta.monad (,' in) + (by meta.monad (,' in) (list (` (.the (, export_policy) (, name) (, (quoted (` (<| (,* quantifications) (-> (,* inputs) (Scope (, context) (, output))))))) diff --git a/stdlib/source/library/lux/control/function/polymorphism/predicate.lux b/stdlib/source/library/lux/control/function/polymorphism/predicate.lux index 0e8c296217..00cf362b58 100644 --- a/stdlib/source/library/lux/control/function/polymorphism/predicate.lux +++ b/stdlib/source/library/lux/control/function/polymorphism/predicate.lux @@ -89,10 +89,10 @@ (do meta.monad [[(, g!_) (, g!_) (, g!_) (, g!_) (, g!_) (, g!_) (, g!scenarios)] (context.search' (|>> product.left - (of text.equivalence (,' =) (, (code.text (its #name signature))))) + (by text.equivalence (,' =) (, (code.text (its #name signature))))) [(.in_module# (, (code.text @)) ..stack) (symbol ..stack)])] - (of meta.monad (,' in) + (by meta.monad (,' in) (list (` (.the (, export_policy) (, name) (, (quoted (` (<| (,* quantifications) (-> (,* inputs) (, output)))))) diff --git a/stdlib/source/library/lux/control/function/polymorphism/type.lux b/stdlib/source/library/lux/control/function/polymorphism/type.lux index e21a9bfdfb..e02ece4e0e 100644 --- a/stdlib/source/library/lux/control/function/polymorphism/type.lux +++ b/stdlib/source/library/lux/control/function/polymorphism/type.lux @@ -59,7 +59,7 @@ (, 'method)))) (.the (, export_policy) (, name) (syntax.macro ((, '_) [(, 'inputs) (?.many ?code.any)]) - (of meta.monad (,' in) + (by meta.monad (,' in) (list (` (any (, 'method) ((,' .,*) (, 'inputs)))))))) (,* methods)))))) diff --git a/stdlib/source/library/lux/control/function/variadic.lux b/stdlib/source/library/lux/control/function/variadic.lux index 152f2cae5a..410c7b6f44 100644 --- a/stdlib/source/library/lux/control/function/variadic.lux +++ b/stdlib/source/library/lux/control/function/variadic.lux @@ -63,7 +63,7 @@ (list parameter (` ?code.any)))) list#conjoint)) (, &rest) (?.some ?code.any)]) - (of meta.monad (,' in) + (by meta.monad (,' in) (list (` ((, g!function) (,* (list#each (|>> , ((,' .,)) `) mandatory)) (list ((,' .,*) (, &rest))))))))))))) diff --git a/stdlib/source/library/lux/control/logic.lux b/stdlib/source/library/lux/control/logic.lux index 9ebad8f7ca..6bf814f865 100644 --- a/stdlib/source/library/lux/control/logic.lux +++ b/stdlib/source/library/lux/control/logic.lux @@ -154,7 +154,7 @@ [#value (object.method (function (_ next again [this []]) (let [[this#= this_value] (object.state this)] - (of ..monad in this_value)))) + (by ..monad in this_value)))) #unified (object.method (function (_ next again [this [expected]]) (when (object.as (object.class this) expected) @@ -259,7 +259,7 @@ (when [expected_value this_value] [{.#Right expected_value} {.#Right this_value}] - (in (if (of this#= = expected_value this_value) + (in (if (by this#= = expected_value this_value) (list [context this_value]) (list))) @@ -316,7 +316,7 @@ [[this#= this_value] (binding id context)] (in (when this_value {.#Right this_value} - (if (of this#= = expected_value this_value) + (if (by this#= = expected_value this_value) (list [context this_value]) (list)) diff --git a/stdlib/source/library/lux/control/maybe.lux b/stdlib/source/library/lux/control/maybe.lux index 814f2ec096..3354990f6d 100644 --- a/stdlib/source/library/lux/control/maybe.lux +++ b/stdlib/source/library/lux/control/maybe.lux @@ -88,7 +88,7 @@ true [{.#Some x} {.#Some y}] - (of super = x y) + (by super = x y) _ false)))) @@ -99,7 +99,7 @@ (Hash (Maybe of)))) (implementation (the equivalence - (..equivalence (of super equivalence))) + (..equivalence (by super equivalence))) (the (hash value) (.when value @@ -107,7 +107,7 @@ 1 {.#Some value} - (of super hash value))))) + (by super hash value))))) (every .public (With ! of) (! (Maybe of))) @@ -119,12 +119,12 @@ (implementation (the (functor it) (|> it - (of ..functor each) - (of monad each))) + (by ..functor each) + (by monad each))) (the in - (|>> (of ..monad in) - (of monad in))) + (|>> (by ..monad in) + (by monad in))) (the (conjoint MmMma) (do monad @@ -142,7 +142,7 @@ (-> (Monad !) (-> (! of) (! (Maybe of))))) - (of monad each (of ..monad in))) + (by monad each (by ..monad in))) (the .public else (template#macro diff --git a/stdlib/source/library/lux/control/projection.lux b/stdlib/source/library/lux/control/projection.lux index 6af04fca3e..687e7521f9 100644 --- a/stdlib/source/library/lux/control/projection.lux +++ b/stdlib/source/library/lux/control/projection.lux @@ -238,7 +238,7 @@ (function (_ input) (when (projection input) {try.#Success [input' to_decode]} - (when (of format projection to_decode) + (when (by format projection to_decode) {try.#Success value} {try.#Success [input' value]} @@ -252,12 +252,12 @@ (-> Natural (Projection state of) (Projection state (List of)))) (when amount - 0 (of ..monad in (list)) + 0 (by ..monad in (list)) _ (do [! ..monad] [x projection] (|> projection (exactly (-- amount)) - (of ! each (|>> {.#Item x})))))) + (by ! each (|>> {.#Item x})))))) (the .public (at_least amount projection) (for_any (_ state of) @@ -265,18 +265,18 @@ (Projection state (List of)))) (do [! ..monad] [minimum (..exactly amount projection)] - (of ! each (list#composite minimum) (..some projection)))) + (by ! each (list#composite minimum) (..some projection)))) (the .public (at_most amount projection) (for_any (_ state of) (-> Natural (Projection state of) (Projection state (List of)))) (when amount - 0 (of ..monad in (list)) + 0 (by ..monad in (list)) _ (function (_ input) (when (projection input) {try.#Success [input' x]} - (..value (of ..monad each (|>> {.#Item x}) + (..value (by ..monad each (|>> {.#Item x}) (at_most (-- amount) projection)) input') @@ -291,7 +291,7 @@ [minimum (..exactly minimum projection)] (when additional 0 (in minimum) - _ (of ! each (list#composite minimum) + _ (by ! each (list#composite minimum) (..at_most additional projection))))) (the .public (separated_by separator projection) @@ -305,7 +305,7 @@ (|> projection (..and separator) ..some - (of ! each (|>> (list#each product.right) {.#Item x}))) + (by ! each (|>> (list#each product.right) {.#Item x}))) {.#None} (in {.#End})))) diff --git a/stdlib/source/library/lux/control/region.lux b/stdlib/source/library/lux/control/region.lux index a8163875bd..10ee87ab96 100644 --- a/stdlib/source/library/lux/control/region.lux +++ b/stdlib/source/library/lux/control/region.lux @@ -62,13 +62,13 @@ [[cleaners output] (computation [[] (list)])] (|> cleaners (monad.each ! (function (_ cleaner) (cleaner []))) - (of ! each (list#mix clean output))))) + (by ! each (list#mix clean output))))) (the .public (acquire! monad cleaner value) (for_any (_ ! a) (-> (Monad !) (-> a (! (Try Any))) a (for_any (_ r) (Region r ! a)))) (function (_ [region cleaners]) - (of monad in [{.#Item (function (_ region) (cleaner value)) + (by monad in [{.#Item (function (_ region) (cleaner value)) cleaners} {try.#Success value}]))) @@ -80,7 +80,7 @@ (the (each f) (function (_ fa) (function (_ region+cleaners) - (of super each + (by super each (function (_ [cleaners' temp]) [cleaners' (when temp {try.#Success value} @@ -125,7 +125,7 @@ (the (in value) (function (_ [region cleaners]) - (of super in [cleaners {try.#Success value}]))) + (by super in [cleaners {try.#Success value}]))) (the (conjoint ffa) (function (_ [region cleaners]) @@ -143,7 +143,7 @@ (-> (Monad !) Text (for_any (_ r) (Region r ! a)))) (function (_ [region cleaners]) - (of monad in [cleaners {try.#Failure error}]))) + (by monad in [cleaners {try.#Failure error}]))) (the .public (except monad exception message) (for_any (_ ! e a) @@ -156,6 +156,6 @@ (-> (Monad !) (! a) (for_any (_ r) (Region r ! a)))) (function (_ [region cleaners]) - (of monad each + (by monad each (|>> {try.#Success} [cleaners]) operation))) diff --git a/stdlib/source/library/lux/control/scope.lux b/stdlib/source/library/lux/control/scope.lux index bd08701146..afe0fec7f8 100644 --- a/stdlib/source/library/lux/control/scope.lux +++ b/stdlib/source/library/lux/control/scope.lux @@ -75,12 +75,12 @@ (implementation (the (functor it) (|> it - (of monad each) - (of ..functor each))) + (by monad each) + (by ..functor each))) (the in - (|>> (of monad in) - (of ..monad in))) + (|>> (by monad in) + (by ..monad in))) (the (conjoint eMeMa) (function (_ env) @@ -92,4 +92,4 @@ (for_any (_ ! context of) (-> (! of) (Scope context (! of)))) - (of ..monad in)) + (by ..monad in)) diff --git a/stdlib/source/library/lux/control/security/capability.lux b/stdlib/source/library/lux/control/security/capability.lux index c9364b441f..5f5ba8011c 100644 --- a/stdlib/source/library/lux/control/security/capability.lux +++ b/stdlib/source/library/lux/control/security/capability.lux @@ -48,7 +48,7 @@ (do [! meta.monad] [[this_module _] module.current .let [[name vars] declaration] - g!brand (of ! each (|>> code.as_text code.text) + g!brand (by ! each (|>> code.as_text code.text) (macro.symbol (%.message (symbol.as_text [this_module name])))) .let [type (` (..Capability (.Nominal (, g!brand)) (, input) (, output)))]] (in (list (` (every (, export_policy) diff --git a/stdlib/source/library/lux/control/state.lux b/stdlib/source/library/lux/control/state.lux index 488805362e..c4a484e46c 100644 --- a/stdlib/source/library/lux/control/state.lux +++ b/stdlib/source/library/lux/control/state.lux @@ -121,7 +121,7 @@ (implementation (the (each f sfa) (function (_ state) - (of functor each (function (_ [s a]) [s (f a)]) + (by functor each (function (_ [s a]) [s (f a)]) (sfa state)))))) (the (with//apply monad) @@ -129,7 +129,7 @@ (-> (Monad !) (Apply (With state !)))) (implementation - (the functor (with//functor (of monad functor))) + (the functor (with//functor (by monad functor))) (the (on sFa sFf) (function (_ state) @@ -149,11 +149,11 @@ (-> (Monad !) (Monad (With state !)))) (implementation - (the functor (with//functor (of monad functor))) + (the functor (with//functor (by monad functor))) (the (in a) (function (_ state) - (of monad in [state a]))) + (by monad in [state a]))) (the (conjoint sMsMa) (function (_ state) diff --git a/stdlib/source/library/lux/control/try.lux b/stdlib/source/library/lux/control/try.lux index 691a0365bb..42a8403678 100644 --- a/stdlib/source/library/lux/control/try.lux +++ b/stdlib/source/library/lux/control/try.lux @@ -76,12 +76,12 @@ (implementation (the (functor it) (|> it - (of ..functor each) - (of monad each))) + (by ..functor each) + (by monad each))) (the in - (|>> (of ..monad in) - (of monad in))) + (|>> (by ..monad in) + (by monad in))) (the (conjoint it) (do monad @@ -98,7 +98,7 @@ (-> (Monad !) (-> (! of) (! (Try of))))) - (of monad each (of ..monad in))) + (by monad each (by ..monad in))) (the .public (equivalence (open "/#[0]")) (for_any (_ of) diff --git a/stdlib/source/library/lux/control/writer.lux b/stdlib/source/library/lux/control/writer.lux index cb1624aa77..52f01489a0 100644 --- a/stdlib/source/library/lux/control/writer.lux +++ b/stdlib/source/library/lux/control/writer.lux @@ -39,7 +39,7 @@ (the (on fa ff) (let [[trace0 f] ff [trace1 a] fa] - [(of monoid composite trace0 trace1) (f a)])))) + [(by monoid composite trace0 trace1) (f a)])))) (the .public (monad monoid) (for_any (_ trace) @@ -49,11 +49,11 @@ (the functor ..functor) (the in - (|>> [(of monoid identity)])) + (|>> [(by monoid identity)])) (the (conjoint mma) (let [[trace0 [trace1 a]] mma] - [(of monoid composite trace0 trace1) a])))) + [(by monoid composite trace0 trace1) a])))) (every .public (With trace ! of) (! (Writer trace of))) @@ -65,22 +65,22 @@ (implementation (the (functor it) (|> it - (of ..functor each) - (of monad each))) + (by ..functor each) + (by monad each))) (the in (let [writer (..monad monoid)] - (|>> (of writer in) (of monad in)))) + (|>> (by writer in) (by monad in)))) (the (conjoint MlMla) (do monad [[l0 Mla] MlMla [l1 a] Mla] - (in [(of monoid composite l0 l1) a]))))) + (in [(by monoid composite l0 l1) a]))))) (the .public (lifted monoid monad) (for_any (_ ! trace of) (-> (Monoid trace) (Monad !) (-> (! of) (! (Writer trace of))))) - (of monad each (|>> [(of monoid identity)]))) + (by monad each (|>> [(by monoid identity)]))) diff --git a/stdlib/source/library/lux/data/collection/dictionary.lux b/stdlib/source/library/lux/data/collection/dictionary.lux index 2212d8e396..23959d3e03 100644 --- a/stdlib/source/library/lux/data/collection/dictionary.lux +++ b/stdlib/source/library/lux/data/collection/dictionary.lux @@ -262,9 +262,9 @@ (for_any (_ key value) (-> (Hash key) key (Collisions key value) (Maybe Index))) - (of maybe.monad each product.left + (by maybe.monad each product.left (array.example' (function (_ idx [key' val']) - (of key_hash = key key')) + (by key_hash = key key')) colls))) ... When #Hierarchy nodes grow too small, they're demoted to #Base @@ -307,7 +307,7 @@ {.#Right [key' val']} (array.has! hierarchy_idx - (node#has (level_up level) (of key_hash hash key') key' val' key_hash ..empty_node) + (node#has (level_up level) (by key_hash hash key') key' val' key_hash ..empty_node) h_array))] default)) [0 @@ -360,11 +360,11 @@ ... Otherwise, if it's being used by a KV, compare the keys. {.#Right key' val'} (array#revised idx - (if (of key_hash = key key') + (if (by key_hash = key key') ... If the same key is found, replace the value. {.#Right key val} ... Otherwise, compare the hashes of the keys. - {.#Left (let [hash' (of key_hash hash key')] + {.#Left (let [hash' (by key_hash hash key')] (if (n.= hash hash') ... If the hashes are ... the same, a new @@ -485,7 +485,7 @@ ... If, however, there was a KV-pair instead of a sub-node. {.#Right [key' val']} ... Check if the keys match. - (if (of key_hash = key key') + (if (by key_hash = key key') ... If so, remove the KV-pair and unset the Bit_Position. {#Base (without_bit_position bit bitmap) (array#lacks idx base)} @@ -537,7 +537,7 @@ (node#value (level_up level) hash key key_hash sub_node) {.#Right [key' val']} - (if (of key_hash = key key') + (if (by key_hash = key key') {try.#Success val'} {try.#Failure ..unknown_value})) {try.#Failure ..unknown_value})) @@ -545,8 +545,8 @@ ... For #Collisions nodes, do a linear scan of all the known KV-pairs. {#Collisions _hash _colls} (|> _colls - (array.example (|>> product.left (of key_hash = key))) - (of maybe.monad each product.right) + (array.example (|>> product.left (by key_hash = key))) + (by maybe.monad each product.right) (try.of_maybe ..unknown_value)) )) @@ -634,21 +634,21 @@ (-> key value (Dictionary key value) (Dictionary key value))) (let [[key_hash node] dict] - [key_hash (node#has root_level (of key_hash hash key) key val key_hash node)])) + [key_hash (node#has root_level (by key_hash hash key) key val key_hash node)])) (the .public (lacks key dict) (for_any (_ key value) (-> key (Dictionary key value) (Dictionary key value))) (let [[key_hash node] dict] - [key_hash (node#lacks root_level (of key_hash hash key) key key_hash node)])) + [key_hash (node#lacks root_level (by key_hash hash key) key key_hash node)])) (the .public (value key dict) (for_any (_ key value) (-> key (Dictionary key value) (Try value))) (let [[key_hash node] dict] - (node#value root_level (of key_hash hash key) key key_hash node))) + (node#value root_level (by key_hash hash key) key key_hash node))) (the .public (key? dict key) (for_any (_ key value) @@ -836,7 +836,7 @@ (Functor (Dictionary key))) (implementation (the (each f fa) - (.revised #root (of ..node_functor each f) fa)))) + (.revised #root (by ..node_functor each f) fa)))) (the .public (monoid hash) (for_any (_ key value) diff --git a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux index 924f57d5da..d49024fe9c 100644 --- a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux +++ b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux @@ -89,11 +89,11 @@ {.#Some node} (let [node_key (its #key node)] - (if (of dict = node_key key) + (if (by dict = node_key key) ... (_#= node_key key) {try.#Success (its #value node)} - (of dict < node_key key) + (by dict < node_key key) ... (_#< node_key key) (again (its #left node)) @@ -116,9 +116,9 @@ {.#Some node} (let [node_key (its #key node)] - (or (of dict = node_key key) + (or (by dict = node_key key) ... (_#= node_key key) - (if (of dict < node_key key) + (if (by dict < node_key key) ... (_#< node_key key) (again (its #left node)) (again (its #right node))))))))) @@ -403,7 +403,7 @@ {.#Some (right_balanced (its #key right) (its #value right) (its #right right>>left) - (of maybe.functor each reddened (its #right right)))}) + (by maybe.functor each reddened (its #right right)))}) _ (halt! ..invariant_violation)) @@ -432,7 +432,7 @@ (its #value left>>right) {.#Some (left_balanced (its #key left) (its #value left) - (of maybe.functor each reddened (its #left left)) + (by maybe.functor each reddened (its #left left)) (its #left left>>right))} {.#Some (black key value (its #right left>>right) ?right)}) diff --git a/stdlib/source/library/lux/data/collection/list.lux b/stdlib/source/library/lux/data/collection/list.lux index ccff1346c0..7598f627d4 100644 --- a/stdlib/source/library/lux/data/collection/list.lux +++ b/stdlib/source/library/lux/data/collection/list.lux @@ -361,7 +361,7 @@ true [{.#Item x xs'} {.#Item y ys'}] - (and (of Equivalence = x y) + (and (by Equivalence = x y) (= xs' ys')) [_ _] @@ -373,12 +373,12 @@ (Hash (List of)))) (implementation (the equivalence - (..equivalence (of super equivalence))) + (..equivalence (by super equivalence))) (the hash - (of ..mix mix + (by ..mix mix (function (_ member hash) - (n.+ (of super hash member) hash)) + (n.+ (by super hash member) hash)) 0)))) (the .public monoid @@ -473,7 +473,7 @@ Bit)) (.when xs {.#Item x' xs'} - (or (of eq = x x') + (or (by eq = x x') (member? eq xs' x)) end @@ -659,7 +659,7 @@ (for_any (_ of) (-> (List (List of)) (List of))) - (of ..monad conjoint)) + (by ..monad conjoint)) (the .public (with monad) (for_any (_ !) @@ -672,7 +672,7 @@ ..functor)) (the in - (|>> (of ..monad in) (of monad in))) + (|>> (by ..monad in) (by monad in))) (the (conjoint MlMla) (do [! monad] @@ -685,7 +685,7 @@ (-> (Monad !) (-> (! of) (! (List of))))) - (of monad each (of ..monad in))) + (by monad each (by ..monad in))) (the .public (enumeration xs) (for_any (_ of) diff --git a/stdlib/source/library/lux/data/collection/queue.lux b/stdlib/source/library/lux/data/collection/queue.lux index 49dd6fe55c..cd17e3c679 100644 --- a/stdlib/source/library/lux/data/collection/queue.lux +++ b/stdlib/source/library/lux/data/collection/queue.lux @@ -115,7 +115,7 @@ (Equivalence (Queue of)))) (implementation (the (= expected actual) - (of (list.equivalence super) = + (by (list.equivalence super) = (..list expected) (..list actual))))) diff --git a/stdlib/source/library/lux/data/collection/queue/priority.lux b/stdlib/source/library/lux/data/collection/queue/priority.lux index 350cd3a6eb..4b5257d7f1 100644 --- a/stdlib/source/library/lux/data/collection/queue/priority.lux +++ b/stdlib/source/library/lux/data/collection/queue/priority.lux @@ -93,7 +93,7 @@ (loop (again [node tree]) (when (tree.root node) {#0 reference} - (of equivalence = reference member) + (by equivalence = reference member) {#1 [left right]} (or (again left) @@ -121,26 +121,26 @@ {.#Some right} {.#Some =left} - {.#Some (of ..builder branch =left right)}) + {.#Some (by ..builder branch =left right)}) (when (again right) {.#None} {.#Some left} {.#Some =right} - {.#Some (of ..builder branch left =right)}))))))) + {.#Some (by ..builder branch left =right)}))))))) (the .public (end priority value queue) (for_any (_ of) (-> Priority of (Queue of) (Queue of))) - (let [addition (of ..builder leaf priority value)] + (let [addition (by ..builder leaf priority value)] (nominal.abstraction (when (nominal.representation queue) {.#None} {.#Some addition} {.#Some tree} - {.#Some (of ..builder branch tree addition)})))) + {.#Some (by ..builder branch tree addition)})))) ) (the .public empty? diff --git a/stdlib/source/library/lux/data/collection/sequence.lux b/stdlib/source/library/lux/data/collection/sequence.lux index 368026dbc7..f08ef78525 100644 --- a/stdlib/source/library/lux/data/collection/sequence.lux +++ b/stdlib/source/library/lux/data/collection/sequence.lux @@ -276,8 +276,8 @@ (for_any (_ of) (Exception [(Sequence of) Natural])) (exception.report - (list ["Size" (of n.base_10 injection (its #size sequence))] - ["Index" (of n.base_10 injection index)]))) + (list ["Size" (by n.base_10 injection (its #size sequence))] + ["Index" (by n.base_10 injection index)]))) (exception.the base_was_not_found) @@ -501,7 +501,7 @@ [#level (its #level xs) #size (its #size xs) #root (let [ ... TODO: This binding was established to get around a compilation error. Fix and inline! - $ (of node_functor each $)] + $ (by node_functor each $)] (|> xs (its #root) (array.each $))) #tail (|> xs (its #tail) (array.each $))]))) diff --git a/stdlib/source/library/lux/data/collection/set.lux b/stdlib/source/library/lux/data/collection/set.lux index 7c0ab17493..cac3b82f22 100644 --- a/stdlib/source/library/lux/data/collection/set.lux +++ b/stdlib/source/library/lux/data/collection/set.lux @@ -109,7 +109,7 @@ (the (hash set) (|> set ..list - (of (list.hash (..member_hash set)) hash))))) + (by (list.hash (..member_hash set)) hash))))) (the .public (monoid hash) (for_any (_ of) diff --git a/stdlib/source/library/lux/data/collection/set/multi.lux b/stdlib/source/library/lux/data/collection/set/multi.lux index b894b7a162..8ee4b9af4c 100644 --- a/stdlib/source/library/lux/data/collection/set/multi.lux +++ b/stdlib/source/library/lux/data/collection/set/multi.lux @@ -173,7 +173,7 @@ (let [set (nominal.representation set) [hash _] set] (list#mix (function (_ [elem multiplicity] acc) - (|> elem (of hash hash) (n.* multiplicity) (n.+ acc))) + (|> elem (by hash hash) (n.* multiplicity) (n.+ acc))) 0 (dictionary.entries set)))))) ) diff --git a/stdlib/source/library/lux/data/collection/set/ordered.lux b/stdlib/source/library/lux/data/collection/set/ordered.lux index fcc7fdf6bf..eb0f78058d 100644 --- a/stdlib/source/library/lux/data/collection/set/ordered.lux +++ b/stdlib/source/library/lux/data/collection/set/ordered.lux @@ -125,7 +125,7 @@ (Equivalence (Set of))) (implementation (the (= expected actual) - (of (list.equivalence (of (nominal.representation expected) equivalence)) + (by (list.equivalence (by (nominal.representation expected) equivalence)) = (..list expected) (..list actual))))) ) diff --git a/stdlib/source/library/lux/data/collection/stack.lux b/stdlib/source/library/lux/data/collection/stack.lux index 94d42bc753..c885e2ba5f 100644 --- a/stdlib/source/library/lux/data/collection/stack.lux +++ b/stdlib/source/library/lux/data/collection/stack.lux @@ -76,7 +76,7 @@ (Equivalence (Stack of)))) (implementation (the (= expected actual) - (of (//.equivalence super) = + (by (//.equivalence super) = (nominal.representation expected) (nominal.representation actual))))) @@ -86,6 +86,6 @@ (the (each f value) (|> value nominal.representation - (of //.functor each f) + (by //.functor each f) nominal.abstraction)))) ) diff --git a/stdlib/source/library/lux/data/collection/tree.lux b/stdlib/source/library/lux/data/collection/tree.lux index e5f9eda6df..77ad7001e6 100644 --- a/stdlib/source/library/lux/data/collection/tree.lux +++ b/stdlib/source/library/lux/data/collection/tree.lux @@ -71,8 +71,8 @@ (Equivalence (Tree a)))) (implementation (the (= tx ty) - (and (of super = (its #value tx) (its #value ty)) - (of (list.equivalence (equivalence super)) = (its #children tx) (its #children ty)))))) + (and (by super = (its #value tx) (its #value ty)) + (by (list.equivalence (equivalence super)) = (its #children tx) (its #children ty)))))) (the .public functor (Functor Tree) diff --git a/stdlib/source/library/lux/data/collection/tree/finger.lux b/stdlib/source/library/lux/data/collection/tree/finger.lux index 4f0f50441b..a6c4850de2 100644 --- a/stdlib/source/library/lux/data/collection/tree/finger.lux +++ b/stdlib/source/library/lux/data/collection/tree/finger.lux @@ -62,7 +62,7 @@ (the (branch left right) (nominal.abstraction [#monoid monoid - #tag (of monoid composite (..tag left) (..tag right)) + #tag (by monoid composite (..tag left) (..tag right)) #root {.#Right [left right]}])))) (the .public (value tree) diff --git a/stdlib/source/library/lux/data/color/rgb.lux b/stdlib/source/library/lux/data/color/rgb.lux index 8ac08ff3af..a8c802def1 100644 --- a/stdlib/source/library/lux/data/color/rgb.lux +++ b/stdlib/source/library/lux/data/color/rgb.lux @@ -90,7 +90,7 @@ (the .public equivalence (Equivalence RGB) - (of ..hash equivalence)) + (by ..hash equivalence)) (alias [=] ..equivalence) diff --git a/stdlib/source/library/lux/data/format/json.lux b/stdlib/source/library/lux/data/format/json.lux index dfaac2e7e6..3cba5879ad 100644 --- a/stdlib/source/library/lux/data/format/json.lux +++ b/stdlib/source/library/lux/data/format/json.lux @@ -216,7 +216,7 @@ (,, (template.with [ ] [[{ x'} { y'}] - (of = x' y')] + (by = x' y')] [#Boolean bit.equivalence] [#Number decimal.equivalence] @@ -277,7 +277,7 @@ "0.0" value - (let [raw (of decimal.base_10 injection value)] + (let [raw (by decimal.base_10 injection value)] (if (decimal.< +0.0 value) raw (|> raw (text.split_at 1) maybe.trusted product.right)))))) @@ -534,32 +534,32 @@ (implementation (the injection (|>> .natural - (of ..natural injection))) + (by ..natural injection))) (the projection - (|>> (of ..natural projection) - (of try.functor each (|>> .integer)))))) + (|>> (by ..natural projection) + (by try.functor each (|>> .integer)))))) (the .public revolution (Format JSON Revolution) (implementation (the injection (|>> .natural - (of ..natural injection))) + (by ..natural injection))) (the projection - (|>> (of ..natural projection) - (of try.functor each (|>> .revolution)))))) + (|>> (by ..natural projection) + (by try.functor each (|>> .revolution)))))) (template.with [,name ,type ,format] [(the .public ,name (Format JSON ,type) (implementation (the injection - (|>> (of ,format injection) + (|>> (by ,format injection) {#String})) (the (projection it) (when it {#String it} - (of ,format projection it) + (by ,format projection it) _ (exception.except ..cannot_project [it])))))] @@ -579,10 +579,10 @@ (the (injection it) {#Array (when it {#0 it} - (.list {#Boolean #0} (of left injection it)) + (.list {#Boolean #0} (by left injection it)) {#1 it} - (.list {#Boolean #1} (of right injection it)))}) + (.list {#Boolean #1} (by right injection it)))}) (the (projection it) (`` (when it (,, (template.with [,flag ,format] @@ -652,7 +652,7 @@ (Format JSON (Dictionary Text of)))) (implementation (the injection - (|>> (dictionary#each (of value injection)) + (|>> (dictionary#each (by value injection)) {#Object})) (the (projection it) (when it @@ -681,12 +681,12 @@ (implementation (the (injection it) {#Array (.list {#Number expected} - (of format injection it))}) + (by format injection it))}) (the (projection it) (when it {#Array (.list {#Number actual} case)} (if (decimal.= expected actual) - (of format projection case) + (by format projection case) (exception.except ..cannot_project [it])) _ @@ -700,15 +700,15 @@ (implementation (the (injection it) (when it - {#0 it} (of (left expected) injection it) - {#1 it} (of (right (++ expected)) injection it))) + {#0 it} (by (left expected) injection it) + {#1 it} (by (right (++ expected)) injection it))) (the (projection it) - (when (of (left expected) projection it) + (when (by (left expected) projection it) {try.#Success it} {try.#Success {#0 it}} {try.#Failure _} - (when (of (right (++ expected)) projection it) + (when (by (right (++ expected)) projection it) {try.#Success it} {try.#Success {#1 it}} @@ -732,13 +732,13 @@ (function (_ [index end?]) (implementation (the (injection it) - (.list (of format injection it))) + (.list (by format injection it))) (the (projection it) (if (.or (not end?) (natural.= (++ index) (list.size it))) (do try.monad [it (list.item index it)] - (of format projection it)) + (by format projection it)) (exception.except ..cannot_project [{#Array it}])))))) (the .public (and left right) @@ -749,12 +749,12 @@ (implementation (the (injection it) (all list#composite - (of (left [index false]) injection (product.left it)) - (of (right [(++ index) true]) injection (product.right it)))) + (by (left [index false]) injection (product.left it)) + (by (right [(++ index) true]) injection (product.right it)))) (the (projection it) (do try.monad - [left (of (left [index false]) projection it) - right (of (right [(++ index) true]) projection it)] + [left (by (left [index false]) projection it) + right (by (right [(++ index) true]) projection it)] (in [left right])))))) (the .public (record member) @@ -764,11 +764,11 @@ (let [format (member [0 true])] (implementation (the (injection it) - {#Array (of format injection it)}) + {#Array (by format injection it)}) (the (projection it) (when it {#Array items} - (of format projection items) + (by format projection items) _ (exception.except ..cannot_project [it])))))) diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux index d6d7681467..97a0cb06de 100644 --- a/stdlib/source/library/lux/data/format/tar.lux +++ b/stdlib/source/library/lux/data/format/tar.lux @@ -107,10 +107,10 @@ (let [suffix padded_size (n.+ (text.size suffix) )] (|>> nominal.representation - (of n.octal injection) + (by n.octal injection) (..octal_padding ) (text.suffix suffix) - (of utf8.format injection) + (by utf8.format injection) (!binary.segment padded_size)))) (the @@ -162,10 +162,10 @@ (Projection Small) (<| (function (_ state)) (parsed state digits (?binary.segment ..small_size)) - (parsed state digits (<>.of_try (of utf8.format projection digits))) + (parsed state digits (<>.of_try (by utf8.format projection digits))) (parsed state _ ..small_suffix) (do [! try.monad] - [value (of n.octal projection digits) + [value (by n.octal projection digits) value (..small value)] (in [state value])))) @@ -173,13 +173,13 @@ (Projection Big) (<| (function (_ state)) (parsed state digits (?binary.segment ..big_size)) - (parsed state digits (<>.of_try (of utf8.format projection digits))) + (parsed state digits (<>.of_try (by utf8.format projection digits))) (parsed state end ?binary.bits_08) (let [expected (`` (.character (,, (static ..blank))))]) (if (not (n.= expected end)) (exception.except ..wrong_character [expected end])) (do [! try.monad] - [value (of n.octal projection digits) + [value (by n.octal projection digits) value (..big value)] (in [state value])))) @@ -206,7 +206,7 @@ (the checksum_checksum (|> ..dummy_checksum nominal.representation - (of utf8.format injection) + (by utf8.format injection) ..checksum)) (the checksum_code @@ -215,7 +215,7 @@ (|>> ..checksum ..as_small ..from_small - (of n.octal injection) + (by n.octal injection) (..octal_padding ..small_size) (text.suffix ..checksum_suffix) nominal.abstraction)) @@ -225,17 +225,17 @@ (let [padded_size (n.+ (text.size ..checksum_suffix) ..small_size)] (|>> nominal.representation - (of utf8.format injection) + (by utf8.format injection) (!binary.segment padded_size)))) (the checksum_projection (Projection [Natural Checksum]) (<| (function (_ state)) (parsed state ascii (?binary.segment ..small_size)) - (parsed state digits (<>.of_try (of utf8.format projection ascii))) + (parsed state digits (<>.of_try (by utf8.format projection ascii))) (parsed state _ ..small_suffix) (parsed state value (<>.of_try - (of n.octal projection digits))) + (by n.octal projection digits))) {try.#Success [state [value (nominal.abstraction (%.message digits ..checksum_suffix))]]})) ) @@ -247,7 +247,7 @@ (the ascii? (-> Text Bit) - (|>> (of utf8.format injection) + (|>> (by utf8.format injection) (binary.mix (function (_ character verdict) (.and verdict (n.<= ..last_ascii character))) @@ -271,7 +271,7 @@ size (loop (again [end (-- size)]) (when end - 0 (of utf8.format injection "") + 0 (by utf8.format injection "") _ (let [last_character (binary!.bits_08 end string)] (`` (when (.natural last_character) (.character (,, (static ..null))) @@ -296,7 +296,7 @@ (Try )) (if (..ascii? value) (if (|> value - (of utf8.format injection) + (by utf8.format injection) binary!.size (n.> )) (exception.except [value]) @@ -314,7 +314,7 @@ padded_size (n.+ (text.size suffix) )] (|>> nominal.representation (text.suffix suffix) - (of utf8.format injection) + (by utf8.format injection) (!binary.segment padded_size)))) (the @@ -326,7 +326,7 @@ (if (not (n.= expected end)) (exception.except ..wrong_character [expected end])) (do [! try.monad] - [text (of utf8.format projection (..un_padded string)) + [text (by utf8.format projection (..un_padded string)) it ( text)] (in [state it])))) @@ -357,7 +357,7 @@ (let [padded_size (n.+ (text.size ..null) ..magic_size)] (|>> nominal.representation - (of utf8.format injection) + (by utf8.format injection) (!binary.segment padded_size)))) (the magic_projection @@ -368,8 +368,8 @@ (let [expected (`` (.character (,, (static ..null))))]) (if (not (n.= expected end)) (exception.except ..wrong_character [expected end])) - (of try.monad each (|>> nominal.abstraction [state]) - (of utf8.format projection string)))) + (by try.monad each (|>> nominal.abstraction [state]) + (by utf8.format projection string)))) ) (the block_size Size 512) @@ -851,7 +851,7 @@ Natural) (let [|checksum| (|> checksum ..from_checksum - (of utf8.format injection) + (by utf8.format injection) ..checksum)] (|> (..checksum header) (n.- |checksum|) @@ -996,7 +996,7 @@ (the .public projection (Projection Tar) (|> (<>.some ..entry_projection) - (of <>.monad each sequence.of_list) + (by <>.monad each sequence.of_list) (<>.before ..end_of_archive_projection))) (the .public format diff --git a/stdlib/source/library/lux/data/format/xml.lux b/stdlib/source/library/lux/data/format/xml.lux index 6658e18d91..ed6e6f1093 100644 --- a/stdlib/source/library/lux/data/format/xml.lux +++ b/stdlib/source/library/lux/data/format/xml.lux @@ -62,7 +62,7 @@ (Projection Text) (|> (do [! <>.monad] [hex? (<>.maybe (.this "x"))] - (<| (of ! each (|>> .natural text.of_character)) + (<| (by ! each (|>> .natural text.of_character)) (<>.format integer.base_10) .slice .many! @@ -125,7 +125,7 @@ (the attrs^ (Projection Attrs) - (<| (of <>.monad each (dictionary.of_list symbol.hash)) + (<| (by <>.monad each (dictionary.of_list symbol.hash)) <>.some (<>.and (..spaced^ attr_name^)) (<>.after (.this "=")) @@ -297,7 +297,7 @@ [{#Node expected/tag expected/attrs expected/children} {#Node actual/tag actual/attrs actual/children}] (and (symbol.= expected/tag actual/tag) - (of (dictionary.equivalence text.equivalence) = expected/attrs actual/attrs) + (by (dictionary.equivalence text.equivalence) = expected/attrs actual/attrs) (n.= (list.size expected/children) (list.size actual/children)) (|> (list.zipped_2 expected/children actual/children) diff --git a/stdlib/source/library/lux/data/product.lux b/stdlib/source/library/lux/data/product.lux index 41df4979e0..b1c129b803 100644 --- a/stdlib/source/library/lux/data/product.lux +++ b/stdlib/source/library/lux/data/product.lux @@ -64,8 +64,8 @@ (Equivalence [left right]))) (implementation (the (= [rl rr] [sl sr]) - (and (of left = rl sl) - (of right = rr sr))))) + (and (by left = rl sl) + (by right = rr sr))))) (the .public (hash left right) (for_any (_ left right) @@ -73,11 +73,11 @@ (Hash [left right]))) (implementation (the equivalence - (..equivalence (of left equivalence) - (of right equivalence))) + (..equivalence (by left equivalence) + (by right equivalence))) (the (hash [leftV rightV]) - (.i64_+# (of left hash leftV) - (of right hash rightV))))) + (.i64_+# (by left hash leftV) + (by right hash rightV))))) (the .public (monoid left right) (for_any (_ left right) @@ -85,8 +85,8 @@ (Monoid [left right]))) (implementation (the identity - [(of left identity) - (of right identity)]) + [(by left identity) + (by right identity)]) (the (composite before after) - [(of left composite (..left before) (..left after)) - (of right composite (..right before) (..right after))]))) + [(by left composite (..left before) (..left after)) + (by right composite (..right before) (..right after))]))) diff --git a/stdlib/source/library/lux/data/sum.lux b/stdlib/source/library/lux/data/sum.lux index 3e37acccbb..c6d03ee7cb 100644 --- a/stdlib/source/library/lux/data/sum.lux +++ b/stdlib/source/library/lux/data/sum.lux @@ -77,10 +77,10 @@ (the (= expected actual) (when [expected actual] [{.#Left expected} {.#Left actual}] - (of left = expected actual) + (by left = expected actual) [{.#Right expected} {.#Right actual}] - (of right = expected actual) + (by right = expected actual) _ false)))) @@ -91,12 +91,12 @@ (Hash (Or l r)))) (implementation (the equivalence - (..equivalence (of left equivalence) - (of right equivalence))) + (..equivalence (by left equivalence) + (by right equivalence))) (the (hash value) (.natural (when value {.#Left value} - (.int_*# +2 (.integer (of left hash value))) + (.int_*# +2 (.integer (by left hash value))) {.#Right value} - (.int_*# +3 (.integer (of right hash value)))))))) + (.int_*# +3 (.integer (by right hash value)))))))) diff --git a/stdlib/source/library/lux/data/text/escape.lux b/stdlib/source/library/lux/data/text/escape.lux index e9e737131c..11adaaed75 100644 --- a/stdlib/source/library/lux/data/text/escape.lux +++ b/stdlib/source/library/lux/data/text/escape.lux @@ -100,7 +100,7 @@ (the (unicode_escaped character pre_offset pre_limit previous current) (-> Character Natural Natural Text Text [Text Text Natural]) - (let [code (of n.hex injection character) + (let [code (by n.hex injection character) replacement (%.message ..sigil "u" (when (.text_size# code) 1 (%.message "000" code) @@ -188,7 +188,7 @@ (-> Natural Text Text Natural (Try [Text Text Natural])) (when (|> current (.text_clip# (n.+ ..ascii_escape_offset offset) ..code_size) - (of n.hex projection)) + (by n.hex projection)) {try.#Success character} (let [limit' (|> limit (n.- offset) (n.- ..unicode_escape_offset))] {try.#Success [(%.message previous diff --git a/stdlib/source/library/lux/data/text/regex.lux b/stdlib/source/library/lux/data/text/regex.lux index 3ec57aec52..e66f7d848a 100644 --- a/stdlib/source/library/lux/data/text/regex.lux +++ b/stdlib/source/library/lux/data/text/regex.lux @@ -72,7 +72,7 @@ (the together (-> (Projection (List Text)) (Projection Text)) - (of <>.monad each //.together)) + (by <>.monad each //.together)) (the symbol_character^ (Projection Text) @@ -105,9 +105,9 @@ (the re_range^ (Projection Code) (do [! <>.monad] - [from (|> regex_character^ (of ! each (|>> (//.character 0) maybe.trusted))) + [from (|> regex_character^ (by ! each (|>> (//.character 0) maybe.trusted))) _ (.this "-") - to (|> regex_character^ (of ! each (|>> (//.character 0) maybe.trusted)))] + to (|> regex_character^ (by ! each (|>> (//.character 0) maybe.trusted)))] (in (` (.range (, (code.natural from)) (, (code.natural to))))))) (the re_character^ @@ -318,7 +318,7 @@ [idx names (list.partial (list g!temp complex - (` .let) (` [(, g!total) (of //.monoid (,' composite) (, g!total) (, g!temp))])) + (` .let) (` [(, g!total) (by //.monoid (,' composite) (, g!total) (, g!temp))])) steps)] {.#Right [{#Capturing [?name num_captures]} scoped]} @@ -334,7 +334,7 @@ [idx! (list.partial name! names) (list.partial (list name! scoped - (` .let) (` [(, g!total) (of //.monoid (,' composite) (, g!total) (, access))])) + (` .let) (` [(, g!total) (by //.monoid (,' composite) (, g!total) (, access))])) steps)]) ))) [0 @@ -353,7 +353,7 @@ (the (alternative lexer) (-> (Projection Text) (Projection [Text Any])) - (<>.and lexer (of <>.monad in []))) + (<>.and lexer (by <>.monad in []))) (the (or left right) (for_any (_ left right) @@ -440,7 +440,7 @@ (the (regex^ current_module) (-> Text (Projection Code)) - (of <>.monad each product.right (re_alternative^ true re_scoped^ current_module))) + (by <>.monad each product.right (re_alternative^ true re_scoped^ current_module))) (the .public regex (syntax.macro (_ [pattern .text]) diff --git a/stdlib/source/library/lux/data/text/unicode/block.lux b/stdlib/source/library/lux/data/text/unicode/block.lux index 9bf60bc7dc..735ec99a48 100644 --- a/stdlib/source/library/lux/data/text/unicode/block.lux +++ b/stdlib/source/library/lux/data/text/unicode/block.lux @@ -30,10 +30,10 @@ (the (composite left right) (interval.between n.enum - (n.min (of left bottom) - (of right bottom)) - (n.max (of left top) - (of right top)))))) + (n.min (by left bottom) + (by right bottom)) + (n.max (by left top) + (by right top)))))) (the .public (block start additional) (-> Character Natural diff --git a/stdlib/source/library/lux/data/text/unicode/set.lux b/stdlib/source/library/lux/data/text/unicode/set.lux index 2fa2ff884a..83c1cec077 100644 --- a/stdlib/source/library/lux/data/text/unicode/set.lux +++ b/stdlib/source/library/lux/data/text/unicode/set.lux @@ -37,12 +37,12 @@ (the .public (composite left right) (-> Set Set Set) - (of builder branch left right)) + (by builder branch left right)) (the (singleton block) (-> Block Set) - (of builder leaf block [])) + (by builder leaf block [])) (the .public (set [head tail]) (-> [Block (List Block)] diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux index 69cedab21e..461b903a85 100644 --- a/stdlib/source/library/lux/debug.lux +++ b/stdlib/source/library/lux/debug.lux @@ -640,9 +640,9 @@ (the target (.Projection Target) (<>.either (<>.and .local - (of <>.monad in {.#None})) + (by <>.monad in {.#None})) (.tuple (<>.and .local - (of <>.monad each (|>> {.#Some}) .any))))) + (by <>.monad each (|>> {.#Some}) .any))))) (exception.the .public (unknown_local_binding name) (Exception Text) diff --git a/stdlib/source/library/lux/documentation.lux b/stdlib/source/library/lux/documentation.lux index 2f46cf07c9..8dd35e1a91 100644 --- a/stdlib/source/library/lux/documentation.lux +++ b/stdlib/source/library/lux/documentation.lux @@ -697,7 +697,7 @@ description .any]) (do [! meta.monad] [coverage (|> (binding.globals name) - (of ! each (|>> (list.only exported_non_default?) + (by ! each (|>> (list.only exported_non_default?) (list#each product.left)))) dependees (import.all name)] (in (list (` (is Documentation diff --git a/stdlib/source/library/lux/documentation/remember.lux b/stdlib/source/library/lux/documentation/remember.lux index c15e007757..426b9a6cf2 100644 --- a/stdlib/source/library/lux/documentation/remember.lux +++ b/stdlib/source/library/lux/documentation/remember.lux @@ -45,7 +45,7 @@ .integer) (do <>.monad [raw .text] - (when (of date.format projection raw) + (when (by date.format projection raw) {try.#Success date} (in date) diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux index 208d692457..9ed1f66a13 100644 --- a/stdlib/source/library/lux/ffi.jvm.lux +++ b/stdlib/source/library/lux/ffi.jvm.lux @@ -341,32 +341,32 @@ (-> Primitive_Mode (Type Primitive) Code) (when mode {#ManualPrM} - (if (of jvm.equivalence = jvm.boolean type) (` ..Boolean) - (of jvm.equivalence = jvm.byte type) (` ..Byte) - (of jvm.equivalence = jvm.short type) (` ..Short) - (of jvm.equivalence = jvm.int type) (` ..Integer) - (of jvm.equivalence = jvm.long type) (` ..Long) - (of jvm.equivalence = jvm.float type) (` ..Float) - (of jvm.equivalence = jvm.double type) (` ..Double) - (of jvm.equivalence = jvm.char type) (` ..Character) + (if (by jvm.equivalence = jvm.boolean type) (` ..Boolean) + (by jvm.equivalence = jvm.byte type) (` ..Byte) + (by jvm.equivalence = jvm.short type) (` ..Short) + (by jvm.equivalence = jvm.int type) (` ..Integer) + (by jvm.equivalence = jvm.long type) (` ..Long) + (by jvm.equivalence = jvm.float type) (` ..Float) + (by jvm.equivalence = jvm.double type) (` ..Double) + (by jvm.equivalence = jvm.char type) (` ..Character) ... else (undefined)) {#AutoPrM} - (if (of jvm.equivalence = jvm.boolean type) + (if (by jvm.equivalence = jvm.boolean type) (` .Bit) - (or (of jvm.equivalence = jvm.short type) - (of jvm.equivalence = jvm.byte type) - (of jvm.equivalence = jvm.int type) - (of jvm.equivalence = jvm.long type)) + (or (by jvm.equivalence = jvm.short type) + (by jvm.equivalence = jvm.byte type) + (by jvm.equivalence = jvm.int type) + (by jvm.equivalence = jvm.long type)) (` .Integer) - (or (of jvm.equivalence = jvm.float type) - (of jvm.equivalence = jvm.double type)) + (or (by jvm.equivalence = jvm.float type) + (by jvm.equivalence = jvm.double type)) (` .Decimal) - (of jvm.equivalence = jvm.char type) + (by jvm.equivalence = jvm.char type) (` .Natural) ... else @@ -504,7 +504,7 @@ (|>> (?.after (?code.this (' ))) (?.after ..wildcard^) ?code.tuple - (of ?.monad each )))] + (by ?.monad each )))] [upper^ < jvm.upper] [lower^ > jvm.lower] @@ -547,7 +547,7 @@ (the array^ (-> (Projection (Type Value)) (Projection (Type Array))) (|>> ?code.tuple - (of ?.monad each jvm.array))) + (by ?.monad each jvm.array))) (the (type^ type_vars) (-> (List (Type Var)) (Projection (Type Value))) @@ -572,7 +572,7 @@ (the var^ (Projection (Type Var)) - (of ?.monad each jvm.var ?code.local)) + (by ?.monad each jvm.var ?code.local)) (the vars^ (Projection (List (Type Var))) @@ -639,7 +639,7 @@ (all ?.or (?code.this (' "volatile")) (?code.this (' "final")) - (of ?.monad in []))) + (by ?.monad in []))) (the (field_decl^ type_vars) (-> (List (Type Var)) (Projection [Member_Declaration FieldDecl])) @@ -1368,7 +1368,7 @@ (the .public class (syntax.macro (_ [.let [! ?.monad] im inheritance_modifier^ - [class_vars full_class_name] (of ! each projection.declaration ..declaration^) + [class_vars full_class_name] (by ! each projection.declaration ..declaration^) super (?.else $Object (class^ class_vars)) interfaces (?.else (list) @@ -1388,7 +1388,7 @@ (the .public interface (syntax.macro (_ [.let [! ?.monad] - [class_vars full_class_name] (of ! each projection.declaration ..declaration^) + [class_vars full_class_name] (by ! each projection.declaration ..declaration^) supers (?.else (list) (?code.tuple (?.some (class^ class_vars)))) annotations ..annotations^ @@ -1529,7 +1529,7 @@ (in [arg_inputs input_jvm_types arg_types]))) _ - (of meta.monad in [(list) (list) (list)]))) + (by meta.monad in [(list) (list) (list)]))) (the (with_return_maybe member never_null? unboxed return_term) (-> Import_Member_Declaration Bit (Type Value) Code Code) @@ -1580,7 +1580,7 @@ {#AutoPrM} (expansion.let [' (template.spliced ) (template.with [
 ]
-                                                                      [(of jvm.equivalence =  unboxed)
+                                                                      [(by jvm.equivalence =  unboxed)
                                                                        (expansion.let [' (template.spliced )]
                                                                          [
                                                                           (` (.|> (, raw) (,* 
)))
@@ -1857,7 +1857,7 @@
   (let [[_ class_name] (projection.declaration declaration)]
     (when (load_class class_name)
       {.#Right class}
-      (of meta.monad in (if (interface? class)
+      (by meta.monad in (if (interface? class)
                           {#Interface}
                           {#Class}))
 
@@ -1885,14 +1885,14 @@
   (the (lux_type->jvm_type context type)
     (-> Type_Context .Type (Meta (Type Value)))
     (if (type.= .Any type)
-      (of meta.monad in $Object)
+      (by meta.monad in $Object)
       (when type
         {.#Nominal name params}
         (`` (if (,, (template.with []
                       [(text.= (..reflection ) name)
                        (when params
                          {.#End}
-                         (of meta.monad in )
+                         (by meta.monad in )
 
                          _
                          )]
@@ -1910,7 +1910,7 @@
                     [(text.= (..reflection (jvm.array )) name)
                      (when params
                        {.#End}
-                       (of meta.monad in (jvm.array ))
+                       (by meta.monad in (jvm.array ))
 
                        _
                        )]
@@ -1927,7 +1927,7 @@
               (text.= array.nominal name)
               (when params
                 {.#Item {.#Apply writeLT {.#Apply readLT _Mutable}} {.#End}}
-                (of meta.monad each jvm.array
+                (by meta.monad each jvm.array
                     (lux_type->jvm_type context readLT))
 
                 _
@@ -1937,14 +1937,14 @@
               (when params
                 {.#End}
                 (let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
-                  (of meta.monad each jvm.array
+                  (by meta.monad each jvm.array
                       (lux_type->jvm_type context {.#Nominal unprefixed (list)})))
 
                 _
                 )
 
               ... else
-              (of meta.monad each (function (_ parameters) (jvm.class parameters name))
+              (by meta.monad each (function (_ parameters) (jvm.class parameters name))
                   (.is (Meta (List (Type Parameter)))
                        (monad.each meta.monad
                                    (function (_ paramLT)
@@ -1989,7 +1989,7 @@
          context meta.type_context
          array_jvm_type (lux_type->jvm_type context array_type)
          .let ['extension (`` (if (,, (template.with [ ]
-                                        [(of jvm.equivalence =
+                                        [(by jvm.equivalence =
                                              (jvm.array )
                                              array_jvm_type)
                                          (` )]
@@ -2031,7 +2031,7 @@
                             .jvm_object_cast#
                             .jvm_conversion_long_to_int#))]]
         (`` (if (,, (template.with [  ]
-                      [(of jvm.equivalence =
+                      [(by jvm.equivalence =
                            (jvm.array )
                            array_jvm_type)
                        (in (list (` (.|> ( (, 'idx) (, array))
@@ -2071,7 +2071,7 @@
                             .jvm_object_cast#
                             .jvm_conversion_long_to_int#))]]
         (`` (if (,, (template.with [  ]
-                      [(of jvm.equivalence =
+                      [(by jvm.equivalence =
                            (jvm.array )
                            array_jvm_type)
                        (let ['value (` (.|> (, value)
@@ -2116,7 +2116,7 @@
       (in (list (list#mix (function (_ [index 'value] 'it)
                             (` (write! (, (code.natural index)) (, 'value) (, 'it))))
                           (`` (if (,, (template.with [ ]
-                                        [(of jvm.equivalence =  type)
+                                        [(by jvm.equivalence =  type)
                                          (` ( (, 'size)))]
 
                                         [jvm.boolean .jvm_array_new_boolean#]
diff --git a/stdlib/source/library/lux/ffi.lux b/stdlib/source/library/lux/ffi.lux
index e04a901651..25bfe527c5 100644
--- a/stdlib/source/library/lux/ffi.lux
+++ b/stdlib/source/library/lux/ffi.lux
@@ -522,7 +522,7 @@
                  (Projection (Member of))))
            (do [! <>.monad]
              [static? (<>.parses? ..static!)]
-             (of ! each
+             (by ! each
                  (|>> [#static? static?
                        #member])
                  it)))
@@ -855,7 +855,7 @@
                                                       (, (..imported class_name)))))))))]
              (` (the (, 'it)
                   (syntax.macro ((, 'it) [(, 'it) (<>.maybe .any)])
-                    (.of meta.monad (,' in)
+                    (.by meta.monad (,' in)
                          (.list (`' (.exec
                                       (,* import!)
                                       ((,' ,) (when (, 'it)
diff --git a/stdlib/source/library/lux/ffi.php.lux b/stdlib/source/library/lux/ffi.php.lux
index 83f5d039fc..d834490a24 100644
--- a/stdlib/source/library/lux/ffi.php.lux
+++ b/stdlib/source/library/lux/ffi.php.lux
@@ -251,7 +251,7 @@
                                                (if static?
                                                  (` (the (, g!field)
                                                       (syntax.macro ((, g!field) [])
-                                                        (of meta.monad (,' in)
+                                                        (by meta.monad (,' in)
                                                             (list (` (.as (, (nullable_type fieldT))
                                                                           ("php constant" (, (code.text (%.message class "::" field)))))))))))
                                                  (` (the ((, g!field) (, g!object))
@@ -309,6 +309,6 @@
               g!name (code.local (maybe.else name alias))]
           (in (list (` (the (, g!name)
                          (syntax.macro ((, g!name) [])
-                           (of meta.monad (,' in)
+                           (by meta.monad (,' in)
                                (list (` (.as (, (nullable_type fieldT)) (, imported)))))))))))
         ))))
diff --git a/stdlib/source/library/lux/ffi.scm.lux b/stdlib/source/library/lux/ffi.scm.lux
index 7647f8f371..4235f3e920 100644
--- a/stdlib/source/library/lux/ffi.scm.lux
+++ b/stdlib/source/library/lux/ffi.scm.lux
@@ -214,6 +214,6 @@
               g!name (code.local (maybe.else name alias))]
           (in (list (` (the (, g!name)
                          (syntax.macro ((, g!name) [])
-                           (of meta.monad (,' in)
+                           (by meta.monad (,' in)
                                (list (` (.as (, (nilable_type fieldT)) (, imported)))))))))))
         ))))
diff --git a/stdlib/source/library/lux/ffi/export.js.lux b/stdlib/source/library/lux/ffi/export.js.lux
index 7d7a5cd8e8..092af2af84 100644
--- a/stdlib/source/library/lux/ffi/export.js.lux
+++ b/stdlib/source/library/lux/ffi/export.js.lux
@@ -90,8 +90,8 @@
     (let [! meta.monad]
       (|> exports
           (monad.each ! expansion.complete)
-          (of ! each (|>> list#conjoint
+          (by ! each (|>> list#conjoint
                           (monad.each ! ..definition)))
-          (of ! conjoint)
-          (of ! each (list#each (function (_ [name term])
+          (by ! conjoint)
+          (by ! each (list#each (function (_ [name term])
                                   (` (..export_one (, (code.text name)) (, term))))))))))
diff --git a/stdlib/source/library/lux/ffi/export.lua.lux b/stdlib/source/library/lux/ffi/export.lua.lux
index ed0a07c895..d79a82e006 100644
--- a/stdlib/source/library/lux/ffi/export.lua.lux
+++ b/stdlib/source/library/lux/ffi/export.lua.lux
@@ -106,8 +106,8 @@
     (let [! meta.monad]
       (|> exports
           (monad.each ! expansion.complete)
-          (of ! each (|>> list#conjoint
+          (by ! each (|>> list#conjoint
                           (monad.each ! ..definition)))
-          (of ! conjoint)
-          (of ! each (list#each (function (_ [name term])
+          (by ! conjoint)
+          (by ! each (list#each (function (_ [name term])
                                   (` (export_one (, (code.text name)) (, term))))))))))
diff --git a/stdlib/source/library/lux/ffi/export.py.lux b/stdlib/source/library/lux/ffi/export.py.lux
index 96abb71d08..c9bba24cda 100644
--- a/stdlib/source/library/lux/ffi/export.py.lux
+++ b/stdlib/source/library/lux/ffi/export.py.lux
@@ -84,8 +84,8 @@
     (let [! meta.monad]
       (|> exports
           (monad.each ! expansion.complete)
-          (of ! each (|>> list#conjoint
+          (by ! each (|>> list#conjoint
                           (monad.each ! ..definition)))
-          (of ! conjoint)
-          (of ! each (list#each (function (_ [name term])
+          (by ! conjoint)
+          (by ! each (list#each (function (_ [name term])
                                   (` (..export_one (, (code.text name)) (, term))))))))))
diff --git a/stdlib/source/library/lux/ffi/export.rb.lux b/stdlib/source/library/lux/ffi/export.rb.lux
index d9d33bd171..fbb94e2287 100644
--- a/stdlib/source/library/lux/ffi/export.rb.lux
+++ b/stdlib/source/library/lux/ffi/export.rb.lux
@@ -133,10 +133,10 @@
     (let [! meta.monad]
       (|> exports
           (monad.each ! expansion.complete)
-          (of ! each (|>> list#conjoint
+          (by ! each (|>> list#conjoint
                           (monad.each ! ..definition)))
-          (of ! conjoint)
-          (of ! each (list#each (function (_ [name term])
+          (by ! conjoint)
+          (by ! each (list#each (function (_ [name term])
                                   (` (export_one (,* (when name
                                                        {#Method name}
                                                        (list (code.bit false) (code.text name))
diff --git a/stdlib/source/library/lux/math/arithmetic/modular.lux b/stdlib/source/library/lux/math/arithmetic/modular.lux
index fb743c3d52..ac7f170466 100644
--- a/stdlib/source/library/lux/math/arithmetic/modular.lux
+++ b/stdlib/source/library/lux/math/arithmetic/modular.lux
@@ -158,7 +158,7 @@
     (for_any (_ %)
       (Exception (Mod %)))
     (exception.report
-     (list ["Number" (of (..format (..modulus it)) injection it)])))
+     (list ["Number" (by (..format (..modulus it)) injection it)])))
   
   (the .public (inverse modular)
     (for_any (_ %)
diff --git a/stdlib/source/library/lux/math/arithmetic/saturation.lux b/stdlib/source/library/lux/math/arithmetic/saturation.lux
index 7d7b56da0d..dff720776e 100644
--- a/stdlib/source/library/lux/math/arithmetic/saturation.lux
+++ b/stdlib/source/library/lux/math/arithmetic/saturation.lux
@@ -20,7 +20,7 @@
     (`` (implementation
          (,, (template.with []
                [(the ( left right)
-                  (|> (of it  left right)
+                  (|> (by it  left right)
                       (order.max order min)
                       (order.min order max)))]
 
diff --git a/stdlib/source/library/lux/math/number.lux b/stdlib/source/library/lux/math/number.lux
index d77eb14f41..00f6f2685f 100644
--- a/stdlib/source/library/lux/math/number.lux
+++ b/stdlib/source/library/lux/math/number.lux
@@ -45,23 +45,23 @@
         (if (..separator_prefixed? repr')
           {try.#Failure }
           (let [repr (..without_separators repr')]
-            (`` (when (of /natural.base_10 projection repr)
+            (`` (when (by /natural.base_10 projection repr)
                   {try.#Success value}
                   {try.#Success [state (list [meta {.#Natural value}])]}
 
                   (^.multi {try.#Failure _}
-                           [(of /integer.base_10 projection repr)
+                           [(by /integer.base_10 projection repr)
                             {try.#Success value}])
                   {try.#Success [state (list [meta {.#Integer value}])]}
 
                   (^.multi {try.#Failure _}
-                           [(of /revolution.base_10 projection repr)
+                           [(by /revolution.base_10 projection repr)
                             {try.#Success value}])
                   {try.#Success [state (list [meta {.#Revolution value}])]}
 
                   (,, (with_template' []
                         [(^.multi {try.#Failure _}
-                                  [(of  projection repr)
+                                  [(by  projection repr)
                                    {try.#Success value}])
                          {try.#Success [state (list [meta {.#Decimal value}])]}]
 
@@ -86,22 +86,22 @@
          (if (..separator_prefixed? repr')
            {try.#Failure }
            (let [repr (..without_separators repr')]
-             (when (of  projection repr)
+             (when (by  projection repr)
                {try.#Success value}
                {try.#Success [state (list [meta {.#Natural value}])]}
 
                (^.multi {try.#Failure _}
-                        [(of  projection repr)
+                        [(by  projection repr)
                          {try.#Success value}])
                {try.#Success [state (list [meta {.#Integer value}])]}
 
                (^.multi {try.#Failure _}
-                        [(of  projection repr)
+                        [(by  projection repr)
                          {try.#Success value}])
                {try.#Success [state (list [meta {.#Revolution value}])]}
 
                (^.multi {try.#Failure _}
-                        [(of  projection repr)
+                        [(by  projection repr)
                          {try.#Success value}])
                {try.#Success [state (list [meta {.#Decimal value}])]}
 
diff --git a/stdlib/source/library/lux/math/number/complex.lux b/stdlib/source/library/lux/math/number/complex.lux
index 52eb4fab0c..1d0135f400 100644
--- a/stdlib/source/library/lux/math/number/complex.lux
+++ b/stdlib/source/library/lux/math/number/complex.lux
@@ -375,9 +375,9 @@
 
 (the .public (as_text it)
   (text.Injection Complex)
-  (.text_composite# (of d.base_10 injection (its ..#real it))
+  (.text_composite# (by d.base_10 injection (its ..#real it))
                     " "
-                    (of d.base_10 injection (its ..#imaginary it))
+                    (by d.base_10 injection (its ..#imaginary it))
                     "i"))
 
 (the .public format
@@ -388,14 +388,14 @@
      (when (text.split_by " " it)
        {.#Some [real imaginary]}
        (do try.monad
-         [real (of d.base_10 projection real)
-          imaginary (of d.base_10 projection (text.replaced_once "i" "" imaginary))]
+         [real (by d.base_10 projection real)
+          imaginary (by d.base_10 projection (text.replaced_once "i" "" imaginary))]
          (in [#real real
               #imaginary imaginary]))
 
        {.#None}
        (do try.monad
-         [real (of d.base_10 projection it)]
+         [real (by d.base_10 projection it)]
          (in [#real real
               #imaginary +0.0]))))))
 
diff --git a/stdlib/source/library/lux/math/number/decimal.lux b/stdlib/source/library/lux/math/number/decimal.lux
index 0816b82320..08e27cd353 100644
--- a/stdlib/source/library/lux/math/number/decimal.lux
+++ b/stdlib/source/library/lux/math/number/decimal.lux
@@ -507,7 +507,10 @@
            (|> it
                ..!double
                ["D"]
-               (.jvm_member_invoke_static# [] "java.lang.Double" "toString" []))
+               (.jvm_member_invoke_static# [] "java.lang.Double" "toString" [])
+               (as Text)
+               (text.replaced "E-" "e-")
+               (text.replaced "E" "e+"))
            
            .js
            (.js_object_do# "toString" it [])
@@ -609,7 +612,7 @@
 (with_template' [  ,name]
   [(the ,name
      (|> 
-         (of //natural.hex projection)
+         (by //natural.hex projection)
          try.trusted
          ))]
 
@@ -748,7 +751,7 @@
                         after_length (//natural.- after_offset (.text_size# representation))]
                   exponent (|> representation
                                (.text_clip# after_offset after_length)
-                               (of format projection))]
+                               (by format projection))]
                  (in [(.text_clip# 0 split_index representation)
                       (//integer.*  (.integer exponent))]))]
 
@@ -777,9 +780,9 @@
                               1 "-"
                               0 "+"
                               _ (undefined))
-                            (of  injection (.natural mantissa))
+                            (by  injection (.natural mantissa))
                             ..separator "0" "E"
-                            (of  injection exponent))))
+                            (by  injection exponent))))
 
       (the (projection representation)
         (let [negative? (text.starts_with? "-" representation)
@@ -794,16 +797,16 @@
                                           after_length (//natural.- after_offset (.text_size# mantissa))]
                                     decimal (|> mantissa
                                                 (.text_clip# after_offset after_length)
-                                                (of  projection))]
+                                                (by  projection))]
                                    (in [(.text_clip# 0 split_index mantissa)
                                         decimal]))
 
                                  {.#None}
                                  {try.#Failure (.text_composite#  representation)})
                .let [whole (.text_clip# 1 (-- (.text_size# whole)) whole)]
-               mantissa (of  projection (when decimal
+               mantissa (by  projection (when decimal
                                                    0 whole
-                                                   _ (.text_composite# whole (of  injection decimal))))
+                                                   _ (.text_composite# whole (by  injection decimal))))
                .let [sign (if negative? 1 0)]]
               (in (..of_bits
                    (all //i64.or
@@ -860,14 +863,14 @@
        (implementation
         (the injection
           (|>> 
-               (of ..base_10 injection)
+               (by ..base_10 injection)
                (text.suffix suffix)))
 
         (the (projection it)
           (when (text.split_by suffix it)
             {.#Some [it ""]}
             (|> it
-                (of ..base_10 projection)
+                (by ..base_10 projection)
                 (try#each ))
             
             _
diff --git a/stdlib/source/library/lux/math/number/fraction.lux b/stdlib/source/library/lux/math/number/fraction.lux
index 0b587a8dbf..28e7f34275 100644
--- a/stdlib/source/library/lux/math/number/fraction.lux
+++ b/stdlib/source/library/lux/math/number/fraction.lux
@@ -222,7 +222,7 @@
 
 (the .public biggest
   It
-  (..fraction (of //.interval top)))
+  (..fraction (by //.interval top)))
 
 (the .public smallest
   It
@@ -310,14 +310,14 @@
                ..whole
                ..natural
                (try.else 0)
-               (of //.base_10 injection)
+               (by //.base_10 injection)
                (text.suffix suffix)))
 
         (the (projection it)
           (when (text.split_by suffix it)
             {.#Some [it ""]}
             (|> it
-                (of //.base_10 projection)
+                (by //.base_10 projection)
                 (try#each (|>> ..fraction )))
             
             _
diff --git a/stdlib/source/library/lux/math/number/i08.lux b/stdlib/source/library/lux/math/number/i08.lux
index d5da4761bc..5b6dd93a24 100644
--- a/stdlib/source/library/lux/math/number/i08.lux
+++ b/stdlib/source/library/lux/math/number/i08.lux
@@ -33,11 +33,11 @@
 (the .public Number
   ..I08)
 
-(the .public equivalence (Equivalence I08) (of ..sub sub_equivalence))
+(the .public equivalence (Equivalence I08) (by ..sub sub_equivalence))
 
 (alias [=]
        ..equivalence)
 
-(the .public width Natural (of ..sub bits))
-(the .public i08 (-> I64 I08) (of ..sub narrow))
-(the .public i64 (-> I08 I64) (of ..sub wide))
+(the .public width Natural (by ..sub bits))
+(the .public i08 (-> I64 I08) (by ..sub narrow))
+(the .public i64 (-> I08 I64) (by ..sub wide))
diff --git a/stdlib/source/library/lux/math/number/i16.lux b/stdlib/source/library/lux/math/number/i16.lux
index 12ce4c986c..6420ea94f8 100644
--- a/stdlib/source/library/lux/math/number/i16.lux
+++ b/stdlib/source/library/lux/math/number/i16.lux
@@ -33,11 +33,11 @@
 (the .public Number
   ..I16)
 
-(the .public equivalence (Equivalence I16) (of ..sub sub_equivalence))
+(the .public equivalence (Equivalence I16) (by ..sub sub_equivalence))
 
 (alias [=]
        ..equivalence)
 
-(the .public width Natural (of ..sub bits))
-(the .public i16 (-> I64 I16) (of ..sub narrow))
-(the .public i64 (-> I16 I64) (of ..sub wide))
+(the .public width Natural (by ..sub bits))
+(the .public i16 (-> I64 I16) (by ..sub narrow))
+(the .public i64 (-> I16 I64) (by ..sub wide))
diff --git a/stdlib/source/library/lux/math/number/i32.lux b/stdlib/source/library/lux/math/number/i32.lux
index 34dd8669ee..e299116925 100644
--- a/stdlib/source/library/lux/math/number/i32.lux
+++ b/stdlib/source/library/lux/math/number/i32.lux
@@ -35,17 +35,17 @@
 (the .public Number
   ..I32)
 
-(the .public equivalence (Equivalence I32) (of ..sub sub_equivalence))
+(the .public equivalence (Equivalence I32) (by ..sub sub_equivalence))
 
 (alias [=]
        ..equivalence)
 
-(the .public width Natural (of ..sub bits))
-(the .public i32 (-> I64 I32) (of ..sub narrow))
-(the .public i64 (-> I32 I64) (of ..sub wide))
+(the .public width Natural (by ..sub bits))
+(the .public i32 (-> I64 I32) (by ..sub narrow))
+(the .public i64 (-> I32 I64) (by ..sub wide))
 
 (the .public random
   (Random I32)
-  (of random.functor each
+  (by random.functor each
       ..i32
       random.i64))
diff --git a/stdlib/source/library/lux/math/number/i64.lux b/stdlib/source/library/lux/math/number/i64.lux
index 64cb595cb4..9d888102d7 100644
--- a/stdlib/source/library/lux/math/number/i64.lux
+++ b/stdlib/source/library/lux/math/number/i64.lux
@@ -199,7 +199,7 @@
                                                  (.text_composite# (repetitions size "1")
                                                                    (repetitions size "0")))
 
-                            high (try.trusted (of n.binary projection pattern))
+                            high (try.trusted (by n.binary projection pattern))
                             low (..right_rotated size high)]
                         (function (_ value)
                           (..or (..right_shifted size (..and high value))
diff --git a/stdlib/source/library/lux/math/number/integer.lux b/stdlib/source/library/lux/math/number/integer.lux
index d1bd345f66..d4790e49d8 100644
--- a/stdlib/source/library/lux/math/number/integer.lux
+++ b/stdlib/source/library/lux/math/number/integer.lux
@@ -251,8 +251,8 @@
 
   [addition       ..+   +0]
   [multiplication ..*   +1]
-  [maximum        ..max (of ..interval bottom)]
-  [minimum        ..min (of ..interval top)]
+  [maximum        ..max (by ..interval bottom)]
+  [minimum        ..min (by ..interval top)]
   )
 
 (the -sign "-")
@@ -264,8 +264,8 @@
      (implementation
       (the (injection value)
         (if (..< +0 value)
-          (|> value ++ ..opposite .natural ++ (of  injection) (.text_composite# ..-sign))
-          (|> value .natural (of  injection) (.text_composite# ..+sign))))
+          (|> value ++ ..opposite .natural ++ (by  injection) (.text_composite# ..-sign))
+          (|> value .natural (by  injection) (.text_composite# ..+sign))))
 
       (the (projection repr)
         (let [input_size (.text_size# repr)]
@@ -274,14 +274,14 @@
               ..+sign
               (|> repr
                   (.text_clip# 1 (-- input_size))
-                  (of  projection)
-                  (of try.functor each (|>> .integer)))
+                  (by  projection)
+                  (by try.functor each (|>> .integer)))
               
               ..-sign
               (|> repr
                   (.text_clip# 1 (-- input_size))
-                  (of  projection)
-                  (of try.functor each (|>> -- .integer ..opposite --)))
+                  (by  projection)
+                  (by try.functor each (|>> -- .integer ..opposite --)))
               
               _
               {try.#Failure })
diff --git a/stdlib/source/library/lux/math/number/natural.lux b/stdlib/source/library/lux/math/number/natural.lux
index f99dabc506..2ed59f46d3 100644
--- a/stdlib/source/library/lux/math/number/natural.lux
+++ b/stdlib/source/library/lux/math/number/natural.lux
@@ -213,8 +213,8 @@
 
   [addition       ..+   0]
   [multiplication ..*   1]
-  [minimum        ..min (of ..interval top)]
-  [maximum        ..max (of ..interval bottom)]
+  [minimum        ..min (by ..interval top)]
+  [maximum        ..max (by ..interval bottom)]
   )
 
 (the (binary_character value)
@@ -464,13 +464,13 @@
       (Format Text It))
   (implementation
    (the (injection it)
-     (loop (next [it (of format injection it)])
+     (loop (next [it (by format injection it)])
        (if (< expected_size (.text_size# it))
          (next (.text_composite# "0" it))
          it)))
 
    (the projection
-     (of format projection))))
+     (by format projection))))
 
 (alias [base_02] ..binary)
 (alias [base_08] ..octal)
diff --git a/stdlib/source/library/lux/math/number/rational.lux b/stdlib/source/library/lux/math/number/rational.lux
index a8b6ad95b7..7baa58ee5a 100644
--- a/stdlib/source/library/lux/math/number/rational.lux
+++ b/stdlib/source/library/lux/math/number/rational.lux
@@ -235,11 +235,11 @@
 
 (the .public smallest
   It
-  (..rational +1 (of natural.interval top)))
+  (..rational +1 (by natural.interval top)))
 
 (the .public biggest
   It
-  (..rational (of //.interval top) 1))
+  (..rational (by //.interval top) 1))
 
 (template.with [,identity ,composite ,name]
   [(the .public ,name
@@ -349,14 +349,14 @@
                ..whole
                ..integer
                (try.else +0)
-               (of //.base_10 injection)
+               (by //.base_10 injection)
                (text.suffix suffix)))
 
         (the (projection it)
           (when (text.split_by suffix it)
             {.#Some [it ""]}
             (|> it
-                (of //.base_10 projection)
+                (by //.base_10 projection)
                 (try#each (|>> ..rational )))
             
             _
diff --git a/stdlib/source/library/lux/math/number/revolution.lux b/stdlib/source/library/lux/math/number/revolution.lux
index 61b3ccf084..31d8b0a61a 100644
--- a/stdlib/source/library/lux/math/number/revolution.lux
+++ b/stdlib/source/library/lux/math/number/revolution.lux
@@ -249,7 +249,7 @@
   [(the .public 
      (Monoid Revolution)
      (implementation
-      (the identity (of interval ))
+      (the identity (by interval ))
       (the composite )))]
 
   [addition ..+   bottom]
@@ -268,7 +268,7 @@
          (Format Text Revolution)
          (implementation
           (the (injection value)
-            (let [raw_output (of  injection (.natural value))
+            (let [raw_output (by  injection (.natural value))
                   max_num_characters (//natural.+ (//natural./  //i64.width)
                                                   (when (//natural.%  //i64.width)
                                                     0 0
@@ -290,7 +290,7 @@
               (if (//natural.> 1 repr_size)
                 (when (.text_char# 0 repr)
                   (character ".")
-                  (when (of  projection (..decimals repr))
+                  (when (by  projection (..decimals repr))
                     {try.#Success output}
                     {try.#Success (.revolution output)}
 
@@ -378,7 +378,7 @@
           (again (-- idx) true output)
           (again (-- idx)
                  false
-                 (.text_composite# (of //natural.base_10 injection digit)
+                 (.text_composite# (by //natural.base_10 injection digit)
                                    output)))))))
 
 (the (digits#+! param subject)
diff --git a/stdlib/source/library/lux/math/random.lux b/stdlib/source/library/lux/math/random.lux
index a1d60da769..223ac0afef 100644
--- a/stdlib/source/library/lux/math/random.lux
+++ b/stdlib/source/library/lux/math/random.lux
@@ -106,7 +106,7 @@
 (template.with [  ]
   [(the .public 
      (Random )
-     (of ..functor each (|>> ) ..i64))]
+     (by ..functor each (|>> ) ..i64))]
 
   [natural Natural .natural]
   [integer Integer .integer]
@@ -115,7 +115,7 @@
 
 (the .public decimal
   (Random Decimal)
-  (of ..functor each
+  (by ..functor each
       (|>> .i64
            d.of_bits)
       ..natural))
@@ -124,7 +124,7 @@
   (Random Decimal)
   (let [mantissa_range (.integer (i64.left_shifted 53 1))
         mantissa_max (i.decimal (-- mantissa_range))]
-    (of ..functor each
+    (by ..functor each
         (|>> (i.% mantissa_range)
              i.decimal
              (d./ mantissa_max))
@@ -144,14 +144,14 @@
         in_range (is (-> Character Character)
                      (|>> (n.% size) (n.+ start)))]
     (|> ..natural
-        (of ..functor each in_range)
+        (by ..functor each in_range)
         (..only (unicode.member? set)))))
 
 (the .public (text character_gen size)
   (-> (Random Character) Natural
       (Random Text))
   (if (n.= 0 size)
-    (of ..monad in "")
+    (by ..monad in "")
     (do ..monad
       [x character_gen
        xs (text character_gen (-- size))]
@@ -257,7 +257,7 @@
       [x value_gen
        xs (list (-- size) value_gen)]
       (in {.#Item x xs}))
-    (of ..monad in (.list))))
+    (by ..monad in (.list))))
 
 (template.with [  ]
   [(the .public ( size value_gen)
@@ -287,7 +287,7 @@
           (if (n.= size (set.size xs+))
             (in xs+)
             (again [])))))
-    (of ..monad in (set.empty hash))))
+    (by ..monad in (set.empty hash))))
 
 (the .public (dictionary hash size key_gen value_gen)
   (for_any (_ key value)
@@ -304,7 +304,7 @@
           (if (n.= size (dictionary.size kv+))
             (in kv+)
             (again [])))))
-    (of ..monad in (dictionary.empty hash))))
+    (by ..monad in (dictionary.empty hash))))
 
 (the .public (value prng seed it)
   (for_any (_ seed of)
diff --git a/stdlib/source/library/lux/meta.lux b/stdlib/source/library/lux/meta.lux
index 14d7bb8456..21bd3809cf 100644
--- a/stdlib/source/library/lux/meta.lux
+++ b/stdlib/source/library/lux/meta.lux
@@ -150,7 +150,7 @@
         (Meta of)))
   (when it
     {try.#Success output}
-    (of ..monad in output)
+    (by ..monad in output)
 
     {try.#Failure error}
     (..failure error)))
@@ -213,6 +213,6 @@
   (-> Type Code
       (Meta Any))
   (do [! ..monad]
-    [eval (of ! each (its .#eval)
+    [eval (by ! each (its .#eval)
               ..compiler_state)]
     (eval type code)))
diff --git a/stdlib/source/library/lux/meta/binding.lux b/stdlib/source/library/lux/meta/binding.lux
index 12a9fbe9b1..b50e94a703 100644
--- a/stdlib/source/library/lux/meta/binding.lux
+++ b/stdlib/source/library/lux/meta/binding.lux
@@ -38,7 +38,7 @@
       (in [module_name name]))
 
     _
-    (of //.monad in name)))
+    (by //.monad in name)))
 
 (the (type_variable idx bindings)
   (-> Natural (List [Natural (Maybe Type)])
@@ -73,7 +73,7 @@
             {try.#Success [lux type']}))
 
         _
-        (of //.monad in type))))
+        (by //.monad in type))))
 
 (the without_lux_runtime
   (-> (List module.Name)
@@ -268,7 +268,7 @@
       {.#Definition [def_type def_value]}
       (let [type_code (.in_module# .prelude .type_code)]
         (if (.or (same? .Type def_type)
-                 (of code.equivalence =
+                 (by code.equivalence =
                      (type_code .Type)
                      (type_code def_type)))
           (in (as Type def_value))
@@ -291,7 +291,7 @@
 (the .public (definitions module)
   (-> module.Name
       (Meta (List [Text [Bit Definition]])))
-  (of //.monad each
+  (by //.monad each
       (list.all (function (_ [name [exported? global]])
                   (when global
                     {.#Alias de_aliased}
diff --git a/stdlib/source/library/lux/meta/binding/local.lux b/stdlib/source/library/lux/meta/binding/local.lux
index a380ebaf91..6cbfa31997 100644
--- a/stdlib/source/library/lux/meta/binding/local.lux
+++ b/stdlib/source/library/lux/meta/binding/local.lux
@@ -55,7 +55,7 @@
             {try.#Success [lux type']}))
 
         _
-        (of ///.monad in type))))
+        (by ///.monad in type))))
 
 (the (on_either f x1 x2)
   (for_any (_ input output)
diff --git a/stdlib/source/library/lux/meta/code.lux b/stdlib/source/library/lux/meta/code.lux
index d34bbdacb8..9e3347b40d 100644
--- a/stdlib/source/library/lux/meta/code.lux
+++ b/stdlib/source/library/lux/meta/code.lux
@@ -69,7 +69,7 @@
          (when [x y]
            (,, (with_template' [ ]
                  [[[_ { x'}] [_ { y'}]]
-                  (of  = x' y')]
+                  (by  = x' y')]
 
                  [.#Bit bit.equivalence]
                  [.#Natural natural.equivalence]
@@ -81,7 +81,7 @@
 
            (,, (with_template' []
                  [[[_ { xs'}] [_ { ys'}]]
-                  (of (list.equivalence =) = xs' ys')]
+                  (by (list.equivalence =) = xs' ys')]
 
                  [.#Form]
                  [.#Variant]
@@ -98,7 +98,7 @@
   (`` (when it
         (,, (with_template' [ ]
               [[_ { value}]
-               (of  injection value)]
+               (by  injection value)]
 
               [.#Bit bit.format]
               [.#Natural natural.base_10]
@@ -134,7 +134,7 @@
   (`` (when it
         (,, (with_template' [ ]
               [[_ { value}]
-               (of  injection value)]
+               (by  injection value)]
 
               [.#Bit bit.format]
               [.#Natural natural.base_10]
@@ -167,7 +167,7 @@
 (`` (the .public (replaced original substitute it)
       (-> Code Code Code
           Code)
-      (if (of ..equivalence = original it)
+      (if (by ..equivalence = original it)
         substitute
         (when it
           (,, (with_template' []
diff --git a/stdlib/source/library/lux/meta/compiler/default/platform.lux b/stdlib/source/library/lux/meta/compiler/default/platform.lux
index 3e5bfa8a93..7d55ba7a1a 100644
--- a/stdlib/source/library/lux/meta/compiler/default/platform.lux
+++ b/stdlib/source/library/lux/meta/compiler/default/platform.lux
@@ -138,7 +138,7 @@
                                     sequence.as_list
                                     (monad.each ..monad write_artifact!)
                                     (is (Action (List Any)))))
-                         document (of async.monad in
+                         document (by async.monad in
                                       (document.marked? key (its [archive.#module moduleM.#document] entry)))]
                         (is (Async (Try Any))
                             (|> [(|> entry
@@ -578,7 +578,7 @@
                              (if (set.empty? duplicates)
                                (when new_dependencies
                                  {.#End}
-                                 (of ..monad in [archive (list) (list)])
+                                 (by ..monad in [archive (list) (list)])
 
                                  {.#Item _}
                                  (do [! async.monad]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux.lux
index a48c0ef32f..91bfb56289 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux.lux
@@ -71,7 +71,7 @@
          ... #imports
          (.list .text)
          ... #module_state
-         (of <>.monad in {.#Cached}))))
+         (by <>.monad in {.#Cached}))))
 
 (the .public key
   (Key .Module)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis.lux
index 263f44767a..5fc072052f 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis.lux
@@ -89,8 +89,8 @@
       (Equivalence Branch))
   (implementation
    (the (= [expected_pattern expected_body] [actual_pattern actual_body])
-     (and (of /pattern.equivalence = expected_pattern actual_pattern)
-          (of equivalence = expected_body actual_body)))))
+     (and (by /pattern.equivalence = expected_pattern actual_pattern)
+          (by equivalence = expected_body actual_body)))))
 
 (the .public equivalence
   (Equivalence Term)
@@ -98,23 +98,23 @@
    (the (= [_ expected] [_ actual])
      (.when [expected actual]
        [{#Simple expected} {#Simple actual}]
-       (of /simple.equivalence = expected actual)
+       (by /simple.equivalence = expected actual)
 
        [{#Structure expected} {#Structure actual}]
-       (of (/complex.equivalence =) = expected actual)
+       (by (/complex.equivalence =) = expected actual)
 
        [{#Reference expected} {#Reference actual}]
-       (of reference.equivalence = expected actual)
+       (by reference.equivalence = expected actual)
 
        [{#When [expected_analysis expected_match]}
         {#When [actual_analysis actual_match]}]
        (and (= expected_analysis actual_analysis)
-            (of (list.equivalence (branch_equivalence =)) = {.#Item expected_match} {.#Item actual_match}))
+            (by (list.equivalence (branch_equivalence =)) = {.#Item expected_match} {.#Item actual_match}))
 
        [{#Function [expected_environment expected_analysis]}
         {#Function [actual_environment actual_analysis]}]
        (and (= expected_analysis actual_analysis)
-            (of (list.equivalence =) = expected_environment actual_environment))
+            (by (list.equivalence =) = expected_environment actual_environment))
 
        [{#Apply [expected_input expected_abstraction]}
         {#Apply [actual_input actual_abstraction]}]
@@ -122,7 +122,7 @@
             (= expected_abstraction actual_abstraction))
 
        [{#Extension expected} {#Extension actual}]
-       (of (extension.equivalence =) = expected actual)
+       (by (extension.equivalence =) = expected actual)
 
        _
        false))))
@@ -356,7 +356,7 @@
     (-> (Exception ex) ex Bit
         (Operation Any)))
   (if condition
-    (of phase.monad in [])
+    (by phase.monad in [])
     (..except exception parameters)))
 
 (the .public (with_exception exception message action)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/complex.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/complex.lux
index c10d7d68c3..725c10be6d 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/complex.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/complex.lux
@@ -65,7 +65,7 @@
             (/#= expected_value actual_value))
        
        [{#Tuple expected} {#Tuple actual}]
-       (of (list.equivalence /#=) = expected actual)
+       (by (list.equivalence /#=) = expected actual)
 
        _
        false))))
@@ -74,19 +74,19 @@
   (for_any (_ a) (-> (Hash a) (Hash (Complex a))))
   (implementation
    (the equivalence
-     (..equivalence (of super equivalence)))
+     (..equivalence (by super equivalence)))
    
    (the (hash value)
      (when value
        {#Variant [lefts right? value]}
        (all n.* 2
-            (of n.hash hash lefts)
-            (of bit.hash hash right?)
-            (of super hash value))
+            (by n.hash hash lefts)
+            (by bit.hash hash right?)
+            (by super hash value))
        
        {#Tuple members}
        (all n.* 3
-            (of (list.hash super) hash members))
+            (by (list.hash super) hash members))
        ))))
 
 (the .public (injection %it it)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/coverage.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/coverage.lux
index c50a2842e3..a62c3f3483 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/coverage.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/coverage.lux
@@ -107,8 +107,8 @@
                  [#Text]))
 
            [{#Variant allR casesR} {#Variant allS casesS}]
-           (and (of (maybe.equivalence n.equivalence) = allR allS)
-                (of (dictionary.equivalence =) = casesR casesS))
+           (and (by (maybe.equivalence n.equivalence) = allR allS)
+                (by (dictionary.equivalence =) = casesR casesS))
            
            [{#Seq leftR rightR} {#Seq leftS rightS}]
            (and (= leftR leftS)
@@ -311,7 +311,7 @@
                          (n.> so_far_cases (..minimum addition')))))
               (exception.except ..variant_mismatch [so_far_cases addition_cases])
 
-              (of (dictionary.equivalence ..equivalence) = casesSF casesA)
+              (by (dictionary.equivalence ..equivalence) = casesSF casesA)
               
 
               ... else
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/inference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/inference.lux
index 9787780d1c..5046245ab7 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/inference.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/inference.lux
@@ -198,7 +198,7 @@
     ...                                                           (in (++ level))))))
     ...                                                 0
     ...                                                 variables)
-    ...                      :inference:' (of ! each (type.univ_q quantifications) (check.clean variables :inference:))
+    ...                      :inference:' (by ! each (type.univ_q quantifications) (check.clean variables :inference:))
     ...                      _ (check.with just_before)]
     ...                     (in :inference:')))
     ...      _ (/type.inference :inference:)]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/pattern.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/pattern.lux
index d3491cc9fc..465e8300ae 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/pattern.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/pattern.lux
@@ -38,10 +38,10 @@
    (the (= expected actual)
      (when [expected actual]
        [{#Simple expected} {#Simple actual}]
-       (of //simple.equivalence = expected actual)
+       (by //simple.equivalence = expected actual)
        
        [{#Complex expected} {#Complex actual}]
-       (of (//complex.equivalence =) = expected actual)
+       (by (//complex.equivalence =) = expected actual)
 
        [{#Bind expected} {#Bind actual}]
        (n.= expected actual)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase.lux
index 5d01befd59..7197c965ab 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase.lux
@@ -81,7 +81,7 @@
         (Try of)))
   (|> state
       operation
-      (of try.monad each product.right)))
+      (by try.monad each product.right)))
 
 (the .public state
   (for_any (_ state)
@@ -127,7 +127,7 @@
 (the .public assertion
   (template.macro (_ exception message test)
     [(if test
-       (of ..monad in [])
+       (by ..monad in [])
        (..except exception message))]))
 
 (the .public (try it)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/complex.lux
index 1148c96f03..45587073fc 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/complex.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/complex.lux
@@ -119,7 +119,7 @@
         (when expectedT
           {.#Sum _}
           (|> (analyse archive valueC)
-              (of ! each (|>> [lefts right?] (/.variant @)))
+              (by ! each (|>> [lefts right?] (/.variant @)))
               (/type.expecting (..case lefts right? (type.flat_variant expectedT))))
 
           {.#Named name unnamedT}
@@ -208,23 +208,23 @@
       (Operation /.Term))
   (<| (do [! phase.monad]
         [@ meta.location])
-      (of ! each (|>> (/.tuple @)))
+      (by ! each (|>> (/.tuple @)))
       (is (Operation (List /.Term)))
       (loop (again [membersT+ (type.flat_tuple expectedT)
                     membersC+ members])
         (when [membersT+ membersC+]
           [{.#Item memberT {.#End}} {.#Item memberC {.#End}}]
-          (<| (of ! each (|>> list))
+          (<| (by ! each (|>> list))
               (/type.expecting memberT)
               (analyse archive memberC))
           
           [{.#Item memberT {.#End}} _]
           (<| (/type.expecting memberT)
-              (of ! each (|>> list) (analyse archive (code.tuple membersC+))))
+              (by ! each (|>> list) (analyse archive (code.tuple membersC+))))
           
           [_ {.#Item memberC {.#End}}]
           (<| (/type.expecting (type.tuple membersT+))
-              (of ! each (|>> list) (analyse archive memberC)))
+              (by ! each (|>> list) (analyse archive memberC)))
           
           [{.#Item memberT membersT+'} {.#Item memberC membersC+'}]
           (do !
@@ -340,7 +340,7 @@
 (the (local_binding? name)
   (-> Text
       (Meta Bit))
-  (of meta.monad each
+  (by meta.monad each
       (list.any? (list.any? (|>> product.left (text.= name))))
       local.all))
 
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/function.lux
index 05d1d37cba..05a37962fc 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/function.lux
@@ -65,7 +65,7 @@
           {.#Function :input: :output:}
           (<| (do !
                 [@ meta.location])
-              (of ! each (.function (_ [scope bodyA])
+              (by ! each (.function (_ [scope bodyA])
                            [@ {/.#Function (list#each (|>> (/.variable @))
                                                       (/scope.environment scope))
                                            bodyA}]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/when.lux
index dd90f40046..14be0c57d5 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/analysis/when.lux
@@ -151,10 +151,10 @@
           (list#each (..quantified envs))
           type.tuple
           [(list)]
-          (of check.monad in))
+          (by check.monad in))
 
       _
-      (of check.monad in [(list) (..quantified envs :it:)]))))
+      (by check.monad in [(list) (..quantified envs :it:)]))))
 
 (the (simple_pattern_analysis type :input: location output next)
   (for_any (_ a) (-> Type Type Location Pattern (Operation a) (Operation [Pattern a])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
index 06b6528868..c613f3c745 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
@@ -133,7 +133,7 @@
               (when expansion
                 (list.partial  referrals)
                 (|> (again archive )
-                    (of ! each (revised /.#referrals (list#composite referrals))))
+                    (by ! each (revised /.#referrals (list#composite referrals))))
 
                 _
                 (..requiring again archive expansion))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
index 886b88e44e..a91994c854 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
@@ -654,7 +654,7 @@
 
               (text.starts_with? descriptor.array_prefix name)
               (let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
-                (of phase.monad each jvm.array
+                (by phase.monad each jvm.array
                     (check_jvm {.#Nominal unprefixed (list)})))
 
               ... else
@@ -1524,7 +1524,7 @@
                                                  aliasing (dictionary.composite (..aliasing expected_class_tvars actual_class_tvars)
                                                                                 (..aliasing expected_method_tvars actual_method_tvars))]
                                            passes? (check_method aliasing class method_name method_style inputsJT method)]
-                                          (of ! each (if passes?
+                                          (by ! each (if passes?
                                                        (|>> {#Pass})
                                                        (|>> {#Hint}))
                                               (method_signature method_style method)))))))]
@@ -1558,7 +1558,7 @@
                                              aliasing (dictionary.composite (..aliasing expected_class_tvars actual_class_tvars)
                                                                             (..aliasing expected_method_tvars actual_method_tvars))]
                                        passes? (check_constructor aliasing class inputsJT constructor)]
-                                      (of ! each
+                                      (by ! each
                                           (if passes?
                                             (|>> {#Pass})
                                             (|>> {#Hint}))
@@ -2433,7 +2433,7 @@
                                    phase.of_try)]
             (|> super_parameters
                 (monad.each ! (..reflection_type mapping))
-                (of ! each (|>> (list.zipped_2 parent_parameters)))))
+                (by ! each (|>> (list.zipped_2 parent_parameters)))))
           (phase.of_try (exception.except ..mismatched_super_parameters [parent_name expected_count actual_count]))))
       
       {try.#Failure _}
@@ -2506,7 +2506,7 @@
 (the (matched? [sub sub_method subJT] [super super_method superJT])
   (-> [(Type Class) Text (Type Method)] [(Type Class) Text (Type Method)]
       Bit)
-  (and (of descriptor.equivalence = (jvm.descriptor super) (jvm.descriptor sub))
+  (and (by descriptor.equivalence = (jvm.descriptor super) (jvm.descriptor sub))
        (text.= super_method sub_method)
        (jvm.= superJT subJT)))
 
@@ -2695,13 +2695,13 @@
     _.aconst_null
     
     {.#Right primitiveT}
-    (if (of jvm.equivalence = jvm.long primitiveT)
+    (if (by jvm.equivalence = jvm.long primitiveT)
       _.lconst_0
 
-      (of jvm.equivalence = jvm.float primitiveT)
+      (by jvm.equivalence = jvm.float primitiveT)
       _.fconst_0
 
-      (of jvm.equivalence = jvm.double primitiveT)
+      (by jvm.equivalence = jvm.double primitiveT)
       _.dconst_0
 
       ... jvm.boolean jvm.byte jvm.short jvm.int jvm.char
@@ -2722,13 +2722,13 @@
            _.areturn
            
            {.#Right primitiveT}
-           (if (of jvm.equivalence = jvm.long primitiveT)
+           (if (by jvm.equivalence = jvm.long primitiveT)
              _.lreturn
 
-             (of jvm.equivalence = jvm.float primitiveT)
+             (by jvm.equivalence = jvm.float primitiveT)
              _.freturn
 
-             (of jvm.equivalence = jvm.double primitiveT)
+             (by jvm.equivalence = jvm.double primitiveT)
              _.dreturn
 
              ... jvm.boolean jvm.byte jvm.short jvm.int jvm.char
@@ -2855,7 +2855,7 @@
                           (list)
                           (list#each (|>> {#Overriden_Method}) methods)))
          ... Necessary for reflection to work properly during analysis.
-         _ (phase.of_try (of host execute mock))
+         _ (phase.of_try (by host execute mock))
 
          mapping (typeA.check (..class_mapping parameters))
          super_classT (typeA.check (luxT.check (luxT.class mapping) (..signature super_class)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
index 09286778a4..cc9efebe6d 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
@@ -203,7 +203,7 @@
             (|> opC
                 (analysis archive)
                 (typeA.expecting (type (-> .Any :var:)))
-                (of ! each (|>> list
+                (by ! each (|>> list
                                 {analysis.#Extension (..translation extension_name)}
                                 [@]))))))]))
 
@@ -227,7 +227,7 @@
    [(?.and ?code.any ?code.any)
     (.function (_ extension_name analysis archive [typeC valueC])
       (do [! phase.monad]
-        [actualT (of ! each (|>> (as Type))
+        [actualT (by ! each (|>> (as Type))
                      (eval archive Type typeC))
          _ (typeA.inference actualT)]
         (<| (typeA.expecting actualT)
@@ -240,7 +240,7 @@
    [(?.and ?code.any ?code.any)
     (.function (_ extension_name analysis archive [typeC valueC])
       (do [! phase.monad]
-        [actualT (of ! each (|>> (as Type))
+        [actualT (by ! each (|>> (as Type))
                      (eval archive Type typeC))
          _ (typeA.inference actualT)
          [valueT valueA] (typeA.inferring (analysis archive valueC))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
index e8bb11be66..a2158b096c 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
@@ -441,7 +441,7 @@
                           (value.boxed )
                           (_.astore lux_register))]]]
       (`` (if (,, (template.with [  ]
-                    [(of type.equivalence =  argumentT)
+                    [(by type.equivalence =  argumentT)
                      (wrap_primitive   )]
 
                     [1 _.iload type.boolean]
@@ -452,7 +452,7 @@
                     [1 _.fload type.float]
                     [2 _.lload type.long]))
 
-            ... (of type.equivalence = type.double argumentT)
+            ... (by type.equivalence = type.double argumentT)
             (wrap_primitive 2 _.dload type.double))))))
 
 (the .public (method_arguments offset types)
@@ -528,7 +528,7 @@
                            (value.primitive )
                            )]]
         (`` (if (,, (template.with [ ]
-                      [(of type.equivalence =  returnT)
+                      [(by type.equivalence =  returnT)
                        (unwrap_primitive  )]
 
                       [_.ireturn type.boolean]
@@ -539,7 +539,7 @@
                       [_.freturn type.float]
                       [_.lreturn type.long]))
 
-              ... (of type.equivalence = type.double returnT)
+              ... (by type.equivalence = type.double returnT)
               (unwrap_primitive _.dreturn type.double)))))))
 
 (the (overriden_method_translation translate archive method)
@@ -651,7 +651,7 @@
     (..static_method_translation translate archive method)
 
     {#Abstract_Method method}
-    (of phase.monad in (..abstract_method_translation method))))
+    (by phase.monad in (..abstract_method_translation method))))
 
 (the (method_definition archive super interfaces [mapping selfT] [analyse synthesize translate])
   (-> Archive
@@ -725,13 +725,13 @@
     _.aconst_null
     
     {.#Right primitiveT}
-    (if (of type.equivalence = type.long primitiveT)
+    (if (by type.equivalence = type.long primitiveT)
       _.lconst_0
 
-      (of type.equivalence = type.float primitiveT)
+      (by type.equivalence = type.float primitiveT)
       _.fconst_0
 
-      (of type.equivalence = type.double primitiveT)
+      (by type.equivalence = type.double primitiveT)
       _.dconst_0
 
       ... type.boolean type.byte type.short type.int type.char
@@ -752,13 +752,13 @@
            _.areturn
            
            {.#Right primitiveT}
-           (if (of type.equivalence = type.long primitiveT)
+           (if (by type.equivalence = type.long primitiveT)
              _.lreturn
 
-             (of type.equivalence = type.float primitiveT)
+             (by type.equivalence = type.float primitiveT)
              _.freturn
 
-             (of type.equivalence = type.double primitiveT)
+             (by type.equivalence = type.double primitiveT)
              _.dreturn
 
              ... type.boolean type.byte type.short type.int type.char
@@ -925,7 +925,7 @@
                                                        ((its [declaration.#translation declaration.#phase] state) analysis_state)]))
                              methods)
          .let [all_dependencies (cache.all (list#each product.left methods))]
-         bytecode (<| (of ! each (\\injection.value class.injection))
+         bytecode (<| (by ! each (\\injection.value class.injection))
                       phase.of_try
                       (class.class version.v6_0
                         (all modifier#composite
@@ -965,7 +965,7 @@
     (function (_ phase archive [[parameters name] supers annotations method_declarations])
       (declaration.of_translation
        (do [! phase.monad]
-         [bytecode (<| (of ! each (\\injection.value class.injection))
+         [bytecode (<| (by ! each (\\injection.value class.injection))
                        phase.of_try
                        (class.class version.v6_0
                          (all modifier#composite
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux
index bff5fde008..d84aedd222 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux
@@ -54,7 +54,7 @@
 ...                                          .any))))
 ...              (function (_ extension_name phase archive [input else conditionals])
 ...                (do [! /////.monad]
-...                  [@input (of ! each _.var (translation.symbol "input"))
+...                  [@input (by ! each _.var (translation.symbol "input"))
 ...                   inputG (phase archive input)
 ...                   elseG (phase archive else)
 ...                   conditionalsG (is (Operation (List [Expression Expression]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux
index c042fc4c81..1e05a50774 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux
@@ -118,7 +118,7 @@
   (custom
    [.text
     (function (_ phase archive name)
-      (of phase.monad in (_.var name)))]))
+      (by phase.monad in (_.var name)))]))
 
 (the js::apply
   (custom
@@ -137,7 +137,7 @@
         [abstractionG (phase archive abstractionS)
          .let [variable (is (-> Text (Operation Var))
                             (|>> translation.symbol
-                                 (of ! each _.var)))]
+                                 (by ! each _.var)))]
          g!inputs (monad.each ! (function (_ _) (variable "input"))
                               (list.repeated (.natural arity) []))
          g!abstraction (variable "abstraction")]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux
index b776ce97dc..a0dad6fbf7 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux
@@ -662,7 +662,7 @@
   (..custom
    [(all <>.and .text .text ..value)
     (function (_ translate archive [class field :unboxed:])
-      (of phase.monad in (_.getstatic (type.class (list) class) field :unboxed:)))]))
+      (by phase.monad in (_.getstatic (type.class (list) class) field :unboxed:)))]))
 
 (the put::static
   Handler
@@ -1192,7 +1192,7 @@
                            (///value.primitive )
                            )]]
         (`` (if (,, (template.with [ ]
-                      [(of type.equivalence =  returnT)
+                      [(by type.equivalence =  returnT)
                        (unwrap_primitive  )]
 
                       [_.ireturn type.boolean]
@@ -1203,7 +1203,7 @@
                       [_.freturn type.float]
                       [_.lreturn type.long]))
 
-              ... (of type.equivalence = type.double returnT)
+              ... (by type.equivalence = type.double returnT)
               (unwrap_primitive _.dreturn type.double)))))))
 
 (the (method_dependencies archive method)
@@ -1249,7 +1249,7 @@
                           (///value.boxed )
                           (_.astore lux_register))]]]
       (`` (if (,, (template.with [  ]
-                    [(of type.equivalence =  argumentT)
+                    [(by type.equivalence =  argumentT)
                      (wrap_primitive   )]
 
                     [1 _.iload type.boolean]
@@ -1260,7 +1260,7 @@
                     [1 _.fload type.float]
                     [2 _.lload type.long]))
 
-            ... (of type.equivalence = type.double argumentT)
+            ... (by type.equivalence = type.double argumentT)
             (wrap_primitive 2 _.dload type.double))))))
 
 (the .public (prepare_arguments offset types)
@@ -1365,7 +1365,7 @@
          methods! (|> overriden_methods
                       (list#each (normalized_method global_mapping))
                       (monad.each ! (method_definition translate archive artifact_id)))
-         bytecode (<| (of ! each (\\injection.value class.injection))
+         bytecode (<| (by ! each (\\injection.value class.injection))
                       phase.of_try
                       (class.class version.v6_0 (all modifier#composite class.public class.final)
                         (name.internal anonymous_class_name)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux
index 65c1bf9981..5afd510925 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux
@@ -151,7 +151,7 @@
                              {synthesis.#Then else})
                    [input]
                    (//when.when! statement phase archive)
-                   (of phase.monad each (|>> (as Expression)))))]))
+                   (by phase.monad each (|>> (as Expression)))))]))
 
 (the with_basic_extensions
   (-> Bundle Bundle)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux
index 2936aa64e0..d7452e3e6b 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux
@@ -134,7 +134,7 @@
   (custom
    [.text
     (function (_ phase archive name)
-      (of phase.monad in (_.var name)))]))
+      (by phase.monad in (_.var name)))]))
 
 (the lua::apply
   (custom
@@ -158,7 +158,7 @@
   (custom
    [.text
     (function (_ phase archive module)
-      (of phase.monad in
+      (by phase.monad in
           (_.require/1 (_.string module))))]))
 
 (the lua::function
@@ -169,7 +169,7 @@
         [abstractionG (phase archive abstractionS)
          .let [variable (is (-> Text (Operation Var))
                             (|>> translation.symbol
-                                 (of ! each _.var)))]
+                                 (by ! each _.var)))]
          g!inputs (monad.each ! (function (_ _)
                                   (variable "input"))
                               (list.repeated (.natural arity) []))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux
index fccccdb7c0..c2c4a24d65 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux
@@ -56,7 +56,7 @@
                  [inputG (phase archive input)
                   [[context_module context_artifact] elseG] (translation.with_new_context archive
                                                               (phase archive else))
-                  @input (of ! each _.var (translation.symbol "input"))
+                  @input (by ! each _.var (translation.symbol "input"))
                   conditionalsG (is (Operation (List [Expression Expression]))
                                     (monad.each ! (function (_ [chars branch])
                                                     (do !
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux
index 746417014a..4cda464956 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux
@@ -115,7 +115,7 @@
   (custom
    [.text
     (function (_ extension phase archive name)
-      (of ////////phase.monad in (_.constant name)))]))
+      (by ////////phase.monad in (_.constant name)))]))
 
 (the php::apply
   (custom
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux
index 9f21776a82..1a41aaa72e 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux
@@ -128,7 +128,7 @@
                (do [! phase.monad]
                  [inputG (phase archive input)
                   else! (..statement phase archive else)
-                  @input (of ! each _.var (translation.symbol "input"))
+                  @input (by ! each _.var (translation.symbol "input"))
                   conditionals! (is (Operation (List [Expression
                                                       Statement]))
                                     (monad.each ! (function (_ [chars branch])
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux
index a36122e621..02810fc3dd 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux
@@ -137,7 +137,7 @@
         [abstractionG (phase archive abstractionS)
          .let [variable (is (-> Text (Operation SVar))
                             (|>> translation.symbol
-                                 (of ! each _.var)))]
+                                 (by ! each _.var)))]
          g!inputs (monad.each ! (function (_ _) (variable "input"))
                               (list.repeated (.natural arity) []))]
         (in (_.lambda g!inputs
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux
index 85a030def5..c758cdd47a 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux
@@ -53,7 +53,7 @@
 ... ...                                          .any))))
 ... ...              (function (_ extension_name phase archive [input else conditionals])
 ... ...                (do [! /////.monad]
-... ...                  [@input (of ! each _.var (translation.symbol "input"))
+... ...                  [@input (by ! each _.var (translation.symbol "input"))
 ... ...                   inputG (phase archive input)
 ... ...                   elseG (phase archive else)
 ... ...                   conditionalsG (is (Operation (List [Expression Expression]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux
index cb04f1ef58..c2fd8c9334 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux
@@ -132,7 +132,7 @@
                (do [! phase.monad]
                  [inputG (phase archive input)
                   else! (statement phase archive else)
-                  @input (of ! each _.local (translation.symbol "input"))
+                  @input (by ! each _.local (translation.symbol "input"))
                   conditionals! (is (Operation (List [Expression Statement]))
                                     (monad.each ! (function (_ [chars branch])
                                                     (do !
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux
index 7d503d527f..c782cc0216 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux
@@ -102,7 +102,7 @@
   (custom
    [?synthesis.text
     (function (_ phase archive name)
-      (of phase.monad in (is _.CVar (_.manual name))))]))
+      (by phase.monad in (is _.CVar (_.manual name))))]))
 
 (the ruby::apply
   (custom
@@ -117,7 +117,7 @@
   (custom
    [?synthesis.text
     (function (_ phase archive module)
-      (of phase.monad in
+      (by phase.monad in
           (_.require/1 (_.string module))))]))
 
 (the .public bundle
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux
index 909c915ba9..0ee7e4dd50 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux
@@ -54,7 +54,7 @@
                                            .any))))
              (function (_ extension_name phase archive [input else conditionals])
                (do [! /////.monad]
-                 [@input (of ! each _.var (translation.symbol "input"))
+                 [@input (by ! each _.var (translation.symbol "input"))
                   inputG (phase archive input)
                   elseG (phase archive else)
                   conditionalsG (is (Operation (List [Expression Expression]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/function.lux
index b6005f0fdb..ccb836509c 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/function.lux
@@ -117,7 +117,7 @@
           [then (grow_path grow then)
            else (when else
                   {.#Some else}
-                  (of ! each (|>> {.#Some}) (grow_path grow else))
+                  (by ! each (|>> {.#Some}) (grow_path grow else))
 
                   {.#None}
                   (in {.#None}))]
@@ -265,7 +265,7 @@
                        (/.abstraction @ [env' down_arity' bodyS'])
                        (|> bodyS'
                            (grow env')
-                           (of ! each (function (_ body)
+                           (by ! each (function (_ body)
                                         [/.#environment environment
                                          /.#arity (++ down_arity')
                                          /.#body body])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
index 0b0f678c7a..193cd9a248 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
@@ -61,7 +61,7 @@
             [then (again then)
              else (when else
                     {.#Some else}
-                    (of ! each (|>> {.#Some}) (again else))
+                    (by ! each (|>> {.#Some}) (again else))
 
                     {.#None}
                     (in {.#None}))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
index 7d5c59c0e8..9da711ce4c 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
@@ -275,7 +275,7 @@
             [[redundancy then] (again [redundancy then])
              [redundancy else] (when else
                                  {.#Some else}
-                                 (of ! each
+                                 (by ! each
                                      (function (_ [redundancy else])
                                        [redundancy {.#Some else}])
                                      (again [redundancy else]))
@@ -457,4 +457,4 @@
       (Try /.Term))
   (|>> [..initial]
        optimization'
-       (of try.monad each product.right)))
+       (by try.monad each product.right)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/when.lux
index 2461da9952..8ebd168a3b 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/synthesis/when.lux
@@ -76,7 +76,7 @@
                 [///simple.#Text /.#Text_Fork |>]))))
 
     {///pattern.#Bind register}
-    (<| (of phase.monad each (|>> {/.#Seq {/.#Bind register}}))
+    (<| (by phase.monad each (|>> {/.#Seq {/.#Bind register}}))
         /.with_new_local
         thenC)
 
@@ -121,7 +121,7 @@
   (for_any (_ of)
     (-> (-> Path Path Path) (Equivalence of) [of Path] (/.Fork of Path)
         (/.Fork of Path)))
-  (if (of equivalence = new_test old_test)
+  (if (by equivalence = new_test old_test)
     [[old_test (weave new_then old_then)] old_tail]
     [[old_test old_then]
      (when old_tail
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/complex.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/complex.lux
index 0cc903e513..eb3a7afda8 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/complex.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/complex.lux
@@ -32,7 +32,7 @@
   (let [! phase.monad]
     (when values
       {.#End}
-      (of ! in runtime.unit)
+      (by ! in runtime.unit)
 
       {.#Item it {.#End}}
       (next archive it)
@@ -40,4 +40,4 @@
       _
       (|> values
           (monad.each ! (next archive))
-          (of ! each runtime.tuple)))))
+          (by ! each runtime.tuple)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux
index 0b6c5c6859..86ba25a5d9 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux
@@ -1042,4 +1042,4 @@
              (registry.resource .true unit.none)
              product.right)
          (sequence.sequence [..id {.#None}
-                             (of utf8.format injection (_.code ..declaration))])])))
+                             (by utf8.format injection (_.code ..declaration))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/loop.lux
index afdacf206f..e6660f91f7 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/loop.lux
@@ -89,11 +89,11 @@
     ... true loop
     _
     (do [! phase.monad]
-      [@scope (of ! each ..@scope translation.next)
+      [@scope (by ! each ..@scope translation.next)
        initialization (monad.each ! (expression archive) initialization)
        body (translation.with_anchor [start @scope]
               (statement expression archive body))
-       $iteration_parameters (of ! each ..$iteration_parameters translation.next)]
+       $iteration_parameters (by ! each ..$iteration_parameters translation.next)]
       (in (..setup $iteration_parameters
                    true start
                    initialization
@@ -106,7 +106,7 @@
 ...   (do [! phase.monad]
 ...     [[offset @scope] translation.anchor
 ...      it (monad.each ! (expression archive) it)
-...      $iteration_parameters (of ! each ..$iteration_parameters translation.next)]
+...      $iteration_parameters (by ! each ..$iteration_parameters translation.next)]
 ...     (in (..setup $iteration_parameters
 ...                  false offset it
 ...                  (_.go_to @scope)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/when.lux
index e1257ee8d1..31678a698d 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/statement/when.lux
@@ -104,7 +104,7 @@
               [( idx nextP)
                (|> nextP
                    next
-                   (of phase.monad each (|>> (_.then ( temporary road @failure true idx))
+                   (by phase.monad each (|>> (_.then ( temporary road @failure true idx))
                                              {.#Some})))]
 
               [synthesis.simple_left_side  ..left_choice]
@@ -242,7 +242,7 @@
                      (do !
                        [it ..local
                         clauses (monad.each ! (function (_ [match then])
-                                                (of ! each
+                                                (by ! each
                                                     (|>> [(<=> ( match) it)])
                                                     (next @failure then)))
                                             {.#Item item})]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/function.lux
index ce1b618a78..2c47be2ad8 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/function.lux
@@ -48,11 +48,11 @@
   (-> (List (Expression Any)) (Expression Any) (Operation (Expression Any)))
   (when inits
     {.#End}
-    (of ///////phase.monad in function_definition)
+    (by ///////phase.monad in function_definition)
 
     _
     (do [! ///////phase.monad]
-      [@closure (of ! each _.var (/////translation.symbol "closure"))]
+      [@closure (by ! each _.var (/////translation.symbol "closure"))]
       (in (_.labels (list [@closure [(|> (list.enumeration inits)
                                          (list#each (|>> product.left ..capture))
                                          _.args)
@@ -65,8 +65,8 @@
 (the .public (function expression archive [environment arity bodyS])
   (Translator (Abstraction Synthesis))
   (do [! ///////phase.monad]
-    [@scope (of ! each (|>> %.natural (%.message "function_scope") _.tag) /////translation.next)
-     @output (of ! each (|>> %.natural (%.message "loop_output") _.var) /////translation.next)
+    [@scope (by ! each (|>> %.natural (%.message "function_scope") _.tag) /////translation.next)
+     @output (by ! each (|>> %.natural (%.message "loop_output") _.var) /////translation.next)
      [function_name bodyG] (/////translation.with_new_context archive
                              (/////translation.with_anchor [@scope 1]
                                (expression archive bodyS)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/loop.lux
index b13112f4f8..0f07262fd3 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/loop.lux
@@ -46,8 +46,8 @@
     ... true loop
     _
     (do [! ///////phase.monad]
-      [@scope (of ! each (|>> %.natural (%.message "loop_scope") _.tag) /////translation.next)
-       @output (of ! each (|>> %.natural (%.message "loop_output") _.var) /////translation.next)
+      [@scope (by ! each (|>> %.natural (%.message "loop_scope") _.tag) /////translation.next)
+       @output (by ! each (|>> %.natural (%.message "loop_output") _.var) /////translation.next)
        initsG+ (monad.each ! (expression archive) initsS+)
        bodyG (/////translation.with_anchor [@scope start]
                (expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/runtime.lux
index 739e46be78..8584174d5f 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/runtime.lux
@@ -299,4 +299,4 @@
          (sequence.sequence [(%.natural ..module_id)
                              (|> ..runtime
                                  _.code
-                                 (of encoding.utf8 injection))])])))
+                                 (by encoding.utf8 injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/when.lux
index 7237446121..b1cc6c8ecf 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/when.lux
@@ -146,7 +146,7 @@
   (function (again [$output @done @fail pathP])
     (`` (.when pathP
           (/////synthesis.path/then bodyS)
-          (of ///////phase.monad each
+          (by ///////phase.monad each
               (function (_ outputV)
                 (_.progn (list (_.setq $output outputV)
                                (_.go @done))))
@@ -201,7 +201,7 @@
                  ( idx nextP)
                  (|> nextP
                      [$output @done @fail] again
-                     (of ///////phase.monad each (|>> {.#Some} ( @fail true idx))))]
+                     (by ///////phase.monad each (|>> {.#Some} ( @fail true idx))))]
 
                 [/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
                 [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice]))
@@ -225,7 +225,7 @@
 
           (/////synthesis.path/alt preP postP)
           (do [! ///////phase.monad]
-            [@else (of ! each (|>> %.natural (%.message "lux_when_else") _.tag) /////translation.next)
+            [@else (by ! each (|>> %.natural (%.message "lux_when_else") _.tag) /////translation.next)
              pre! (again [$output @done @else preP])
              post! (again [$output @done @fail postP])]
             (in (..alternation @else pre! post!)))
@@ -239,8 +239,8 @@
 (the (pattern_matching $output expression archive pathP)
   (-> Var/1 (Translator Path))
   (do [! ///////phase.monad]
-    [@done (of ! each (|>> %.natural (%.message "lux_when_done") _.tag) /////translation.next)
-     @fail (of ! each (|>> %.natural (%.message "lux_when_fail") _.tag) /////translation.next)
+    [@done (by ! each (|>> %.natural (%.message "lux_when_done") _.tag) /////translation.next)
+     @fail (by ! each (|>> %.natural (%.message "lux_when_fail") _.tag) /////translation.next)
      pattern_matching! (pattern_matching' expression archive [$output @done @fail pathP])]
     (in (_.tagbody
          (list pattern_matching!
@@ -252,7 +252,7 @@
   (Translator [Synthesis Path])
   (do [! ///////phase.monad]
     [initG (expression archive valueS)
-     $output (of ! each (|>> %.natural (%.message "lux_when_output") _.var) /////translation.next)
+     $output (by ! each (|>> %.natural (%.message "lux_when_output") _.var) /////translation.next)
      pattern_matching! (pattern_matching $output expression archive pathP)
      .let [storage (|> pathP
                        ////synthesis/when.storage
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/extension.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/extension.lux
index a4b6982625..005f68b1a8 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/extension.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/extension.lux
@@ -84,4 +84,4 @@
     (let [! phase.monad]
       (|> inputsS
           (monad.each ! (phase archive))
-          (of ! each extension)))))
+          (by ! each extension)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux
index 24e76f9860..c3ee3d8508 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux
@@ -153,7 +153,7 @@
      environment (monad.each ! (expression archive) environment)
      [abstraction_id @scope body!] (let [abstraction (<| (translation.with_new_context archive dependencies)
                                                          (do !
-                                                           [scope (of ! each ..@scope
+                                                           [scope (by ! each ..@scope
                                                                       (translation.context archive))
                                                             body (translation.with_anchor [1 scope]
                                                                    (statement expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux
index 273d4740b2..89e5141f8f 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux
@@ -75,11 +75,11 @@
     ... true loop
     _
     (do [! phase.monad]
-      [@scope (of ! each ..@scope /////translation.next)
+      [@scope (by ! each ..@scope /////translation.next)
        initsO+ (monad.each ! (expression archive) initsS+)
        body! (/////translation.with_anchor [start @scope]
                (statement expression archive bodyS))
-       $iteration (of ! each ..$iteration /////translation.next)]
+       $iteration (by ! each ..$iteration /////translation.next)]
       (in (..setup $iteration
                    true start
                    initsO+
@@ -105,7 +105,7 @@
   (do [! phase.monad]
     [[offset @scope] /////translation.anchor
      it (monad.each ! (expression archive) it)
-     $iteration (of ! each ..$iteration /////translation.next)]
+     $iteration (by ! each ..$iteration /////translation.next)]
     (in (..setup $iteration
                  false offset
                  it
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux
index ce545358d7..db7b5bf9d7 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux
@@ -826,4 +826,4 @@
                              {.#None}
                              (|> ..full
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux
index d66b89cb89..b368dfa0d0 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux
@@ -203,7 +203,7 @@
               [( idx nextP)
                (|> nextP
                    again
-                   (of phase.monad each (|>> (_.then ( true idx)) {.#Some})))]
+                   (by phase.monad each (|>> (_.then ( true idx)) {.#Some})))]
 
               [synthesis.simple_left_side  ..left_choice]
               [synthesis.simple_right_side ..right_choice]))
@@ -312,7 +312,7 @@
                     [{ item}
                      (do [! phase.monad]
                        [cases (monad.each ! (function (_ [match then])
-                                              (of ! each (|>> [(list ( match))]) (again then)))
+                                              (by ! each (|>> [(list ( match))]) (again then)))
                                           {.#Item item})]
                        (in (_.switch ..peek_cursor
                                      (list.reversed cases)
@@ -411,7 +411,7 @@
      (do [! phase.monad]
        [input (expression archive input)
         clauses (monad.each ! (function (_ [match then])
-                                (of ! each (|>> [(list (,injection match))])
+                                (by ! each (|>> [(list (,injection match))])
                                     (statement expression archive then)))
                             clauses)
         else (statement expression archive else)]
@@ -438,7 +438,7 @@
        [input (expression archive input)
         'input (phase#each _.var (translation.symbol "input"))
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [when]) (statement expression archive then)))
+                                (by ! each (|>> [when]) (statement expression archive then)))
                             clauses)
         else (statement expression archive else)]
        (in (all _.then
@@ -457,7 +457,7 @@
        [input (expression archive input)
         'input (phase#each _.var (translation.symbol "input"))
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [when]) (expression archive then)))
+                                (by ! each (|>> [when]) (expression archive then)))
                             clauses)
         else (expression archive else)]
        (in (_.apply (<| (_.closure (list 'input))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
index 03b8f4ce9a..e6d02dda0b 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
@@ -80,7 +80,7 @@
   (Translator (Tuple synthesis.Term))
   (when membersS
     {.#End}
-    (of phase.monad in //runtime.unit)
+    (by phase.monad in //runtime.unit)
 
     {.#Item singletonS {.#End}}
     (phase archive singletonS)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
index 74855daa25..6ee6c6d4b1 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
@@ -146,11 +146,11 @@
                                  _.return)}))
                    (list))]
     (io.value (do [! (try.with io.monad)]
-                [bytecode (of ! each (\\injection.value class.injection)
+                [bytecode (by ! each (\\injection.value class.injection)
                               (io.io bytecode))
                  _ (loader.store eval_class bytecode library)
                  class (loader.load eval_class loader)
-                 value (of io.monad in (class_value eval_class class))]
+                 value (by io.monad in (class_value eval_class class))]
                 (in [value
                      [eval_class bytecode]])))))
 
@@ -159,7 +159,7 @@
       (Try Any))
   (io.value (do (try.with io.monad)
               [existing_class? (|> (atom.read! library)
-                                   (of io.monad each (function (_ library)
+                                   (by io.monad each (function (_ library)
                                                        (dictionary.key? library class_name)))
                                    (try.lifted io.monad)
                                    (is (IO (Try Bit))))
@@ -187,7 +187,7 @@
              (implementation
               (the (evaluate @it,valueG)
                 (let [[id _] (io.value (atom.update! ++ id))]
-                  (of try.monad each product.left
+                  (by try.monad each product.left
                       (..evaluate! library loader (%.message "E" (%.natural id)) @it,valueG))))
               
               (the execute
@@ -209,5 +209,5 @@
                                                  custom)]
                     _ (loader.store class_name bytecode library)
                     class (loader.load class_name loader)]
-                   (of io.monad in (..class_value class_name class)))))
+                   (by io.monad in (..class_value class_name class)))))
               ))])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
index d2842d7d91..2c246ecd9a 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
@@ -51,7 +51,7 @@
   (-> Archive Register
       (Operation (Bytecode Any)))
   (do [! phase.monad]
-    [bytecode_name (of ! each //runtime.class_name
+    [bytecode_name (by ! each //runtime.class_name
                        (translation.context archive))]
     (in (all _.composite
              ..this
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux
index 725be7f35b..0752a30e2a 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux
@@ -652,4 +652,4 @@
     ... This shift is done to avoid the possibility of forged labels
     ... to be in the range of the labels that are generated automatically
     ... during the evaluation of Bytecode expressions.
-    (of phase.monad each (|>> ++ (i64.left_shifted shift)) translation.next)))
+    (by phase.monad each (|>> ++ (i64.left_shifted shift)) translation.next)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
index f8fd112023..6cd1b0c1bf 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
@@ -156,7 +156,7 @@
 
   [i64_pattern_matching I64 (//value.primitive type.long) _.dup2 _.pop2 //primitive.i64' _.lcmp _.ifne]
   [f64_pattern_matching F64 (//value.primitive type.double) _.dup2 _.pop2 //primitive.f64' _.dcmpl _.ifne]
-  [text_pattern_matching Text (of _.monad in []) _.dup _.pop //primitive.text ..object_equals _.ifeq]
+  [text_pattern_matching Text (by _.monad in []) _.dup _.pop //primitive.text ..object_equals _.ifeq]
   )
 
 (the (optimized_pattern_matching pattern_matching it)
@@ -372,7 +372,7 @@
      (do [! phase.monad]
        [input (expression archive input)
         cases (monad.each ! (function (_ [when then])
-                              (of ! each
+                              (by ! each
                                   (|>> [when])
                                   (expression archive then)))
                           cases)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux
index c1b7ea2823..e40ed700bd 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux
@@ -148,7 +148,7 @@
      environment (monad.each ! (expression archive) environment)
      [abstraction_id @scope body!] (let [abstraction (<| (translation.with_new_context archive dependencies)
                                                          (do !
-                                                           [@scope (of ! each ..@scope
+                                                           [@scope (by ! each ..@scope
                                                                        (translation.context archive))
                                                             body (translation.with_anchor [1 @scope]
                                                                    (statement expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux
index 3f14e3cb92..fcfcfb2685 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux
@@ -64,12 +64,12 @@
     {.#End}
     (|> bodyS
         (statement expression archive)
-        (of phase.monad each (|>> [(list)])))
+        (by phase.monad each (|>> [(list)])))
 
     ... true loop
     _
     (do [! phase.monad]
-      [@scope (of ! each ..@scope /////translation.next)
+      [@scope (by ! each ..@scope /////translation.next)
        initsO+ (monad.each ! (expression archive) initsS+)
        body! (/////translation.with_anchor [start @scope]
                (statement expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux
index 1ab06b9e32..2b030afec2 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux
@@ -481,4 +481,4 @@
                              {.#None}
                              (|> ..full
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux
index 701539338d..a203149227 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux
@@ -66,7 +66,7 @@
   (do [! phase.monad]
     [this (next archive this)
      that (statement next archive that)
-     $dummy (of ! each _.var (/////translation.symbol "_exec"))]
+     $dummy (by ! each _.var (/////translation.symbol "_exec"))]
     (in (all _.then
              (_.set (list $dummy) this)
              that))))
@@ -375,7 +375,7 @@
        [input (expression archive input)
         'input (phase#each _.var (/////translation.symbol "input"))
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [when]) (statement expression archive then)))
+                                (by ! each (|>> [when]) (statement expression archive then)))
                             clauses)
         else (statement expression archive else)]
        (in (all _.then
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/function.lux
index 7170c16325..5b6ac54564 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/function.lux
@@ -77,7 +77,7 @@
   (do [! ///////phase.monad]
     [[function_name body!] (/////translation.with_new_context archive
                              (do !
-                               [@scope (of ! each ..@scope
+                               [@scope (by ! each ..@scope
                                            (/////translation.context archive))]
                                (/////translation.with_anchor [1 @scope]
                                  (statement expression archive bodyS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/loop.lux
index f87310d51f..db705ea4cf 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/loop.lux
@@ -62,7 +62,7 @@
     ... true loop
     _
     (do [! ///////phase.monad]
-      [@scope (of ! each ..@scope /////translation.next)
+      [@scope (by ! each ..@scope /////translation.next)
        initsO+ (monad.each ! (expression archive) initsS+)
        body! (/////translation.with_anchor [start @scope]
                (statement expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/runtime.lux
index 555dd44128..2c10ab6189 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/runtime.lux
@@ -616,4 +616,4 @@
          (sequence.sequence [..module_id
                              (|> ..runtime
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/when.lux
index 8729d77fd0..a0bebaabf2 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/when.lux
@@ -218,7 +218,7 @@
                  ( idx nextP)
                  (|> nextP
                      again
-                     (of ///////phase.monad each (_.then ( true idx))))]
+                     (by ///////phase.monad each (_.then ( true idx))))]
 
                 [/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
                 [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux
index 89513dc106..7bbf2c06ad 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux
@@ -494,4 +494,4 @@
                              {.#None}
                              (|> ..full_runtime
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux
index 6dd226f16f..30a4b952d3 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux
@@ -242,7 +242,7 @@
                  (do [! phase.monad]
                    ['input (phase#each _.var (/////translation.symbol "input"))
                     clauses (monad.each ! (function (_ [when then])
-                                            (of ! each (|>> [when]) (again then)))
+                                            (by ! each (|>> [when]) (again then)))
                                         {.#Item item})]
                    (in (all _.then
                             (_.set (list 'input) ..peek)
@@ -409,7 +409,7 @@
        [input (expression archive input)
         'input (phase#each _.var (/////translation.symbol "input"))
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [when]) (statement expression archive then)))
+                                (by ! each (|>> [when]) (statement expression archive then)))
                             clauses)
         else (statement expression archive else)]
        (in (all _.then
@@ -428,7 +428,7 @@
        [input (expression archive input)
         'input (phase#each _.var (/////translation.symbol "input"))
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [when]) (expression archive then)))
+                                (by ! each (|>> [when]) (expression archive then)))
                             clauses)
         else (expression archive else)]
        (in (|> (list#mix (function (_ [when then] else)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/function.lux
index b94c072cce..1b4f6f93c2 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/function.lux
@@ -80,7 +80,7 @@
   (do [! ///////phase.monad]
     [[[function_module function_artifact] bodyO] (/////translation.with_new_context archive
                                                    (do !
-                                                     [$self (of ! each (|>> ///reference.artifact _.var)
+                                                     [$self (by ! each (|>> ///reference.artifact _.var)
                                                                 (/////translation.context archive))]
                                                      (/////translation.with_anchor $self
                                                        (expression archive bodyS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/loop.lux
index de8db4b4b2..01d8f1ec91 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/loop.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/loop.lux
@@ -45,7 +45,7 @@
     ... true loop
     _
     (do [! ///////phase.monad]
-      [$scope (of ! each _.var (/////translation.symbol "loop_scope"))
+      [$scope (by ! each _.var (/////translation.symbol "loop_scope"))
        initsO+ (monad.each ! (expression archive) initsS+)
        bodyO (/////translation.with_anchor $scope
                (expression archive bodyS))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/runtime.lux
index c42cedd48a..e3c4f744f8 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/runtime.lux
@@ -852,4 +852,4 @@
          (sequence.sequence [(%.natural ..module_id)
                              (|> ..full_runtime
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/when.lux
index 512e724da3..eccfaa5566 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/when.lux
@@ -240,7 +240,7 @@
   (Translator [Synthesis Path])
   (do [! ///////phase.monad]
     [valueO (expression archive valueS)]
-    (<| (of ! each (|>> (all _.then
+    (<| (by ! each (|>> (all _.then
                              (_.set! $cursor (_.list (list valueO)))
                              (_.set! $savepoint (_.list (list))))
                         _.block))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux
index 8919870be7..09689bebb0 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux
@@ -72,7 +72,7 @@
   (for_any (_ anchor expression declaration)
     (-> (System expression) Archive Symbol
         (translation.Operation anchor expression declaration expression)))
-  (phase#each (|>> ..artifact (of system constant'))
+  (phase#each (|>> ..artifact (by system constant'))
               (translation.remember archive name)))
 
 (template.with [ ]
@@ -80,7 +80,7 @@
      (for_any (_ expression)
        (-> (System expression)
            (-> Register expression)))
-     (|>> %.natural (%.message ) (of system variable')))]
+     (|>> %.natural (%.message ) (by system variable')))]
 
   ["f" foreign]
   ["l" local]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux
index de582e9bd1..979ecc3ec6 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux
@@ -618,4 +618,4 @@
                              {.#None}
                              (|> ..full
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux
index 915d32e955..4bbecb2a7e 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux
@@ -265,7 +265,7 @@
                 [{ item}
                  (do [! phase.monad]
                    [clauses (monad.each ! (function (_ [when then])
-                                            (of ! each (|>> [( when)])
+                                            (by ! each (|>> [( when)])
                                                 (again then)))
                                         {.#Item item})]
                    (in (_.case ..peek (list.reversed clauses) ..fail!)))]
@@ -278,7 +278,7 @@
           (do [! phase.monad]
             ['input (..symbol "input")
              clauses (monad.each ! (function (_ [when then])
-                                     (of ! each (|>> [(//primitive.i64 when)])
+                                     (by ! each (|>> [(//primitive.i64 when)])
                                          (again then)))
                                  {.#Item item})]
             (in (all _.then
@@ -369,7 +369,7 @@
   (-> Phase! (Translator [synthesis.Term Path]))
   (|> when
       (when! true statement expression archive)
-      (of phase.monad each
+      (by phase.monad each
           (|>> [(list)] (_.lambda {.#None})
                (_.apply_lambda (list))))))
 
@@ -392,7 +392,7 @@
   (-> Phase!
       (Translator synthesis.Multi_Let))
   (|>> (multi_let! statement expression archive)
-       (of phase.monad each
+       (by phase.monad each
            (|>> [(list)] (_.lambda {.#None})
                 (_.apply_lambda (list))))))
 
@@ -414,7 +414,7 @@
      (do [! phase.monad]
        [input (expression archive input)
         clauses (monad.each ! (function (_ [when then])
-                                (of ! each (|>> [(,injection when)]) (statement expression archive then)))
+                                (by ! each (|>> [(,injection when)]) (statement expression archive then)))
                             clauses)
         else (statement expression archive else)]
        (in (_.case input (list.reversed clauses) else))))
@@ -423,7 +423,7 @@
      (-> Phase!
          (Translator [synthesis.Term (List [,type synthesis.Term]) synthesis.Term]))
      (|>> (,statement statement expression archive)
-          (of phase.monad each
+          (by phase.monad each
               (|>> [(list)] (_.lambda {.#None})
                    (_.apply_lambda (list))))))]
 
@@ -438,7 +438,7 @@
     [input (expression archive input)
      'input (..symbol "input")
      clauses (monad.each ! (function (_ [when then])
-                             (of ! each (|>> [(//primitive.i64 when)])
+                             (by ! each (|>> [(//primitive.i64 when)])
                                  (statement expression archive then)))
                          clauses)
      else (statement expression archive else)]
@@ -455,6 +455,6 @@
   (-> Phase!
       (Translator [synthesis.Term (List [I64 synthesis.Term]) synthesis.Term]))
   (|>> (when_i64! statement expression archive)
-       (of phase.monad each
+       (by phase.monad each
            (|>> [(list)] (_.lambda {.#None})
                 (_.apply_lambda (list))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/function.lux
index 1660e1ca9d..d4647f9f8d 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/function.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/function.lux
@@ -68,7 +68,7 @@
   (do [! ///////phase.monad]
     [[function_name bodyO] (/////translation.with_new_context archive
                              (do !
-                               [@self (of ! each (|>> ///reference.artifact _.var)
+                               [@self (by ! each (|>> ///reference.artifact _.var)
                                           (/////translation.context archive))]
                                (/////translation.with_anchor @self
                                  (expression archive bodyS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/runtime.lux
index af4f7d39f7..a106f9be81 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/runtime.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/runtime.lux
@@ -375,4 +375,4 @@
          (sequence.sequence [(%.natural ..module_id)
                              (|> ..runtime
                                  _.code
-                                 (of utf8.format injection))])])))
+                                 (by utf8.format injection))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/when.lux
index 28eabc7dc4..232884c137 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/when.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/when.lux
@@ -217,7 +217,7 @@
 
 (the (pattern_matching expression archive pathP)
   (Translator Path)
-  (of ///////phase.monad each
+  (by ///////phase.monad each
       (try_pm (_.raise/1 (_.string "Invalid expression for pattern-matching.")))
       (pattern_matching' expression archive pathP)))
 
@@ -225,6 +225,6 @@
   (Translator [Synthesis Path])
   (do [! ///////phase.monad]
     [valueO (expression archive valueS)]
-    (<| (of ! each (_.let (list [@cursor (_.list/* (list valueO))]
+    (<| (by ! each (_.let (list [@cursor (_.list/* (list valueO))]
                                 [@savepoint (_.list/* (list))])))
         (pattern_matching expression archive pathP))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux b/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux
index 67a7fd8b5d..0cf9fbb2c3 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux
@@ -315,7 +315,7 @@
                [(when (|> @code
                           (!clip  )
                           (text.replaced ..digit_separator "")
-                          (of  projection))
+                          (by  projection))
                   {.#Right output}
                   (..success [(let [[where::file where::line where::column] ,where]
                                 [where::file where::line (!n/+ (!n/-  ) where::column)])
@@ -332,7 +332,7 @@
                [(when (|> @code
                           (!clip  )
                           (text.replaced ..digit_separator "")
-                          (of  projection))
+                          (by  projection))
                   {.#Right output}
                   (..success [(let [[where::file where::line where::column] where]
                                 [where::file where::line (!n/+ (!n/-  ) where::column)])
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis.lux b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis.lux
index 394365d0d4..de2fd59e33 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis.lux
@@ -480,12 +480,12 @@
             {#Bit_Fork actual_when actual_then actual_else}]
            (.and (bit.= expected_when actual_when)
                  (= expected_then actual_then)
-                 (of (maybe.equivalence =) = expected_else actual_else))
+                 (by (maybe.equivalence =) = expected_else actual_else))
 
            (,, (template.with [ ]
                  [[{ expected_item}
                    { actual_item}]
-                  (of (list.equivalence (product.equivalence  =)) =
+                  (by (list.equivalence (product.equivalence  =)) =
                       {.#Item expected_item}
                       {.#Item actual_item})]
 
@@ -495,7 +495,7 @@
            
            (,, (template.with [ ]
                  [[{ expected'} { actual'}]
-                  (of  = expected' actual')]
+                  (by  = expected' actual')]
 
                  [#Access /access.equivalence]
                  [#Then   equivalence]))
@@ -520,7 +520,7 @@
         (Hash (Path' of))))
   (implementation
    (the equivalence
-     (..path'_equivalence (of super equivalence)))
+     (..path'_equivalence (by super equivalence)))
    
    (the (hash value)
      (`` (.when value
@@ -528,23 +528,23 @@
            2
 
            {#Access access}
-           (n.* 3 (of /access.hash hash access))
+           (n.* 3 (by /access.hash hash access))
 
            {#Bind register}
-           (n.* 5 (of n.hash hash register))
+           (n.* 5 (by n.hash hash register))
 
            {#Bit_Fork when then else}
            (all n.* 7
-                (of bit.hash hash when)
+                (by bit.hash hash when)
                 (hash then)
-                (of (maybe.hash (path'_hash super)) hash else))
+                (by (maybe.hash (path'_hash super)) hash else))
 
            (,, (template.with [  ]
                  [{ item}
                   (.let [when_hash (product.hash 
                                                  (path'_hash super))
                          item_hash (product.hash when_hash (list.hash when_hash))]
-                    (n.*  (of item_hash hash item)))]
+                    (n.*  (by item_hash hash item)))]
 
                  [11 #I64_Fork i64.hash]
                  [13 #F64_Fork d.hash]
@@ -554,13 +554,13 @@
                  [{ fork}
                   (.let [again_hash (path'_hash super)
                          fork_hash (product.hash again_hash again_hash)]
-                    (n.*  (of fork_hash hash fork)))]
+                    (n.*  (by fork_hash hash fork)))]
 
                  [19 #Alt]
                  [23 #Seq]))
 
            {#Then body}
-           (n.* 29 (of super hash body))
+           (n.* 29 (by super hash body))
            )))))
 
 (the (branch_equivalence (open "/#[0]"))
@@ -578,13 +578,13 @@
        
        [{#Its [expected_path expected_record]}
         {#Its [actual_path actual_record]}]
-       (.and (of (list.equivalence /member.equivalence) = expected_path actual_path)
+       (.and (by (list.equivalence /member.equivalence) = expected_path actual_path)
              (/#= expected_record actual_record))
        
        [{#When [expected_input expected_path]}
         {#When [actual_input actual_path]}]
        (.and (/#= expected_input actual_input)
-             (of (path'_equivalence /#=) = expected_path actual_path))
+             (by (path'_equivalence /#=) = expected_path actual_path))
        
        _
        false))))
@@ -595,30 +595,30 @@
         (Hash (Branch of))))
   (implementation
    (the equivalence
-     (..branch_equivalence (of super equivalence)))
+     (..branch_equivalence (by super equivalence)))
    
    (the (hash value)
      (.when value
        {#Exec this that}
        (all n.* 2
-            (of super hash this)
-            (of super hash that))
+            (by super hash this)
+            (by super hash that))
        
        {#Let [[register input] body]}
        (all n.* 3
-            (of super hash input)
-            (of n.hash hash register)
-            (of super hash body))
+            (by super hash input)
+            (by n.hash hash register)
+            (by super hash body))
        
        {#Its [path record]}
        (all n.* 7
-            (of (list.hash /member.hash) hash path)
-            (of super hash record))
+            (by (list.hash /member.hash) hash path)
+            (by super hash record))
        
        {#When [input path]}
        (all n.* 11
-            (of super hash input)
-            (of (..path'_hash super) hash path))
+            (by super hash input)
+            (by (..path'_hash super) hash path))
        ))))
 
 (the (loop_equivalence (open "/#[0]"))
@@ -631,11 +631,11 @@
        [{#Scope [expected_start expected_inits expected_iteration]}
         {#Scope [actual_start actual_inits actual_iteration]}]
        (.and (n.= expected_start actual_start)
-             (of (list.equivalence /#=) = expected_inits actual_inits)
+             (by (list.equivalence /#=) = expected_inits actual_inits)
              (/#= expected_iteration actual_iteration))
 
        [{#Again expected} {#Again actual}]
-       (of (list.equivalence /#=) = expected actual)
+       (by (list.equivalence /#=) = expected actual)
        
        _
        false))))
@@ -646,19 +646,19 @@
         (Hash (Loop of))))
   (implementation
    (the equivalence
-     (..loop_equivalence (of super equivalence)))
+     (..loop_equivalence (by super equivalence)))
    
    (the (hash value)
      (.when value
        {#Scope [start inits iteration]}
        (all n.* 2
-            (of n.hash hash start)
-            (of (list.hash super) hash inits)
-            (of super hash iteration))
+            (by n.hash hash start)
+            (by (list.hash super) hash inits)
+            (by super hash iteration))
 
        {#Again resets}
        (all n.* 3
-            (of (list.hash super) hash resets))
+            (by (list.hash super) hash resets))
        ))))
 
 (the (function_equivalence (open "/#[0]"))
@@ -670,14 +670,14 @@
      (.when [expected actual]
        [{#Abstraction [expected_environment expected_arity expected_body]}
         {#Abstraction [actual_environment actual_arity actual_body]}]
-       (.and (of (list.equivalence /#=) = expected_environment actual_environment)
+       (.and (by (list.equivalence /#=) = expected_environment actual_environment)
              (n.= expected_arity actual_arity)
              (/#= expected_body actual_body))
        
        [{#Apply [expected_abstraction expected_arguments]}
         {#Apply [actual_abstraction actual_arguments]}]
        (.and (/#= expected_abstraction actual_abstraction)
-             (of (list.equivalence /#=) = expected_arguments actual_arguments))
+             (by (list.equivalence /#=) = expected_arguments actual_arguments))
        
        _
        false))))
@@ -688,20 +688,20 @@
         (Hash (Function of))))
   (implementation
    (the equivalence
-     (..function_equivalence (of super equivalence)))
+     (..function_equivalence (by super equivalence)))
    
    (the (hash value)
      (.when value
        {#Abstraction [environment arity body]}
        (all n.* 2
-            (of (list.hash super) hash environment)
-            (of n.hash hash arity)
-            (of super hash body))
+            (by (list.hash super) hash environment)
+            (by n.hash hash arity)
+            (by super hash body))
        
        {#Apply [abstraction arguments]}
        (all n.* 3
-            (of super hash abstraction)
-            (of (list.hash super) hash arguments))
+            (by super hash abstraction)
+            (by (list.hash super) hash arguments))
        ))))
 
 (the (control_equivalence (open "/#[0]"))
@@ -713,7 +713,7 @@
      (`` (.when [expected actual]
            (,, (template.with [ ]
                  [[{ expected} { actual}]
-                  (of ( /#=) = expected actual)]
+                  (by ( /#=) = expected actual)]
 
                  [#Branch ..branch_equivalence]
                  [#Loop ..loop_equivalence]
@@ -728,13 +728,13 @@
         (Hash (Control of))))
   (implementation
    (the equivalence
-     (..control_equivalence (of super equivalence)))
+     (..control_equivalence (by super equivalence)))
 
    (the (hash value)
      (`` (.when value
            (,, (template.with [  ]
                  [{ value}
-                  (n.*  (of ( super) hash value))]
+                  (n.*  (by ( super) hash value))]
 
                  [2 #Branch ..branch_hash]
                  [3 #Loop ..loop_hash]
@@ -748,7 +748,7 @@
      (`` (.when [expected actual]
            (,, (template.with [ ]
                  [[{ expected'} { actual'}]
-                  (of  = expected' actual')]
+                  (by  = expected' actual')]
 
                  [#Simple /simple.equivalence]
                  [#Structure (analysis/complex.equivalence =)]
@@ -776,7 +776,7 @@
        (`` (.when value
              (,, (template.with [  ]
                    [[_ { value}]
-                    (n.*  (of  hash value))]
+                    (n.*  (by  hash value))]
 
                    [02 #Simple /simple.hash]
                    [03 #Structure (analysis/complex.hash again_hash)]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access.lux b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access.lux
index eb3fe28443..360635b0b9 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access.lux
@@ -38,7 +38,7 @@
 
 (the .public equivalence
   (Equivalence Access)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/member.lux b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/member.lux
index 67d6f7d5a4..fd755f9917 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/member.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/member.lux
@@ -34,7 +34,7 @@
 
 (the .public equivalence
   (Equivalence Member)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/side.lux b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/side.lux
index 94ed797d6f..6236402809 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/side.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/access/side.lux
@@ -34,7 +34,7 @@
 
 (the .public equivalence
   (Equivalence Side)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/simple.lux b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/simple.lux
index bf41543799..0a310e077f 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/simple.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/synthesis/simple.lux
@@ -75,7 +75,7 @@
      (`` (|>> (pipe.when
                 (,, (template.with [  ]
                       [{ value'}
-                       (n.*   (of  hash value'))]
+                       (n.*   (by  hash value'))]
 
                       [2 #Bit  bit.hash]
                       [3 #F64  d.hash]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/translation.lux b/stdlib/source/library/lux/meta/compiler/language/lux/translation.lux
index 24c93e89a8..d17ad86fe3 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/translation.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/translation.lux
@@ -208,7 +208,7 @@
   (for_any (_ anchor expression declaration)
     (-> Text
         (Operation anchor expression declaration Text)))
-  (of phase.monad each (|>> %.natural (%.message prefix)) ..next))
+  (by phase.monad each (|>> %.natural (%.message prefix)) ..next))
 
 (the .public (enter_module module)
   (for_any (_ anchor expression declaration)
@@ -226,7 +226,7 @@
     (-> [(Maybe unit.ID) expression]
         (Operation anchor expression declaration Any)))
   (function (_ state)
-    (when (of (its #host state) evaluate code)
+    (when (by (its #host state) evaluate code)
       {try.#Success output}
       {try.#Success [state output]}
 
@@ -238,7 +238,7 @@
     (-> declaration
         (Operation anchor expression declaration Any)))
   (function (_ state)
-    (when (of (its #host state) execute code)
+    (when (by (its #host state) execute code)
       {try.#Success output}
       {try.#Success [state output]}
 
@@ -250,7 +250,7 @@
     (-> unit.ID (Maybe Text) [(Maybe unit.ID) expression]
         (Operation anchor expression declaration [Text Any declaration])))
   (function (_ state)
-    (when (of (its #host state) define context custom code)
+    (when (by (its #host state) define context custom code)
       {try.#Success output}
       {try.#Success [state output]}
 
diff --git a/stdlib/source/library/lux/meta/compiler/meta/archive.lux b/stdlib/source/library/lux/meta/compiler/meta/archive.lux
index 3177231a72..f0b2691a4c 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/archive.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/archive.lux
@@ -158,7 +158,7 @@
          (its #resolver)
          dictionary.entries
          (list.all (function (_ [module [module_id entry]])
-                     (of maybe.monad each (|>> [module_id] [module]) entry)))))
+                     (by maybe.monad each (|>> [module_id] [module]) entry)))))
 
   (the .public (find module archive)
     (-> descriptor.Module Archive (Try (Entry Any)))
@@ -287,7 +287,7 @@
        _ (exception.assertion ..version_mismatch [expected_version actual_version]
                               (n.= expected_version actual_version))
        _ (exception.assertion ..configuration_mismatch [expected_configuration actual_configuration]
-                              (of configuration.equivalence =
+                              (by configuration.equivalence =
                                   expected_configuration
                                   actual_configuration))]
       (in (nominal.abstraction
diff --git a/stdlib/source/library/lux/meta/compiler/meta/archive/artifact/category.lux b/stdlib/source/library/lux/meta/compiler/meta/archive/artifact/category.lux
index e9628b1a25..b21e8c9073 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/archive/artifact/category.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/archive/artifact/category.lux
@@ -34,7 +34,7 @@
        true
 
        [{#Definition left} {#Definition right}]
-       (of definition.equivalence = left right)
+       (by definition.equivalence = left right)
        
        [{#Custom left} {#Custom right}]
        (text.= left right)
diff --git a/stdlib/source/library/lux/meta/compiler/meta/archive/module/descriptor.lux b/stdlib/source/library/lux/meta/compiler/meta/archive/module/descriptor.lux
index fe5bd9c247..ae14922894 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/archive/module/descriptor.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/archive/module/descriptor.lux
@@ -85,6 +85,6 @@
        .text
        .text
        .natural
-       (of <>.monad in {.#Cached})
+       (by <>.monad in {.#Cached})
        (.set text.hash .text)
        ))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/archive/registry.lux b/stdlib/source/library/lux/meta/compiler/meta/archive/registry.lux
index 6e5f2c5052..1800e95f79 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/archive/registry.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/archive/registry.lux
@@ -167,7 +167,7 @@
                          (`` (when tag
                                (,, (template.with [  ]
                                      [
-                                      (of ! each (|>> {}) )]
+                                      (by ! each (|>> {}) )]
 
                                      [0 //category.#Anonymous .any]
                                      [1 //category.#Definition definition]
@@ -181,7 +181,7 @@
           dependencies (is (Projection (Set unit.ID))
                            (.set unit.hash dependency))]
       (|> (.sequence_64 (all <>.and category mandatory? dependencies))
-          (of <>.monad each (sequence#mix (function (_ [category mandatory? dependencies] registry)
+          (by <>.monad each (sequence#mix (function (_ [category mandatory? dependencies] registry)
                                             (product.right
                                              (`` (when category
                                                    {//category.#Anonymous}
diff --git a/stdlib/source/library/lux/meta/compiler/meta/archive/unit.lux b/stdlib/source/library/lux/meta/compiler/meta/archive/unit.lux
index fba26d31db..301ef5d79f 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/archive/unit.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/archive/unit.lux
@@ -34,7 +34,7 @@
 
 (the .public equivalence
   (Equivalence ID)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache.lux b/stdlib/source/library/lux/meta/compiler/meta/cache.lux
index ca86d5e92b..34cc69169f 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache.lux
@@ -19,7 +19,7 @@
   (for_any (_ !)
     (-> (file.System !)
         (! Bit)))
-  (of fs directory? ..path))
+  (by fs directory? ..path))
 
 (the .public (enable! ! fs)
   (for_any (_ !)
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/archive.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/archive.lux
index b3dcd925e6..7b64161756 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache/archive.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache/archive.lux
@@ -22,7 +22,7 @@
   (for_any (_ !)
     (-> (file.System !)
         file.Path))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (%.message //.path
                / "descriptor")))
 
@@ -30,4 +30,4 @@
   (for_any (_ !)
     (-> (file.System !) Configuration Archive
         (! (Try Any))))
-  (of fs write (..descriptor fs) (archive.export ///.version configuration it)))
+  (by fs write (..descriptor fs) (archive.export ///.version configuration it)))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux
index dd2430be8a..951613de1d 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux
@@ -26,7 +26,7 @@
   (for_any (_ !)
     (-> (file.System !) Context module.ID artifact.ID
         file.Path))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (%.message (//module.path fs @module)
                / (%.natural @artifact)
                (its context.#artifact_extension context))))
@@ -35,10 +35,10 @@
   (for_any (_ !)
     (-> (file.System !) Context module.ID artifact.ID
         (! (Try Binary))))
-  (of fs read (..path fs context @module @artifact)))
+  (by fs read (..path fs context @module @artifact)))
 
 (the .public (cache! fs context @module @artifact content)
   (for_any (_ !)
     (-> (file.System !) Context module.ID artifact.ID Binary
         (! (Try Any))))
-  (of fs write (..path fs context @module @artifact) content))
+  (by fs write (..path fs context @module @artifact) content))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/dependency/artifact.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/dependency/artifact.lux
index 00afb09a40..111e1d49a4 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache/dependency/artifact.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache/dependency/artifact.lux
@@ -171,7 +171,7 @@
         (set.of_list symbol.hash)
         set.list
         (monad.each ! (translation.remember archive))
-        (of ! each (set.of_list unit.hash)))))
+        (by ! each (set.of_list unit.hash)))))
 
 (the .public (path_dependencies archive value)
   (for_any (_ anchor expression declaration)
@@ -183,7 +183,7 @@
         (set.of_list symbol.hash)
         set.list
         (monad.each ! (translation.remember archive))
-        (of ! each (set.of_list unit.hash)))))
+        (by ! each (set.of_list unit.hash)))))
 
 (the .public all
   (-> (List (Set unit.ID))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux
index ec88cdc158..34a967ec4d 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux
@@ -39,7 +39,7 @@
   (for_any (_ !)
     (-> (file.System !) module.ID
         file.Path))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (%.message //.path
                / (%.natural @module))))
 
@@ -47,7 +47,7 @@
   (for_any (_ !)
     (-> (file.System !) module.ID
         (! Bit)))
-  (of fs directory? (..path fs @module)))
+  (by fs directory? (..path fs @module)))
 
 (the .public (enable! ! fs @module)
   (for_any (_ !)
@@ -55,7 +55,7 @@
         (! (Try Any))))
   (do !
     [.let [path (..path fs @module)]
-     module_exists? (of fs directory? path)]
+     module_exists? (by fs directory? path)]
     (if module_exists?
       (in {try.#Success []})
       (expansion.let [ (exception.except ..cannot_enable [//.path
@@ -69,8 +69,8 @@
             
             success
             (|> path
-                (of fs make_directory)
-                (of ! each (|>> (pipe.when
+                (by fs make_directory)
+                (by ! each (|>> (pipe.when
                                   {try.#Failure error}
                                   
 
@@ -85,7 +85,7 @@
   (for_any (_ !)
     (-> (file.System !) module.ID
         file.Path))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (%.message (..path fs @module)
                / ..file)))
 
@@ -93,26 +93,26 @@
   (for_any (_ !)
     (-> (file.System !) module.ID Binary
         (! (Try Any))))
-  (of fs write (..descriptor fs @module) content))
+  (by fs write (..descriptor fs @module) content))
 
 (the .public (cache fs @module)
   (for_any (_ !)
     (-> (file.System !) module.ID
         (! (Try Binary))))
-  (of fs read (..descriptor fs @module)))
+  (by fs read (..descriptor fs @module)))
 
 (the .public (artifacts ! fs @module)
   (for_any (_ !)
     (-> (Monad !) (file.System !) module.ID
         (! (Try (Dictionary Text Binary)))))
   (do [! (try.with !)]
-    [files (of fs directory_files (..path fs @module))
+    [files (by fs directory_files (..path fs @module))
      pairs (|> files
                (list#each (function (_ file)
                             [(file.name fs file) file]))
                (list.only (|>> product.left (text.= ..file) not))
                (monad.each ! (function (_ [name path])
                                (|> path
-                                   (of fs read)
-                                   (of ! each (|>> [name]))))))]
+                                   (by fs read)
+                                   (by ! each (|>> [name]))))))]
     (in (dictionary.of_list text.hash pairs))))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/purge.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/purge.lux
index 00ab2da56b..085ce297a0 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/cache/purge.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/cache/purge.lux
@@ -47,10 +47,10 @@
   (do [! (try.with async.monad)]
     [.let [cache (//module.path fs @module)]
      _ (|> cache
-           (of fs directory_files)
-           (of ! each (monad.each ! (of fs delete)))
-           (of ! conjoint))]
-    (of fs delete cache)))
+           (by fs directory_files)
+           (by ! each (monad.each ! (by fs delete)))
+           (by ! conjoint))]
+    (by fs delete cache)))
 
 (the .public (valid? expected actual)
   (-> Descriptor Input
diff --git a/stdlib/source/library/lux/meta/compiler/meta/export.lux b/stdlib/source/library/lux/meta/compiler/meta/export.lux
index ac0368e0cf..7f28ba0ab3 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/export.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/export.lux
@@ -71,7 +71,7 @@
 
                           (list.partial [path source_code] listing)
                           (when [(|> path
-                                     (text.replaced (of fs separator) .module_separator)
+                                     (text.replaced (by fs separator) .module_separator)
                                      tar.path)
                                  (tar.content source_code)]
                             [{try.#Success path} {try.#Success content}]
@@ -94,6 +94,6 @@
   (do [! (try.with async.monad)]
     [tar (|> sources
              (..library fs)
-             (of ! each (!binary.value tar.injection)))
-     .let [/ (of fs separator)]]
-    (of fs write (%.message target / ..file) tar)))
+             (by ! each (!binary.value tar.injection)))
+     .let [/ (by fs separator)]]
+    (by fs write (%.message target / ..file) tar)))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/import.lux b/stdlib/source/library/lux/meta/compiler/meta/import.lux
index eaad23b4c7..8ccfcd47ec 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/import.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/import.lux
@@ -49,11 +49,11 @@
   (-> (file.System Async) Library Import (Action Import))
   (let [! async.monad]
     (|> library
-        (of system read)
-        (of ! each (let [! try.monad]
-                     (|>> (of ! each (.value tar.projection))
-                          (of ! conjoint)
-                          (of ! each (|>> sequence.as_list
+        (by system read)
+        (by ! each (let [! try.monad]
+                     (|>> (by ! each (.value tar.projection))
+                          (by ! conjoint)
+                          (by ! each (|>> sequence.as_list
                                           (monad.mix ! (function (_ entry import)
                                                          (when entry
                                                            {tar.#Normal [path instant mode ownership content]}
@@ -68,7 +68,7 @@
                                                            _
                                                            (exception.except ..useless_tar_entry [])))
                                                      import)))
-                          (of ! conjoint)))))))
+                          (by ! conjoint)))))))
 
 (the .public (import system libraries)
   (-> (file.System Async) (List Library) (Action Import))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/io.lux b/stdlib/source/library/lux/meta/compiler/meta/io.lux
index a81983051a..a65fd62022 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/io.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/io.lux
@@ -24,4 +24,4 @@
     (-> (file.System !) descriptor.Module
         file.Path))
   (text.replaced .module_separator
-                 (of fs separator)))
+                 (by fs separator)))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux b/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux
index 9b64a7fadf..03f5e3b006 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux
@@ -120,12 +120,12 @@
                                                     (dictionary.value (%.message (%.natural @artifact) extension))
                                                     (try.of_maybe ..cannot_find_artifact))
                                            .let [context [@module @artifact]
-                                                 declaration (of host ingest context data)]]
+                                                 declaration (by host ingest context data)]]
                                           (when artifact_category
                                             {category.#Anonymous}
                                             (do !
                                               [.let [output (sequence.suffix [@artifact {.#None} data] output)]
-                                               _ (of host re_learn context {.#None} declaration)]
+                                               _ (by host re_learn context {.#None} declaration)]
                                               (in [definitions
                                                    output]))
                                             
@@ -135,14 +135,14 @@
                                                 (in [definitions
                                                      output])
                                                 (do !
-                                                  [value (of host re_load context {.#None} declaration)]
+                                                  [value (by host re_load context {.#None} declaration)]
                                                   (in [(dictionary.has name value definitions)
                                                        output]))))
 
                                             {category.#Custom name}
                                             (do !
                                               [.let [output (sequence.suffix [@artifact {.#Some name} data] output)]
-                                               _ (of host re_learn context {.#Some name} declaration)]
+                                               _ (by host re_learn context {.#Some name} declaration)]
                                               (in [definitions
                                                    output]))))
                                     {try.#Success [definitions' output']}
@@ -163,7 +163,7 @@
                                    (|> definitions
                                        (dictionary.value def_name)
                                        (try.of_maybe ..cannot_find_definition)
-                                       (of ! each (|>> [type]
+                                       (by ! each (|>> [type]
                                                        {.#Definition}
                                                        [exported?]
                                                        [def_name]
@@ -244,8 +244,8 @@
                                  archive.#registry registry]
                                 archive))
                  archive)
-      (of try.monad each (dependency.load_order $.key))
-      (of try.monad conjoint)))
+      (by try.monad each (dependency.load_order $.key))
+      (by try.monad conjoint)))
 
 (the (loaded_caches host_environment fs context purge load_order)
   (for_any (_ expression declaration)
@@ -289,7 +289,7 @@
     (-> (List Custom) Configuration (translation.Host expression declaration) (file.System Async) Context Import (List //.Context)
         (Async (Try [Archive .Lux]))))
   (do async.monad
-    [binary (of fs read (cache/archive.descriptor fs))]
+    [binary (by fs read (cache/archive.descriptor fs))]
     (when binary
       {try.#Success binary}
       (do (try.with async.monad)
diff --git a/stdlib/source/library/lux/meta/compiler/meta/io/context.lux b/stdlib/source/library/lux/meta/compiler/meta/io/context.lux
index 0b5f356625..76f5cbcb60 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/io/context.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/io/context.lux
@@ -60,7 +60,7 @@
         file.Path))
   (|> module
       (//.path fs)
-      (%.message context (of fs separator))))
+      (%.message context (by fs separator))))
 
 (the (find_source_file fs importer contexts module extension)
   (-> (file.System Async) Module (List Context) Module Extension
@@ -72,7 +72,7 @@
     {.#Item context contexts'}
     (let [path (%.message (..path fs context module) extension)]
       (do async.monad
-        [? (of fs file? path)]
+        [? (by fs file? path)]
         (if ?
           (in {try.#Success path})
           (find_source_file fs importer contexts' module extension))))))
@@ -92,15 +92,15 @@
     (when outcome
       {try.#Success path}
       (|> path
-          (of fs read)
-          (of (try.with !) each (|>> [path])))
+          (by fs read)
+          (by (try.with !) each (|>> [path])))
 
       {try.#Failure _}
       (do [! (try.with !)]
         [path (..find_source_file fs importer contexts module ..lux_extension)]
         (|> path
-            (of fs read)
-            (of ! each (|>> [path])))))))
+            (by fs read)
+            (by ! each (|>> [path])))))))
 
 (the (find_library_source_file importer import partial_host_extension module)
   (-> Module Import Extension Module
@@ -138,7 +138,7 @@
       (Async (Try Input)))
   (do (try.with async.monad)
     [[path binary] (..find_any_source_file fs importer import contexts partial_host_extension module)]
-    (when (of utf8.format projection binary)
+    (when (by utf8.format projection binary)
       {try.#Success code}
       (in [////.#module module
            ////.#file path
@@ -155,19 +155,19 @@
   (-> (file.System Async) Context file.Path Enumeration (Async (Try Enumeration)))
   (do [! (try.with async.monad)]
     [enumeration (|> directory
-                     (of fs directory_files)
-                     (of ! each (monad.mix ! (function (_ file enumeration)
+                     (by fs directory_files)
+                     (by ! each (monad.mix ! (function (_ file enumeration)
                                                (if (text.ends_with? ..lux_extension file)
                                                  (do !
-                                                   [source_code (of fs read file)]
+                                                   [source_code (by fs read file)]
                                                    (async#in (dictionary.has' (text.replaced_once context "" file) source_code enumeration)))
                                                  (in enumeration)))
                                            enumeration))
-                     (of ! conjoint))]
+                     (by ! conjoint))]
     (|> directory
-        (of fs sub_directories)
-        (of ! each (monad.mix ! (context_listing fs context) enumeration))
-        (of ! conjoint))))
+        (by fs sub_directories)
+        (by ! each (monad.mix ! (context_listing fs context) enumeration))
+        (by ! conjoint))))
 
 (the Action
   (type (for_any (_ of)
@@ -177,7 +177,7 @@
   (-> (file.System Async) Context
       (Action Context))
   (do (try.with async.monad)
-    [subs (of fs sub_directories context)]
+    [subs (by fs sub_directories context)]
     (in (|> subs
             list.head
             (try.else context)
@@ -194,7 +194,7 @@
                  (do !
                    [context (..canonical fs context)]
                    (..context_listing fs
-                                      (%.message context (of fs separator))
+                                      (%.message context (by fs separator))
                                       context
                                       enumeration)))
                (is Enumeration
diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux
index b89332072b..678f92ecd3 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux
@@ -181,7 +181,7 @@
                (function (_ [artifact custom content] sink)
                  (if (set.member? necessary_dependencies [module artifact])
                    (..write_class static module artifact custom content sink)
-                   (of ! in sink)))
+                   (by ! in sink)))
                sink
                (sequence.as_list output))))
 
diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux
index e4dc770763..9a78294e89 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux
@@ -65,8 +65,8 @@
         [bundle (monad.mix !
                            (function (_ [artifact custom_name content] so_far)
                              (|> content
-                                 (of utf8.format projection)
-                                 (of ! each
+                                 (by utf8.format projection)
+                                 (by ! each
                                      (|>> as_expected
                                           (is declaration)
                                           (sharing [declaration]
@@ -99,7 +99,7 @@
                               (list#mix _.then bundle)
                               (is _.Statement)
                               _.code
-                              (of utf8.format injection))]
+                              (by utf8.format injection))]
         (in (list.partial [module_id [(..module_file module_id) entry_content]]
                           sink))))))
 
@@ -139,7 +139,7 @@
                                           (_.; (_.string ""))))
                        (is _.Statement)
                        _.code
-                       (of utf8.format injection))]]
+                       (by utf8.format injection))]]
     (in (|> entries
             (list#each product.right)
             {.#Item [..main_file imports]}
diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux
index 62b166c637..a215073746 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux
@@ -66,8 +66,8 @@
        (monad.mix try.monad
                   (function (_ content so_far)
                     (|> content
-                        (of encoding.utf8 projection)
-                        (of try.monad each
+                        (by encoding.utf8 projection)
+                        (by try.monad each
                             (|>> as_expected
                                  (is declaration)
                                  (sharing [declaration]
@@ -115,7 +115,7 @@
                            (list#mix ..then bundle)
                            (is _.Expression)
                            _.code
-                           (of encoding.utf8 injection)
+                           (by encoding.utf8 injection)
                            tar.content))
      module_file (tar.path (..module_file module_id))]
     (in {tar.#Normal [module_file now ..mode ..ownership entry_content]})))
diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/script.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/script.lux
index 3744c36936..5596aac9c5 100644
--- a/stdlib/source/library/lux/meta/compiler/meta/packager/script.lux
+++ b/stdlib/source/library/lux/meta/compiler/meta/packager/script.lux
@@ -51,8 +51,8 @@
       (monad.mix try.monad
                  (function (_ content so_far)
                    (|> content
-                       (of utf8.format projection)
-                       (of try.monad each
+                       (by utf8.format projection)
+                       (by try.monad each
                            (|>> as_expected
                                 (is declaration)
                                 (sharing [declaration]
@@ -76,7 +76,7 @@
           (list#each (function (_ [module [module_id entry]])
                        [module_id (its archive.#output entry)]))
           (monad.mix ! (..write_module necessary_dependencies sequence) header)
-          (of ! each (|>> scope
+          (by ! each (|>> scope
                           code
-                          (of utf8.format injection)
+                          (by utf8.format injection)
                           {.#Left}))))))
diff --git a/stdlib/source/library/lux/meta/compiler/reference.lux b/stdlib/source/library/lux/meta/compiler/reference.lux
index 5ebbfb9105..0697b69b4f 100644
--- a/stdlib/source/library/lux/meta/compiler/reference.lux
+++ b/stdlib/source/library/lux/meta/compiler/reference.lux
@@ -39,7 +39,7 @@
      (`` (when [expected actual]
            (,, (template.with [ ]
                  [[{ expected} { actual}]
-                  (of  = expected actual)]
+                  (by  = expected actual)]
 
                  [#Variable /variable.equivalence]
                  [#Constant symbol.equivalence]))
@@ -61,7 +61,7 @@
            (,, (template.with [  ]
                  [{ value}
                   (|> value
-                      (of  hash)
+                      (by  hash)
                       (n.* ))]
 
                  [2 #Variable /variable.hash]
diff --git a/stdlib/source/library/lux/meta/compiler/reference/variable.lux b/stdlib/source/library/lux/meta/compiler/reference/variable.lux
index 8ad9c3e493..ee99b1ac57 100644
--- a/stdlib/source/library/lux/meta/compiler/reference/variable.lux
+++ b/stdlib/source/library/lux/meta/compiler/reference/variable.lux
@@ -58,7 +58,7 @@
             (,, (template.with [ ]
                   [{ register}
                    (|> register
-                       (of n.hash hash)
+                       (by n.hash hash)
                        (n.* ))]
 
                   [2 #Local]
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux
index 3ed14a01df..2c1e778102 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux
@@ -122,7 +122,7 @@
     (function (_ resolver)
       (<| (try|do [left_exceptions left_instruction] (left resolver))
           (try|do [right_exceptions right_instruction] (right resolver))
-          (try|in [(of sequence.monoid composite left_exceptions right_exceptions)
+          (try|in [(by sequence.monoid composite left_exceptions right_exceptions)
                    (_#composite left_instruction right_instruction)])))))
 
 (the relative_monoid
@@ -156,8 +156,8 @@
    (list ["Instruction" (symbol.as_text instruction)]
          ["Label" (%.natural label)]
          ["Address" (/address.text address)]
-         ["Expected" (/stack.text expected)]
-         ["Actual" (/stack.text actual)])))
+         ["Expected" (/stack.as_text expected)]
+         ["Actual" (/stack.as_text actual)])))
 
 (exception.the .public (unknown_label label)
   (exception.Exception Label)
@@ -755,7 +755,7 @@
       (Bytecode Register))
   (when (//unsigned.u1 id)
     {try.#Success register}
-    (of ..monad in register)
+    (by ..monad in register)
     
     {try.#Failure error}
     (..except ..invalid_register [id])))
@@ -924,7 +924,7 @@
                         [(function (_ resolver)
                            (<| (try|do [expected @to] (..resolve_label label resolver))
                                (try|do _ (exception.assertion ..mismatched_environments [(symbol ) label @here expected actual]
-                                                              (of /stack.equivalence = expected actual)))
+                                                              (by /stack.equivalence = expected actual)))
                                (try|do jump (..jump @from @to))
                                (when jump
                                  {.#Left jump}
@@ -974,7 +974,7 @@
                            (when (dictionary.value label resolver)
                              {try.#Success [expected {.#Some @to}]}
                              (<| (try|do _ (exception.assertion ..mismatched_environments [(symbol ) label @here expected actual]
-                                                                (of /stack.equivalence = expected actual)))
+                                                                (by /stack.equivalence = expected actual)))
                                  (try|do jump (..jump @from @to))
                                  (when jump
                                    {.#Left jump}
@@ -1035,7 +1035,7 @@
                                    @at_minimum (address at_minimum)]
                                   (|> afterwards
                                       (monad.each ! address)
-                                      (of ! each (|>> [@default @at_minimum]))))
+                                      (by ! each (|>> [@default @at_minimum]))))
                             {try.#Success [@default @at_minimum @afterwards]}
                             (<| (try|do >default (try#each ..big_jump (..jump @from @default)))
                                 (try|do >at_minimum (try#each ..big_jump (..jump @from @at_minimum)))
@@ -1077,7 +1077,7 @@
                                   [@default (address default)]
                                   (|> cases
                                       (monad.each ! (|>> product.right address))
-                                      (of ! each (|>> [@default]))))
+                                      (by ! each (|>> [@default]))))
                             {try.#Success [@default @cases]}
                             (<| (try|do >default (try#each ..big_jump (..jump @from @default)))
                                 (try|do >cases (|> @cases
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux
index 62bc23bc9a..d0ae79f965 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux
@@ -45,7 +45,7 @@
     (-> U2 (-> Address (Try Address)))
     (|>> nominal.representation
          (///unsigned.+/2 distance)
-         (of try.functor each (|>> nominal.abstraction))))
+         (by try.functor each (|>> nominal.abstraction))))
 
   (the with_sign
     (-> Address (Try S4))
@@ -70,7 +70,7 @@
     (Equivalence Address)
     (implementation
      (the (= expected actual)
-       (of ///unsigned.equivalence =
+       (by ///unsigned.equivalence =
            (nominal.representation expected)
            (nominal.representation actual)))))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux
index c3f99d7970..4d41c0eb1f 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux
@@ -73,14 +73,14 @@
 (exception.the .public (mismatched_stacks [expected actual])
   (Exception [Stack Stack])
   (exception.report
-   (list ["Expected" (/stack.text expected)]
-         ["Actual" (/stack.text actual)])))
+   (list ["Expected" (/stack.as_text expected)]
+         ["Actual" (/stack.as_text actual)])))
 
 (the .public (continue expected environment)
   (-> Stack Environment (Try [Stack Environment]))
   (when (its ..#stack environment)
     {.#Some actual}
-    (if (of /stack.equivalence = expected actual)
+    (if (by /stack.equivalence = expected actual)
       {try.#Success [actual environment]}
       (exception.except ..mismatched_stacks [expected actual]))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux
index ecceff1358..cbdc156441 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux
@@ -64,6 +64,6 @@
 (the .public (injection limit)
   (Injection Limit)
   (all \\injection#composite
-       (/stack.injection (its #stack limit))
+       (/stack.as_binary (its #stack limit))
        (/registry.injection (its #registry limit))
        ))
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux
index 791082fd86..400ed20847 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux
@@ -67,7 +67,7 @@
 
   (the .public equivalence
     (Equivalence Registry)
-    (of equivalence.functor each
+    (by equivalence.functor each
         (|>> nominal.representation)
         /////unsigned.equivalence))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
index 8551905ae0..29b85ee78e 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
@@ -12,8 +12,10 @@
    [data
     ["[0]" text (.only)
      ["%" \\injection]]
-    [binary
-     [\\injection (.only Injection)]]]
+    ["[0]" binary
+     ["[1]" \\injection]]]
+   [math
+    ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]
    [meta
     [type
      ["[0]" nominal]]
@@ -42,15 +44,15 @@
 
   (the .public equivalence
     (Equivalence Stack)
-    (of equivalence.functor each
+    (by equivalence.functor each
         (|>> nominal.representation)
         unsigned.equivalence))
 
   (alias [=]
          ..equivalence)
 
-  (the .public injection
-    (Injection Stack)
+  (the .public as_binary
+    (binary.Injection Stack)
     (|>> nominal.representation
          unsigned.injection/2))
 
@@ -65,7 +67,7 @@
            (Try Stack))
        (|>> nominal.representation
             ( amount)
-            (of try.functor each ..stack)))]
+            (by try.functor each ..stack)))]
 
     [unsigned.+/2 push]
     [unsigned.-/2 pop]
@@ -78,7 +80,7 @@
      (unsigned.max/2 (nominal.representation left)
                      (nominal.representation right))))
 
-  (the .public text
+  (the .public as_text
     (text.Injection Stack)
     (|>> nominal.representation
          unsigned.value
@@ -87,3 +89,10 @@
 
 (the .public length
   unsigned.bytes/2)
+
+(the .public random
+  (Random Stack)
+  (all random.either
+       (random#in ..empty)
+       (random#in ..catch)
+       ))
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux
index b12e4f0304..0062a8ffbd 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux
@@ -611,7 +611,7 @@
                  tableswitch_size (try.trusted
                                    (do [! try.monad]
                                      [size (///unsigned.u2 size)]
-                                     (of ! each (|>> estimator ///unsigned.value)
+                                     (by ! each (|>> estimator ///unsigned.value)
                                          (//address.move size //address.start))))
                  tableswitch_mutation (is Mutation
                                           (function (_ [offset binary])
@@ -675,7 +675,7 @@
                  lookupswitch_size (try.trusted
                                     (do [! try.monad]
                                       [size (///unsigned.u2 size)]
-                                      (of ! each (|>> estimator ///unsigned.value)
+                                      (by ! each (|>> estimator ///unsigned.value)
                                           (//address.move size //address.start))))
                  lookupswitch_mutation (is Mutation
                                            (function (_ [offset binary])
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux
index 4847b5992e..dafae9e4ab 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux
@@ -117,7 +117,7 @@
             attributes (monad.all ! attributes)
             @signature (when signature
                          {.#Some signature}
-                         (of ! each (|>> {.#Some}) (//attribute.signature signature))
+                         (by ! each (|>> {.#Some}) (//attribute.signature signature))
 
                          {.#None}
                          (in {.#None}))]
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/class.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/class.lux
index b16752b9e4..c1e0438729 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/class.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/class.lux
@@ -37,7 +37,7 @@
 
   (the .public equivalence
     (Equivalence Class)
-    (of equivalence.functor each
+    (by equivalence.functor each
         ..index
         index.equivalence))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux
index ceee400053..3eaf9692fb 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux
@@ -120,7 +120,7 @@
              {try.#Success entry}
              (when entry
                [index { reference}]
-               (if (of  = reference ')
+               (if (by  = reference ')
                  {try.#Success [[current pool]
                                 index]}
                  )
@@ -135,7 +135,7 @@
                                     (|> current
                                         //index.value
                                         (//unsigned.+/2 @new)
-                                        (of try.monad each //index.index))))
+                                        (by try.monad each //index.index))))
                  (try#in [[next
                            (sequence.suffix [current new] pool)]
                           current]))))))]))
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux
index d28d58846b..b5ef1ec524 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux
@@ -27,7 +27,7 @@
 
   (the .public hash
     (Hash Tag)
-    (of hash.functor each (|>> nominal.representation)
+    (by hash.functor each (|>> nominal.representation)
         unsigned.hash))
 
   (the .public equivalence
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux
index 3e1a206e74..c52b3ec24c 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux
@@ -52,7 +52,7 @@
        ..equivalence)
      (the hash
        (|>> nominal.representation
-            (of n.hash hash)))))
+            (by n.hash hash)))))
 
   (alias [=]
          ..equivalence)
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux
index 1abc5627b9..1eccd26c1a 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux
@@ -79,7 +79,7 @@
     [@name (//constant/pool.utf8 name)
      @descriptor (//constant/pool.descriptor (//type.descriptor type))
      @signature (if with_signature?
-                  (of ! each (|>> {.#Some}) (//attribute.signature (//type.signature type)))
+                  (by ! each (|>> {.#Some}) (//attribute.signature (//type.signature type)))
                   (in {.#None}))]
     (in [#modifier modifier
          #name @name
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux
index 6aa5f0a2d7..5e6b0a00b1 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux
@@ -40,7 +40,7 @@
   (the .public equivalence
     (for_any (_ of)
       (Equivalence (Index of)))
-    (of equivalence.functor each
+    (by equivalence.functor each
         ..value
         //.equivalence))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux
index 3e477bed68..4db75be894 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux
@@ -70,7 +70,7 @@
                       (list.partial (//attribute.signature (//type.signature type)) attributes)
                       attributes)
                     (monad.all !)
-                    (of ! each sequence.of_list))
+                    (by ! each sequence.of_list))
      attributes (when code
                   {.#Some code}
                   (do !
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux
index f81004c371..42fc0556be 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux
@@ -41,7 +41,7 @@
       (Equivalence (Modifier of)))
     (implementation
      (the (= expected actual)
-       (of //unsigned.equivalence =
+       (by //unsigned.equivalence =
            (nominal.representation expected)
            (nominal.representation actual)))))
 
@@ -68,7 +68,7 @@
     (let [sub (!representation sub)]
       (|> (!representation super)
           (i64.and sub)
-          (of i64.equivalence = sub))))
+          (by i64.equivalence = sub))))
 
   (the .public monoid
     (for_any (_ of)
@@ -85,7 +85,7 @@
 
   (the .public empty
     Modifier
-    (of ..monoid identity))
+    (by ..monoid identity))
 
   (the .public injection
     (for_any (_ of)
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux
index b2d95b35bd..963285815a 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux
@@ -177,7 +177,7 @@
                   (java/lang/reflect/ParameterizedType::getActualTypeArguments [])
                   (array.list {.#None})
                   (monad.each ! parameter)
-                  (of ! each (function (_ parameters)
+                  (by ! each (function (_ parameters)
                                (|> raw'
                                    (as (java/lang/Class java/lang/Object))
                                    (java/lang/Class::getName [])
@@ -213,7 +213,7 @@
                        {try.#Success /.wildcard}
 
                        _
-                       (of try.monad each  (parameter type bound)))]
+                       (by try.monad each  (parameter type bound)))]
 
                     [[_ {try.#Success bound}] /.upper]
                     [[{try.#Success bound} _] /.lower]))
@@ -226,7 +226,7 @@
         (|> reflection
             (java/lang/reflect/GenericArrayType::getGenericComponentType [])
             type
-            (of try.monad each /.array))
+            (by try.monad each /.array))
         _)
       (when (ffi.as java/lang/Class reflection)
         {.#Some class}
@@ -406,7 +406,7 @@
           (|> fieldJ
                      (java/lang/reflect/Field::getGenericType [])
                      ..type
-                     (of ! each (|>> [(ffi.of_boolean (java/lang/reflect/Modifier::isFinal [modifiers]))
+                     (by ! each (|>> [(ffi.of_boolean (java/lang/reflect/Modifier::isFinal [modifiers]))
                                       (..deprecated? (java/lang/reflect/Field::getDeclaredAnnotations [] fieldJ))])))
           (exception.except  [field class]))))]
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux
index 911c737570..a2cf3c2c6b 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux
@@ -195,7 +195,7 @@
       (Equivalence (Type category)))
     (implementation
      (the (= parameter subject)
-       (of /signature.equivalence =
+       (by /signature.equivalence =
            (..signature parameter)
            (..signature subject)))))
 
@@ -207,14 +207,14 @@
       (Hash (Type category)))
     (implementation
      (the equivalence ..equivalence)
-     (the hash (|>> ..signature (of /signature.hash hash)))))
+     (the hash (|>> ..signature (by /signature.hash hash)))))
 
   (the .public (primitive? type)
     (-> ..Value
         (Either ..Object
                 ..Primitive))
     (if (`` (or (,, (template.with []
-                      [(of ..equivalence = (is ..Value ) type)]
+                      [(by ..equivalence = (is ..Value ) type)]
                       
                       [..boolean]
                       [..byte]
@@ -232,7 +232,7 @@
         (Either ..Value
                 ..Void))
     (if (`` (or (,, (template.with []
-                      [(of ..equivalence = (is ..Return ) type)]
+                      [(by ..equivalence = (is ..Return ) type)]
                       
                       [..void]))))
       (|> type (as ..Void) {.#Right})
@@ -252,7 +252,7 @@
                           (n.- suffix_size))]
         (|> repr
             (text.clip prefix_size name_size)
-            (of maybe.monad each (|>> //name.internal //name.external))))
+            (by maybe.monad each (|>> //name.internal //name.external))))
       {.#None})))
 
 (the .public as_text
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux
index 937f5dc206..4d650fb4ab 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux
@@ -56,7 +56,7 @@
   [(the 
      (-> (Projection (Type Class)) (Projection (Type Parameter)))
      (|>> (<>.after (.this ))
-          (of <>.monad each )))]
+          (by <>.monad each )))]
 
   [lower //signature.lower_prefix //.lower ..Lower]
   [upper //signature.upper_prefix //.upper ..Upper]
@@ -112,7 +112,7 @@
 (the (bound_type_var aliasing)
   (-> Aliasing (Projection (Type Var)))
   (|> //projection.var_name
-      (of <>.monad each //.var)
+      (by <>.monad each //.var)
       (<>.before (<>.many (..bound aliasing)))))
 
 (the .public (method aliasing)
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux
index 963415ac74..328293ab2d 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux
@@ -132,7 +132,7 @@
        ..equivalence)
      (the hash
        (|>> nominal.representation
-            (of text.hash hash)))))
+            (by text.hash hash)))))
 
   (the .public class_name
     (-> (Descriptor Object)
@@ -148,6 +148,6 @@
                            (|> (text.size repr)
                                (n.- prefix_size)
                                (n.- suffix_size)))
-                (of maybe.monad each ///name.internal)
+                (by maybe.monad each ///name.internal)
                 maybe.trusted))))))
   )
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/type/projection.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/projection.lux
index f3e72bf352..232aeed31a 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/type/projection.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/projection.lux
@@ -75,7 +75,7 @@
 (template.with [    ]
   [(the .public 
      (Projection )
-     (of <>.functor each 
+     (by <>.functor each 
          (.slice (.and! (.one_of! )
                                     (.some! (.one_of! ))))))]
 
@@ -137,7 +137,7 @@
   (-> (Projection //.Parameter)
       (Projection //.Class))
   (|>> ..class''
-       (of <>.monad each (product.uncurried //.class))))
+       (by <>.monad each (product.uncurried //.class))))
 
 (the .public array'
   (-> (Projection //.Value)
diff --git a/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux
index ad81fb494d..dfb3b39644 100644
--- a/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux
@@ -50,7 +50,7 @@
        ..equivalence)
      (the hash
        (|>> nominal.representation
-            (of text.hash hash)))))
+            (by text.hash hash)))))
 
   (template.with [  ]
     [(the .public 
@@ -91,7 +91,7 @@
                          element'
                          
                          (,, (template.with [ ]
-                               [(of ..equivalence =  element)
+                               [(by ..equivalence =  element)
                                 (//descriptor.descriptor )]
 
                                [..boolean //descriptor.boolean]
diff --git a/stdlib/source/library/lux/meta/compiler/target/lua.lux b/stdlib/source/library/lux/meta/compiler/target/lua.lux
index 8be9e6ed29..0767204e42 100644
--- a/stdlib/source/library/lux/meta/compiler/target/lua.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/lua.lux
@@ -53,14 +53,14 @@
       (Equivalence (Code brand)))
     (implementation
      (the (= expected actual)
-       (of text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
+       (by text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
 
   (the .public hash
     (for_any (_ brand)
       (Hash (Code brand)))
     (implementation
      (the equivalence ..equivalence)
-     (the hash (|>> nominal.representation (of text.hash hash)))))
+     (the hash (|>> nominal.representation (by text.hash hash)))))
 
   (the .public manual
     (-> Text
@@ -111,7 +111,7 @@
         Literal)
     ... Integers must be turned into hexadecimal to avoid quirks in how Lua parses integers.
     ... In particular, the number -9223372036854775808 will be incorrectly parsed as a float by Lua.
-    (.let [to_hex (of n.hex injection)]
+    (.let [to_hex (by n.hex injection)]
       (|>> .natural
            to_hex
            (%.message "0x")
diff --git a/stdlib/source/library/lux/meta/compiler/target/php.lux b/stdlib/source/library/lux/meta/compiler/target/php.lux
index 73d3dee5e6..02f650f22e 100644
--- a/stdlib/source/library/lux/meta/compiler/target/php.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/php.lux
@@ -63,14 +63,14 @@
       (Equivalence (Code brand)))
     (implementation
      (the (= expected actual)
-       (of text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
+       (by text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
 
   (the .public hash
     (for_any (_ brand)
       (Hash (Code brand)))
     (implementation
      (the equivalence ..equivalence)
-     (the hash (|>> nominal.representation (of text.hash hash)))))
+     (the hash (|>> nominal.representation (by text.hash hash)))))
 
   (the .public manual
     (-> Text
@@ -161,7 +161,7 @@
   (the .public int
     (-> Integer
         Literal)
-    (.let [to_hex (of n.hex injection)]
+    (.let [to_hex (by n.hex injection)]
       (|>> .natural
            to_hex
            (%.message "0x")
diff --git a/stdlib/source/library/lux/meta/compiler/target/python.lux b/stdlib/source/library/lux/meta/compiler/target/python.lux
index 4a12833b25..a6cdba1b6a 100644
--- a/stdlib/source/library/lux/meta/compiler/target/python.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/python.lux
@@ -58,14 +58,14 @@
       (Equivalence (Code brand)))
     (implementation
      (the (= expected actual)
-       (of text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
+       (by text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
 
   (the .public hash
     (for_any (_ brand)
       (Hash (Code brand)))
     (implementation
      (the equivalence ..equivalence)
-     (the hash (|>> nominal.representation (of text.hash hash)))))
+     (the hash (|>> nominal.representation (by text.hash hash)))))
 
   (the .public manual
     (-> Text
diff --git a/stdlib/source/library/lux/meta/compiler/target/ruby.lux b/stdlib/source/library/lux/meta/compiler/target/ruby.lux
index b928a828c8..50c3d91da6 100644
--- a/stdlib/source/library/lux/meta/compiler/target/ruby.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/ruby.lux
@@ -53,7 +53,7 @@
       (Equivalence (Code brand)))
     (implementation
      (the (= expected actual)
-       (of text.equivalence =
+       (by text.equivalence =
            (nominal.representation expected)
            (nominal.representation actual)))))
 
diff --git a/stdlib/source/library/lux/meta/compiler/target/scheme.lux b/stdlib/source/library/lux/meta/compiler/target/scheme.lux
index c630d82261..575b0689c1 100644
--- a/stdlib/source/library/lux/meta/compiler/target/scheme.lux
+++ b/stdlib/source/library/lux/meta/compiler/target/scheme.lux
@@ -43,14 +43,14 @@
       (Equivalence (Code brand)))
     (implementation
      (the (= expected actual)
-       (of text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
+       (by text.equivalence = (nominal.representation expected) (nominal.representation actual)))))
 
   (the .public hash
     (for_any (_ brand)
       (Hash (Code brand)))
     (implementation
      (the equivalence ..equivalence)
-     (the hash (|>> nominal.representation (of text.hash hash)))))
+     (the hash (|>> nominal.representation (by text.hash hash)))))
 
   (template.with [  +]
     [(nominal.every .public ( brand) Any)
diff --git a/stdlib/source/library/lux/meta/compiler/version.lux b/stdlib/source/library/lux/meta/compiler/version.lux
index 4d90f1687d..d5cc1f67e2 100644
--- a/stdlib/source/library/lux/meta/compiler/version.lux
+++ b/stdlib/source/library/lux/meta/compiler/version.lux
@@ -43,7 +43,7 @@
 
 (the .public (injection version)
   (text.Injection Version)
-  (let [segment (of (n.padded 2 n.base_10) injection)]
+  (let [segment (by (n.padded 2 n.base_10) injection)]
     (%.message (%.natural (..major version))
                ..separator
                (segment (..minor version))
diff --git a/stdlib/source/library/lux/meta/extension.lux b/stdlib/source/library/lux/meta/extension.lux
index f70b5208dc..c13c239bef 100644
--- a/stdlib/source/library/lux/meta/extension.lux
+++ b/stdlib/source/library/lux/meta/extension.lux
@@ -71,7 +71,7 @@
                                       (monad.do <>.monad
                                         [(,* inputs)
                                          (, g!_) ]
-                                        (.of <>.monad (,' in) (, body)))
+                                        (.by <>.monad (,' in) (, body)))
                                       (, g!inputs))
                                 {.#Right (, g!_)}
                                 (, g!_)
diff --git a/stdlib/source/library/lux/meta/macro.lux b/stdlib/source/library/lux/meta/macro.lux
index 83db26bb82..50ab673a91 100644
--- a/stdlib/source/library/lux/meta/macro.lux
+++ b/stdlib/source/library/lux/meta/macro.lux
@@ -25,7 +25,7 @@
   (do //.monad
     [id //.seed]
     (in (|> id
-            (of natural.base_10 injection)
+            (by natural.base_10 injection)
             (all text#composite "__gensym__" prefix)
             [""] code.symbol))))
 
@@ -34,7 +34,7 @@
       (Meta Text))
   (when ast
     [_ {.#Symbol ["" name]}]
-    (of //.monad in name)
+    (by //.monad in name)
 
     _
     (//.failure (text#composite "Code is not a local symbol: " (code.absolute ast)))))
@@ -65,13 +65,13 @@
                     before terms])
         (when times
           0
-          (of //.monad in before)
+          (by //.monad in before)
 
           _
           (do [! //.monad]
             [after (|> before
                        (monad.each ! /expansion.single)
-                       (of ! each list#conjoint))]
+                       (by ! each list#conjoint))]
             (again (-- times) after))))
 
       _
@@ -82,7 +82,7 @@
     (let [! //.monad]
       (|> it
           (monad.each ! /expansion.complete)
-          (of ! each list#conjoint)))))
+          (by ! each list#conjoint)))))
 
 (the .public function
   (-> Macro
diff --git a/stdlib/source/library/lux/meta/macro/context.lux b/stdlib/source/library/lux/meta/macro/context.lux
index 83db5a9259..eed40ef5d4 100644
--- a/stdlib/source/library/lux/meta/macro/context.lux
+++ b/stdlib/source/library/lux/meta/macro/context.lux
@@ -86,7 +86,7 @@
       (meta.failure (exception.error ..no_active_context [])))))
 
 (.the .public peek
-  (syntax.macro (_ [g!it (of ?.monad each code.symbol ?code.global)])
+  (syntax.macro (_ [g!it (by ?.monad each code.symbol ?code.global)])
     (in (list (` (..peek' [(, g!it) (.symbol (, g!it))]))))))
 
 (.the .public (search' ? [_ context])
@@ -106,7 +106,7 @@
 
 (.the .public search
   (syntax.macro (_ [g!? ?code.any
-                    g!context (of ?.monad each code.symbol ?code.global)])
+                    g!context (by ?.monad each code.symbol ?code.global)])
     (in (list (` (..search' (, g!?) [(, g!context) (.symbol (, g!context))]))))))
 
 (.the (alter on_definition [_ definition])
@@ -169,7 +169,7 @@
 
 (.the .public push
   (syntax.macro (_ [g!it ?code.any
-                    g!context (of ?.monad each code.symbol ?code.global)])
+                    g!context (by ?.monad each code.symbol ?code.global)])
     (in (list (` (..push' (, g!it) [(, g!context) (.symbol (, g!context))]))))))
 
 (.the .public (revised' ? !)
@@ -213,7 +213,7 @@
 (.the .public revised
   (syntax.macro (_ [g!predicate ?code.any
                     g!revision ?code.any
-                    g!context (of ?.monad each code.symbol ?code.global)])
+                    g!context (by ?.monad each code.symbol ?code.global)])
     (in (list (` (..revised' (, g!predicate)
                              (, g!revision)
                              [(, g!context) (.symbol (, g!context))]))))))
@@ -240,12 +240,12 @@
             (list))))))
 
 (.the .public pop
-  (syntax.macro (_ [g!context (of ?.monad each code.symbol ?code.global)])
+  (syntax.macro (_ [g!context (by ?.monad each code.symbol ?code.global)])
     (in (list (` (..pop'' [(, g!context) (.symbol (, g!context))]))))))
 
 (.the .public def
   (syntax.macro (_ [.let [! ?.monad
-                          ?local (of ! each code.local ?code.local)]
+                          ?local (by ! each code.local ?code.local)]
 
                     [export_$? $] (?code.tuple (export.with ?code.local))
                     [export_expression? g!expression] (?code.tuple (export.with ?local))
diff --git a/stdlib/source/library/lux/meta/macro/expansion.lux b/stdlib/source/library/lux/meta/macro/expansion.lux
index 4699f4357a..c170e9a9b2 100644
--- a/stdlib/source/library/lux/meta/macro/expansion.lux
+++ b/stdlib/source/library/lux/meta/macro/expansion.lux
@@ -32,10 +32,10 @@
         ((as Macro' macro) args)
         
         {try.#Failure _}
-        (of ///.monad in (list syntax))))
+        (by ///.monad in (list syntax))))
 
     _
-    (of ///.monad in (list syntax))))
+    (by ///.monad in (list syntax))))
 
 (the .public (complete syntax)
   (-> Code
@@ -50,13 +50,13 @@
           [top_level_complete ((as Macro' macro) args)]
           (|> top_level_complete
               (monad.each ///.monad complete)
-              (of ! each list#conjoint)))
+              (by ! each list#conjoint)))
         
         {try.#Failure _}
-        (of ///.monad in (list syntax))))
+        (by ///.monad in (list syntax))))
 
     _
-    (of ///.monad in (list syntax))))
+    (by ///.monad in (list syntax))))
 
 (the .public (total syntax)
   (-> Code
@@ -94,7 +94,7 @@
       (in (list (code.tuple (list#conjoint members')))))
 
     _
-    (of ///.monad in (list syntax))))
+    (by ///.monad in (list syntax))))
 
 (the .public cannot_expand_to_more_than_1
   Error
diff --git a/stdlib/source/library/lux/meta/macro/local.lux b/stdlib/source/library/lux/meta/macro/local.lux
index 3abb94f7cd..b3e9abfd96 100644
--- a/stdlib/source/library/lux/meta/macro/local.lux
+++ b/stdlib/source/library/lux/meta/macro/local.lux
@@ -151,7 +151,7 @@
        locals (monad.each ! (function (_ [name value])
                               (|> value
                                   (meta.eval .Macro)
-                                  (of ! each (|>> (as .Macro)
+                                  (by ! each (|>> (as .Macro)
                                                   [[here name]]))))
                           locals)
        expression? (is (Meta Bit)
diff --git a/stdlib/source/library/lux/meta/macro/pattern.lux b/stdlib/source/library/lux/meta/macro/pattern.lux
index 7d2de22ea0..df027c16fb 100644
--- a/stdlib/source/library/lux/meta/macro/pattern.lux
+++ b/stdlib/source/library/lux/meta/macro/pattern.lux
@@ -243,7 +243,7 @@
    (macro (_ tokens)
      (when tokens
        {.#Item it {.#End}}
-       (of ///.monad in (list it))
+       (by ///.monad in (list it))
 
        _
        (///.failure .wrong_syntax)))))
@@ -314,7 +314,7 @@
    (macro (_ tokens)
      (when tokens
        {.#Item it {.#End}}
-       (of ///.monad in (list it))
+       (by ///.monad in (list it))
 
        _
        (///.failure .wrong_syntax)))))
diff --git a/stdlib/source/library/lux/meta/macro/syntax.lux b/stdlib/source/library/lux/meta/macro/syntax.lux
index cd939d6024..24538b3d2b 100644
--- a/stdlib/source/library/lux/meta/macro/syntax.lux
+++ b/stdlib/source/library/lux/meta/macro/syntax.lux
@@ -100,7 +100,7 @@
                                  (is (.Projection (Meta (List Code)))
                                      (do <>.monad
                                        [(,* (..un_paired vars+projections))]
-                                       (.of <>.monad (,' in)
+                                       (.by <>.monad (,' in)
                                             (is (Meta (List Code))
                                                 (, body)))))
                                  (, g!tokens))
diff --git a/stdlib/source/library/lux/meta/macro/template.lux b/stdlib/source/library/lux/meta/macro/template.lux
index a5e1d6ddc4..01d52917f7 100644
--- a/stdlib/source/library/lux/meta/macro/template.lux
+++ b/stdlib/source/library/lux/meta/macro/template.lux
@@ -143,8 +143,8 @@
 (exception.the .public (irregular_arguments [expected actual])
   (Exception [Natural Natural])
   (exception.report
-   (list ["Expected" (of natural.base_10 injection expected)]
-         ["Actual" (of natural.base_10 injection actual)])))
+   (list ["Expected" (by natural.base_10 injection expected)]
+         ["Actual" (by natural.base_10 injection actual)])))
 
 (the (as_macro (open "_[0]"))
   (-> Local Macro)
diff --git a/stdlib/source/library/lux/meta/macro/vocabulary.lux b/stdlib/source/library/lux/meta/macro/vocabulary.lux
index aefd2ffbd1..c72e2a785a 100644
--- a/stdlib/source/library/lux/meta/macro/vocabulary.lux
+++ b/stdlib/source/library/lux/meta/macro/vocabulary.lux
@@ -51,6 +51,6 @@
                      (-> Symbol (Meta Macro))
                      (do ///.monad
                        [[(, g!type) (, g!value)] (binding.export (, g!_))]
-                       (if (of type.equivalence (,' =) (, type) (, g!type))
+                       (if (by type.equivalence (,' =) (, type) (, g!type))
                          ((,' in) ((, macro) (as (, type) (, g!value))))
                          (///.failure (exception.error ..invalid_type [(, type) (, g!type)])))))))))))
diff --git a/stdlib/source/library/lux/meta/static.lux b/stdlib/source/library/lux/meta/static.lux
index fbb6cae549..00b04e7181 100644
--- a/stdlib/source/library/lux/meta/static.lux
+++ b/stdlib/source/library/lux/meta/static.lux
@@ -25,7 +25,7 @@
 (template.with [  ]
   [(the .public 
      (syntax.macro (_ [expression .any])
-       (of meta.monad each
+       (by meta.monad each
            (|>> (as )  list)
            (meta.eval  expression))))]
 
diff --git a/stdlib/source/library/lux/meta/symbol.lux b/stdlib/source/library/lux/meta/symbol.lux
index cf2146a207..fe3504222c 100644
--- a/stdlib/source/library/lux/meta/symbol.lux
+++ b/stdlib/source/library/lux/meta/symbol.lux
@@ -3,7 +3,7 @@
 
 (.using
  [library
-  [lux (.except of)
+  [lux (.except)
    [abstract
     [equivalence (.only Equivalence)]
     [hash (.only Hash)]
@@ -34,7 +34,7 @@
 
 (the .public equivalence
   (Equivalence Symbol)
-  (.of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
@@ -45,8 +45,8 @@
    (the equivalence ..equivalence)
    (the (< [moduleP shortP] [moduleS shortS])
      (if (text.= moduleP moduleS)
-       (.of text.order < shortP shortS)
-       (.of text.order < moduleP moduleS)))))
+       (by text.order < shortP shortS)
+       (by text.order < moduleP moduleS)))))
 
 (order.definitions [] Symbol ..order)
 
@@ -132,4 +132,4 @@
 
 (the .public as_text
   (text.Injection Symbol)
-  (.of ..absolute injection))
+  (by ..absolute injection))
diff --git a/stdlib/source/library/lux/meta/type.lux b/stdlib/source/library/lux/meta/type.lux
index 12af1fac89..1166704ec8 100644
--- a/stdlib/source/library/lux/meta/type.lux
+++ b/stdlib/source/library/lux/meta/type.lux
@@ -149,7 +149,7 @@
               [.#Existential "Ex"]))
 
         {.#Named name type}
-        (of symbol_format injection name)
+        (by symbol_format injection name)
         )))
 
 (the .public absolute_injection
@@ -411,7 +411,7 @@
 
         {.#Apply A F}
         (|> (..applied (list A) F)
-            (of maybe.monad each quantified?)
+            (by maybe.monad each quantified?)
             (maybe.else false))
 
         (,, (with_template' []
@@ -474,13 +474,13 @@
          valueT (binding.type valueN)
          .let [[@ _ _] location
                _ (.log!# (all text#composite
-                              (of symbol.absolute injection (symbol ..log!)) " " (location.as_text location) text.new_line
+                              (by symbol.absolute injection (symbol ..log!)) " " (location.as_text location) text.new_line
                               "Expression: " (when valueC
                                                {.#Some valueC}
                                                (code.absolute valueC)
                                                
                                                {.#None}
-                                               (of symbol.absolute injection valueN))
+                                               (by symbol.absolute injection valueN))
                               text.new_line
                               "      Type: " (..relative_injection @ valueT)))]]
         (in (list (code.symbol valueN))))
@@ -555,7 +555,7 @@
       (-> Type Type Type
           Type)
       (.function (again it)
-        (if (of ..equivalence = before it)
+        (if (by ..equivalence = before it)
           after
           (when it
             {.#Nominal name co_variant}
diff --git a/stdlib/source/library/lux/meta/type/check.lux b/stdlib/source/library/lux/meta/type/check.lux
index 5b47f4c5db..77f63a10fe 100644
--- a/stdlib/source/library/lux/meta/type/check.lux
+++ b/stdlib/source/library/lux/meta/type/check.lux
@@ -370,7 +370,7 @@
 (the (hypothesized? expected hypotheses)
   (-> Hypothesis (List Hypothesis)
       Bit)
-  (list.any? (of ..hypothesis_equivalence = expected) hypotheses))
+  (list.any? (by ..hypothesis_equivalence = expected) hypotheses))
 
 ... TODO: "if_can_bind" can be optimized...
 (the (if_can_bind id type then else)
@@ -448,7 +448,7 @@
               (do !
                 [ringE (..ring idE)
                  ringA (..ring idA)]
-                (if (of set.equivalence = (set.of_list n.hash ringE) (set.of_list n.hash ringA))
+                (if (by set.equivalence = (set.of_list n.hash ringE) (set.of_list n.hash ringA))
                   (in hypotheses)
                   ... Fuse 2 rings
                   (do !
diff --git a/stdlib/source/library/lux/meta/type/dynamic.lux b/stdlib/source/library/lux/meta/type/dynamic.lux
index b1492863d7..188e839d12 100644
--- a/stdlib/source/library/lux/meta/type/dynamic.lux
+++ b/stdlib/source/library/lux/meta/type/dynamic.lux
@@ -44,7 +44,7 @@
                                                            (is Dynamic)
                                                            (as ))]
                          (.is (try.Try (, type))
-                              (.if (.of //.equivalence (,' =)
+                              (.if (.by //.equivalence (,' =)
                                         (.type (, type))
                                         (, g!type))
                                 {try.#Success (.as (, type) (, g!value))}
diff --git a/stdlib/source/library/lux/meta/type/function.lux b/stdlib/source/library/lux/meta/type/function.lux
index 792201a08c..8d524d204f 100644
--- a/stdlib/source/library/lux/meta/type/function.lux
+++ b/stdlib/source/library/lux/meta/type/function.lux
@@ -30,7 +30,7 @@
   (do [! meta.monad]
     [[it _] (binding.export it)
      parameters (monad.each ! (|>> (meta.eval Type)
-                                   (of ! each (|>> (.as Type))))
+                                   (by ! each (|>> (.as Type))))
                             parameters)
      it (when (//.applied parameters it)
           {.#Some it}
diff --git a/stdlib/source/library/lux/meta/type/implicit.lux b/stdlib/source/library/lux/meta/type/implicit.lux
index ec2ed219ed..12e628fc4e 100644
--- a/stdlib/source/library/lux/meta/type/implicit.lux
+++ b/stdlib/source/library/lux/meta/type/implicit.lux
@@ -48,7 +48,7 @@
       (type_var id' env)
 
       _
-      (of meta.monad in type))
+      (by meta.monad in type))
 
     {try.#Success [_ {.#None}]}
     (meta.failure (%.message "Unbound type-var " (%.natural id)))
@@ -87,12 +87,12 @@
 
     {.#Product left right}
     (if (n.= 0 idx)
-      (of check.monad in left)
+      (by check.monad in left)
       (member_type (-- idx) right))
 
     _
     (if (n.= 0 idx)
-      (of check.monad in sig_type)
+      (by check.monad in sig_type)
       (check.failure (%.message "Cannot find member type " (%.natural idx) " for " (//.as_text sig_type))))))
 
 (the (member_name member)
@@ -122,7 +122,7 @@
                      (meta.failure (%.message "Too many candidate slots: " (%.list symbol.as_text candidates))))))
 
     _
-    (of meta.monad in member)))
+    (by meta.monad in member)))
 
 (the (implicit_member member)
   (-> Symbol
@@ -242,7 +242,7 @@
            final_output]))
     
     _
-    (of check.monad in [(list) type])))
+    (by check.monad in [(list) type])))
 
 (the (ensure_function_application! member_type input_types expected_output)
   (-> Type (List Type) Type
@@ -302,7 +302,7 @@
       (check.failure (%.message "No candidates for provisioning: " (//.as_text dep)))
 
       {.#Item winner {.#End}}
-      (of check.monad in winner)
+      (by check.monad in winner)
 
       _
       (check.failure (%.message "Too many candidates for provisioning: " (//.as_text dep) " --- " (%.list (|>> product.left symbol.as_text) candidates))))
@@ -389,7 +389,7 @@
           (meta.failure (%.message "No implementation could be found for member: " (symbol.as_text member)))
 
           {.#Item chosen {.#End}}
-          (in (list (` (.of (, (instance$ chosen))
+          (in (list (` (.by (, (instance$ chosen))
                             (, (code.local (product.right member)))
                             (,* (list#each code.symbol args))))))
 
diff --git a/stdlib/source/library/lux/meta/type/linear.lux b/stdlib/source/library/lux/meta/type/linear.lux
index 9ce7b7f4b4..c6890bb760 100644
--- a/stdlib/source/library/lux/meta/type/linear.lux
+++ b/stdlib/source/library/lux/meta/type/linear.lux
@@ -51,7 +51,7 @@
   (implementation
    (the (in value)
      (function (_ keys)
-       (of monad in [keys value])))
+       (by monad in [keys value])))
 
    (the (then f input)
      (function (_ keysI)
@@ -94,7 +94,7 @@
     [(the .public ( monad value)
        (for_any (_ ! v) (for_some (_ k) (-> (Monad !) v (Affine ! (Key  k) (Res k v)))))
        (function (_ keys)
-         (of monad in [[( []) keys] (nominal.abstraction value)])))]
+         (by monad in [[( []) keys] (nominal.abstraction value)])))]
 
     [ordered     Ordered     ..ordered_key]
     [commutative Commutative ..commutative_key]
@@ -104,7 +104,7 @@
     (for_any (_ ! v k m)
       (-> (Monad !) (Res k v) (Relevant ! (Key m k) v)))
     (function (_ [key keys])
-      (of  monad in [keys (nominal.representation resource)])))
+      (by  monad in [keys (nominal.representation resource)])))
   )
 
 (exception.the .public (index_cannot_be_repeated index)
@@ -131,7 +131,7 @@
 (the (no_op monad)
   (for_any (_ m) (-> (Monad m) (Linear m Any)))
   (function (_ context)
-    (of monad in [context []])))
+    (by monad in [context []])))
 
 (the .public exchange
   (syntax.macro (_ [swaps ..indices])
@@ -162,7 +162,7 @@
                                             [(,* g!outputsT+) (, g!context)]
                                             .Any)))
                            (function ((, g!_) (, g!!) [(,* g!inputs) (, g!context)])
-                             (of (, g!!) (,' in) [[(,* g!outputs) (, g!context)] []])))))))))))
+                             (by (, g!!) (,' in) [[(,* g!outputs) (, g!context)] []])))))))))))
 
 (the amount
   (Projection Natural)
@@ -187,7 +187,7 @@
                                              [ (, g!context)]
                                              .Any)))
                             (function ((, g!_) (, g!!) [ (, g!context)])
-                              (of (, g!!) (,' in) [[ (, g!context)] []]))))))))))]
+                              (by (, g!!) (,' in) [[ (, g!context)] []]))))))))))]
 
   [group    (,* g!keys)   [(,* g!keys)]]
   [un_group [(,* g!keys)] (,* g!keys)]
diff --git a/stdlib/source/library/lux/meta/type/nominal.lux b/stdlib/source/library/lux/meta/type/nominal.lux
index 2567c7cdf1..82e32c3c30 100644
--- a/stdlib/source/library/lux/meta/type/nominal.lux
+++ b/stdlib/source/library/lux/meta/type/nominal.lux
@@ -75,7 +75,7 @@
 (.the declarationP
   (Projection [Text (List Text)])
   (<>.either (.form (<>.and .local (<>.some .local)))
-             (<>.and .local (of <>.monad in (list)))))
+             (<>.and .local (by <>.monad in (list)))))
 
 (.the abstract
   (Projection [Code [Text (List Text)] Code (List Code)])
diff --git a/stdlib/source/library/lux/meta/type/quotient.lux b/stdlib/source/library/lux/meta/type/quotient.lux
index 16f4860e8c..10d5a35c94 100644
--- a/stdlib/source/library/lux/meta/type/quotient.lux
+++ b/stdlib/source/library/lux/meta/type/quotient.lux
@@ -80,6 +80,6 @@
         (Equivalence (..Quotient super sub %))))
   (implementation
    (the (= expected actual)
-     (of super =
+     (by super =
          (..label expected)
          (..label actual)))))
diff --git a/stdlib/source/library/lux/meta/type/record.lux b/stdlib/source/library/lux/meta/type/record.lux
index 5e0f5a5fc7..07262ac7dd 100644
--- a/stdlib/source/library/lux/meta/type/record.lux
+++ b/stdlib/source/library/lux/meta/type/record.lux
@@ -40,7 +40,7 @@
        label (meta.or (label.tag full_label)
                       (label.slot full_label))
        parameters (monad.each ! (|>> (meta.eval Type)
-                                     (of ! each (|>> (.as Type))))
+                                     (by ! each (|>> (.as Type))))
                               parameters)
        .let [[flat context it] (when label
                                  {.#Left [context it]}
@@ -74,7 +74,7 @@
 
               {try.#Failure _}
               (meta.failure (all text#composite "Invalid label "
-                                 (of (symbol.relative here) injection full_label)
+                                 (by (symbol.relative here) injection full_label)
                                  " for type "
                                  (//.relative_injection here it)))))]
       (in (list (//.code it))))))
@@ -99,11 +99,11 @@
     [head (label.slot head)
      tail (monad.each ! label.slot tail)
      .let [general_type (product.right head)]
-     _ (if (list.every? (|>> product.right (of //.equivalence = general_type)) tail)
+     _ (if (list.every? (|>> product.right (by //.equivalence = general_type)) tail)
          (in [])
          (meta.failure ..slots_belong_to_different_types))
      parameters (monad.each ! (|>> (meta.eval Type)
-                                   (of ! each (|>> (.as Type))))
+                                   (by ! each (|>> (.as Type))))
                             parameters)
      it (when (//.applied parameters general_type)
           {.#Some it}
diff --git a/stdlib/source/library/lux/meta/type/row.lux b/stdlib/source/library/lux/meta/type/row.lux
index ea74951984..ca0ba71936 100644
--- a/stdlib/source/library/lux/meta/type/row.lux
+++ b/stdlib/source/library/lux/meta/type/row.lux
@@ -147,7 +147,7 @@
                                              (` (the (, export_policy) (, (code.local row_slot))
                                                   (..slot
                                                    (syntax.macro ((, g!_) [])
-                                                     (of meta.monad (,' in)
+                                                     (by meta.monad (,' in)
                                                          (list (,* (list.repeated (|> :super:
                                                                                       (maybe#each nesting)
                                                                                       (maybe.else 0))
diff --git a/stdlib/source/library/lux/meta/type/unit/scale.lux b/stdlib/source/library/lux/meta/type/unit/scale.lux
index 0548cb8e39..8b7e71b403 100644
--- a/stdlib/source/library/lux/meta/type/unit/scale.lux
+++ b/stdlib/source/library/lux/meta/type/unit/scale.lux
@@ -49,8 +49,8 @@
   (for_any (_ si so u)
     (-> (Scale si) (Scale so) (//.Measure si u)
         (//.Measure so u)))
-  (let [(open "/[0]") (fraction./ (of from fraction)
-                                  (of to fraction))]
+  (let [(open "/[0]") (fraction./ (by from fraction)
+                                  (by to fraction))]
     (|> measure
         //.number
         (i.* (.integer /#numerator))
diff --git a/stdlib/source/library/lux/music/scale.lux b/stdlib/source/library/lux/music/scale.lux
index a6b908e726..2105e29807 100644
--- a/stdlib/source/library/lux/music/scale.lux
+++ b/stdlib/source/library/lux/music/scale.lux
@@ -87,7 +87,7 @@
      (the hash
        (|>> nominal.representation
             (array.list {.#None})
-            (of (list.hash n.hash) hash)))))
+            (by (list.hash n.hash) hash)))))
   )
 
 (template.with [ ]
diff --git a/stdlib/source/library/lux/test/benchmark.lux b/stdlib/source/library/lux/test/benchmark.lux
index 9d3e5761b0..a686d96909 100644
--- a/stdlib/source/library/lux/test/benchmark.lux
+++ b/stdlib/source/library/lux/test/benchmark.lux
@@ -40,7 +40,7 @@
   duration.empty)
 
 (the maximum_duration
-  (duration.of_millis (of integer.interval top)))
+  (duration.of_millis (by integer.interval top)))
 
 (the empty
   Benchmark
diff --git a/stdlib/source/library/lux/test/coverage.lux b/stdlib/source/library/lux/test/coverage.lux
index 4230504e54..968e4719d6 100644
--- a/stdlib/source/library/lux/test/coverage.lux
+++ b/stdlib/source/library/lux/test/coverage.lux
@@ -3,7 +3,7 @@
 
 (.using
  [library
-  [lux (.except of)
+  [lux (.except)
    [abstract
     [monad (.only do)]]
    [data
diff --git a/stdlib/source/library/lux/test/property.lux b/stdlib/source/library/lux/test/property.lux
index dd06656fc6..a886366019 100644
--- a/stdlib/source/library/lux/test/property.lux
+++ b/stdlib/source/library/lux/test/property.lux
@@ -163,7 +163,7 @@
                                    (its tally.#actual tally))
         report (is (-> Coverage Text)
                    (|>> set.list
-                        (list.sorted (of symbol.order <))
+                        (list.sorted (by symbol.order <))
                         (exception.listing symbol.as_text)))
         expected_coverage (set.size (its tally.#expected tally))
         unexpected_coverage (set.size unexpected)
@@ -234,7 +234,7 @@
                      {.#Some console}
                      (console.write_line report console))
                ))]
-    (async.future (of environment.default exit
+    (async.future (by environment.default exit
                       (when (its tally.#failures tally)
                         0 ..success_exit_code
                         _ ..failure_exit_code)))))
@@ -242,12 +242,12 @@
 (the .public coverage
   (syntax.macro (_ [coverage .any
                     condition .any])
-    (in (list (` (of random.monad (,' in) (//.coverage (, coverage) (, condition))))))))
+    (in (list (` (by random.monad (,' in) (//.coverage (, coverage) (, condition))))))))
 
 (the .public for
   (syntax.macro (_ [coverage .any
                     test .any])
-    (in (list (` (of random.functor
+    (in (list (` (by random.functor
                      (,' each)
                      (|>> (//.for (, coverage)))
                      (, test)))))))
@@ -255,7 +255,7 @@
 (the .public covering
   (syntax.macro (_ [module .any
                     test .any])
-    (in (list (` (of random.functor
+    (in (list (` (by random.functor
                      (,' each)
                      (|>> (//.covering (, module)))
                      (, test)))))))
diff --git a/stdlib/source/library/lux/web/css.lux b/stdlib/source/library/lux/web/css.lux
index 9bafdcfaad..aad44c4a8b 100644
--- a/stdlib/source/library/lux/web/css.lux
+++ b/stdlib/source/library/lux/web/css.lux
@@ -65,8 +65,8 @@
     (-> Font (CSS Special))
     (let [with_unicode (when (its /font.#unicode_range font)
                          {.#Some unicode_range}
-                         (let [unicode_range' (%.message "U+" (of natural.hex injection (its /font.#start unicode_range))
-                                                         "-" (of natural.hex injection (its /font.#end unicode_range)))]
+                         (let [unicode_range' (%.message "U+" (by natural.hex injection (its /font.#start unicode_range))
+                                                         "-" (by natural.hex injection (its /font.#end unicode_range)))]
                            (list ["unicode-range" unicode_range']))
                          
                          {.#None}
diff --git a/stdlib/source/library/lux/web/css/value.lux b/stdlib/source/library/lux/web/css/value.lux
index f633da547b..0843d67856 100644
--- a/stdlib/source/library/lux/web/css/value.lux
+++ b/stdlib/source/library/lux/web/css/value.lux
@@ -849,7 +849,7 @@
       (..apply "rgba" (list (%.natural (rgb.red /#color))
                             (%.natural (rgb.green /#color))
                             (%.natural (rgb.blue /#color))
-                            (if (r.= (of r.interval top) /#alpha)
+                            (if (r.= (by r.interval top) /#alpha)
                               "1.0"
                               (%.message "0" (%.revolution /#alpha)))))))
 
diff --git a/stdlib/source/library/lux/web/html.lux b/stdlib/source/library/lux/web/html.lux
index 822723b2f8..9ae963854e 100644
--- a/stdlib/source/library/lux/web/html.lux
+++ b/stdlib/source/library/lux/web/html.lux
@@ -250,7 +250,7 @@
     (-> Attributes XML
         Element)
     (|> content
-        (of xml.format injection)
+        (by xml.format injection)
         (..raw tag.svg attributes)))
 
   (every .public Coord
diff --git a/stdlib/source/library/lux/world/console.lux b/stdlib/source/library/lux/world/console.lux
index 88e713487e..9379045965 100644
--- a/stdlib/source/library/lux/world/console.lux
+++ b/stdlib/source/library/lux/world/console.lux
@@ -40,7 +40,7 @@
   (`` (implementation
        (,, (template.with []
              [(the 
-                (|>> (of console ) async.future))]
+                (|>> (by console ) async.future))]
 
              [read]
              [read_line]
@@ -91,7 +91,7 @@
                               (the (read _)
                                 (|> jvm_input
                                     (java/io/InputStream::read [])
-                                    (of (try.with io.monad) each (|>> ffi.of_int .natural))))
+                                    (by (try.with io.monad) each (|>> ffi.of_int .natural))))
                               
                               (the (read_line _)
                                 (io#each (try#each (|>> ffi.of_string))
@@ -173,7 +173,7 @@
 
 (the .public (write_line message console)
   (for_any (_ !) (-> Text (Console !) (! (Try Any))))
-  (of console write (%.message message text.new_line)))
+  (by console write (%.message message text.new_line)))
 
 (every .public (Mock s)
   (Interface
@@ -196,7 +196,7 @@
                [(the ( _)
                   (do [! io.monad]
                     [|state| (atom.read! state)]
-                    (when (of mock  |state|)
+                    (when (by mock  |state|)
                       {try.#Success [|state| output]}
                       (do !
                         [_ (atom.write! |state| state)]
@@ -212,7 +212,7 @@
          (the (write input)
            (do [! io.monad]
              [|state| (atom.read! state)]
-             (when (of mock on_write input |state|)
+             (when (by mock on_write input |state|)
                {try.#Success |state|}
                (do !
                  [_ (atom.write! |state| state)]
@@ -224,7 +224,7 @@
          (the (close _)
            (do [! io.monad]
              [|state| (atom.read! state)]
-             (when (of mock on_close |state|)
+             (when (by mock on_close |state|)
                {try.#Success |state|}
                (do !
                  [_ (atom.write! |state| state)]
diff --git a/stdlib/source/library/lux/world/environment.lux b/stdlib/source/library/lux/world/environment.lux
index 19efbe5f5d..b1a693e215 100644
--- a/stdlib/source/library/lux/world/environment.lux
+++ b/stdlib/source/library/lux/world/environment.lux
@@ -59,9 +59,9 @@
 (the .public (environment monad environment)
   (for_any (_ !) (-> (Monad !) (Environment !) (! \\projection.Environment)))
   (do [! monad]
-    [variables (of environment available_variables [])
+    [variables (by environment available_variables [])
      entries (monad.each ! (function (_ name)
-                             (of ! each (|>> [name]) (of environment variable name)))
+                             (by ! each (|>> [name]) (by environment variable name)))
                          variables)]
     (in (|> entries
             (list.all (function (_ [name value])
@@ -78,7 +78,7 @@
       (implementation
        (,, (template.with []
              [(the 
-                (of environment ))]
+                (by environment ))]
 
              [home]
              [directory]
@@ -86,7 +86,7 @@
 
        (,, (template.with []
              [(the 
-                (|>> (of environment ) async.future))]
+                (|>> (by environment ) async.future))]
 
              [available_variables]
              [variable]
@@ -307,7 +307,7 @@
                        (list)))
           .python (do [! io.monad]
                     [it (os::environ)]
-                    (of ! each
+                    (by ! each
                         (array.list {.#None})
                         (os/environ::keys [] it)))
           ... Lua offers no way to get all the environment variables available.
diff --git a/stdlib/source/library/lux/world/file.lux b/stdlib/source/library/lux/world/file.lux
index a57fd4f5b4..b1034b9c07 100644
--- a/stdlib/source/library/lux/world/file.lux
+++ b/stdlib/source/library/lux/world/file.lux
@@ -89,7 +89,7 @@
   (for_any (_ !)
     (-> (System !) Path
         (Maybe [Path Text])))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (when (text.last_index / path)
       {.#None}
       {.#None}
@@ -122,11 +122,11 @@
       (System Async))
   (`` (implementation
        (the separator
-         (of fs separator))
+         (by fs separator))
 
        (,, (template.with []
              [(the 
-                (|>> (of fs )
+                (|>> (by fs )
                      async.future))]
 
              [file?]
@@ -144,7 +144,7 @@
 
        (,, (template.with []
              [(the ( path input)
-                (async.future (of fs  path input)))]
+                (async.future (by fs  path input)))]
 
              [modify]
              [write]
@@ -156,7 +156,7 @@
   (for_any (_ !)
     (-> (System !) Path Text
         Path))
-  (%.message parent (of fs separator) child))
+  (%.message parent (by fs separator) child))
 
 (template.with []
   [(exception.the .public ( file)
@@ -247,13 +247,13 @@
                                 (|> children
                                     (array.list {.#None})
                                     (monad.only ! (|>> ( [])
-                                                       (of ! each (|>> ffi.of_boolean))))
-                                    (of ! each (monad.each ! (|>> (java/io/File::getAbsolutePath [])
-                                                                  (of ! each (|>> ffi.of_string)))))
-                                    (of ! conjoint))
+                                                       (by ! each (|>> ffi.of_boolean))))
+                                    (by ! each (monad.each ! (|>> (java/io/File::getAbsolutePath [])
+                                                                  (by ! each (|>> ffi.of_string)))))
+                                    (by ! conjoint))
 
                                 {.#None}
-                                (of io.monad in (exception.except ..cannot_find_directory [path])))))]
+                                (by io.monad in (exception.except ..cannot_find_directory [path])))))]
 
                          [directory_files java/io/File::isFile]
                          [sub_directories java/io/File::isDirectory]
@@ -263,13 +263,13 @@
                      (|>> ffi.as_string
                           [] java/io/File::new
                           (java/io/File::length [])
-                          (of (try.with io.monad) each (|>> ffi.of_long .natural))))
+                          (by (try.with io.monad) each (|>> ffi.of_long .natural))))
 
                    (the last_modified
                      (|>> ffi.as_string
                           [] java/io/File::new
                           (java/io/File::lastModified [])
-                          (of (try.with io.monad) each (|>> ffi.of_long duration.of_millis instant.absolute))))
+                          (by (try.with io.monad) each (|>> ffi.of_long duration.of_millis instant.absolute))))
 
                    (the can_execute?
                      (|>> ffi.as_string
@@ -442,11 +442,11 @@
                                             (array.list {.#None})
                                             (list#each (|>> (%.message path js_separator)))
                                             (monad.each ! (function (_ sub)
-                                                            (of ! each (|>> ( []) [sub])
+                                                            (by ! each (|>> ( []) [sub])
                                                                 (with_async write! (Try Stats)
                                                                   (Fs::stat [sub (..value_callback write!)]
                                                                             node_fs)))))
-                                            (of ! each (|>> (list.only product.right)
+                                            (by ! each (|>> (list.only product.right)
                                                             (list#each product.left))))))]
 
                                    [directory_files Stats::isFile]
@@ -474,7 +474,7 @@
                                          instant.absolute))))
 
                              (the (can_execute? path)
-                               (of async.monad each
+                               (by async.monad each
                                    (|>> (pipe.when
                                           {try.#Success _}
                                           true
@@ -587,13 +587,13 @@
                               (|> path
                                   []
                                   os::listdir
-                                  (of ! each (|>> (array.list {.#None})
+                                  (by ! each (|>> (array.list {.#None})
                                                   (list#each (|>> (%.message path ..python_separator)))
                                                   (monad.each ! (function (_ sub)
-                                                                  (of ! each (|>> [sub]) ( [sub]))))
-                                                  (of ! each (|>> (list.only product.right)
+                                                                  (by ! each (|>> [sub]) ( [sub]))))
+                                                  (by ! each (|>> (list.only product.right)
                                                                   (list#each product.left)))))
-                                  (of ! conjoint))))]
+                                  (by ! conjoint))))]
 
                          [directory_files os/path::isfile]
                          [sub_directories os/path::isdir]
@@ -602,12 +602,12 @@
                    (the file_size
                      (|>> []
                           os/path::getsize
-                          (of (try.with io.monad) each (|>> .natural))))
+                          (by (try.with io.monad) each (|>> .natural))))
 
                    (the last_modified
                      (|>> []
                           os/path::getmtime
-                          (of (try.with io.monad) each (|>> d.integer
+                          (by (try.with io.monad) each (|>> d.integer
                                                             (i.* +1,000)
                                                             duration.of_millis
                                                             instant.absolute))))
@@ -743,7 +743,7 @@
                          [(the 
                             (let [! (try.with io.monad)]
                               (|>> [] RubyFile::stat
-                                   (of ! each (`` (|>> (,, (template.spliced ))))))))]
+                                   (by ! each (`` (|>> (,, (template.spliced ))))))))]
 
                          [file_size [Stat::size .natural]]
                          [last_modified [(Stat::mtime [])
@@ -847,7 +847,7 @@
      ...                        (do [! (try.with io.monad)]
      ...                          [outcome (..file_put_contents [path ("php pack" ..byte_array_format data) ])]
      ...                          (if (bit.= false (as Bit outcome))
-     ...                            (of io.monad in (exception.except ..cannot_write_to_file [path]))
+     ...                            (by io.monad in (exception.except ..cannot_write_to_file [path]))
      ...                            (in []))))]
      
      ...                     [over_write  +0]
@@ -858,7 +858,7 @@
      ...                 (do [! (try.with io.monad)]
      ...                   [data (..file_get_contents [path])]
      ...                   (if (bit.= false (as Bit data))
-     ...                     (of io.monad in (exception.except ..cannot_find_file [path]))
+     ...                     (by io.monad in (exception.except ..cannot_find_file [path]))
      ...                     (in (..unpack [..byte_array_format data])))))
 
      ...               (the path
@@ -869,7 +869,7 @@
      ...                        (do [! (try.with io.monad)]
      ...                          [value ( [path])]
      ...                          (if (bit.= false (as Bit value))
-     ...                            (of io.monad in (exception.except ..cannot_find_file [path]))
+     ...                            (by io.monad in (exception.except ..cannot_find_file [path]))
      ...                            (in (`` (|> value (,, (template.spliced ))))))))]
 
      ...                     [size ..filesize [.natural]]
@@ -883,21 +883,21 @@
      ...                 (do [! (try.with io.monad)]
      ...                   [verdict (..touch [path (|> moment instant.relative duration.millis (i./ +1,000))])]
      ...                   (if (bit.= false (as Bit verdict))
-     ...                     (of io.monad in (exception.except ..cannot_find_file [path]))
+     ...                     (by io.monad in (exception.except ..cannot_find_file [path]))
      ...                     (in []))))
 
      ...               (the (move destination)
      ...                 (do [! (try.with io.monad)]
      ...                   [verdict (..rename [path destination])]
      ...                   (if (bit.= false (as Bit verdict))
-     ...                     (of io.monad in (exception.except ..cannot_find_file [path]))
+     ...                     (by io.monad in (exception.except ..cannot_find_file [path]))
      ...                     (in (file destination)))))
 
      ...               (the (delete _)
      ...                 (do (try.with io.monad)
      ...                   [verdict (..unlink [path])]
      ...                   (if (bit.= false (as Bit verdict))
-     ...                     (of io.monad in (exception.except ..cannot_find_file [path]))
+     ...                     (by io.monad in (exception.except ..cannot_find_file [path]))
      ...                     (in []))))
      ...               )))
 
@@ -937,7 +937,7 @@
      ...                 (do (try.with io.monad)
      ...                   [verdict (..rmdir [path])]
      ...                   (if (bit.= false (as Bit verdict))
-     ...                     (of io.monad in (exception.except ..cannot_find_directory [path]))
+     ...                     (by io.monad in (exception.except ..cannot_find_directory [path]))
      ...                     (in []))))
      ...               )))
 
@@ -948,7 +948,7 @@
      ...                     [(the ( path)
      ...                        (do [! (try.with io.monad)]
      ...                          [verdict ( path)]
-     ...                          (of io.monad in
+     ...                          (by io.monad in
      ...                              (if verdict
      ...                                {try.#Success ( path)}
      ...                                (exception.except  [path])))))]
@@ -960,7 +960,7 @@
      ...               (the (make_file path)
      ...                 (do [! (try.with io.monad)]
      ...                   [verdict (..touch [path (|> instant.now io.value instant.relative duration.millis (i./ +1,000))])]
-     ...                   (of io.monad in
+     ...                   (by io.monad in
      ...                       (if verdict
      ...                         {try.#Success (..file path)}
      ...                         (exception.except ..cannot_make_file [path])))))
@@ -968,7 +968,7 @@
      ...               (the (make_directory path)
      ...                 (do [! (try.with io.monad)]
      ...                   [verdict (..mkdir path)]
-     ...                   (of io.monad in
+     ...                   (by io.monad in
      ...                       (if verdict
      ...                         {try.#Success (..directory path)}
      ...                         (exception.except ..cannot_make_directory [path])))))
@@ -985,10 +985,10 @@
     (-> (Monad !) (System !) Path
         (! Bit)))
   (do monad
-    [verdict (of fs file? path)]
+    [verdict (by fs file? path)]
     (if verdict
       (in verdict)
-      (of fs directory? path))))
+      (by fs directory? path))))
 
 (every Mock_File
   (Record
@@ -1188,7 +1188,7 @@
                [(the ( path)
                   (|> store
                       stm.read
-                      (of stm.monad each
+                      (by stm.monad each
                           (|>> ( separator path)
                                (try#each (function.constant true))
                                (try.else false)))
@@ -1299,7 +1299,7 @@
                             (do try.monad
                               [[name file] (..retrieve_mock_file! separator path |store|)]
                               (..update_mock_file! separator path now
-                                                   (of binary.monoid composite
+                                                   (by binary.monoid composite
                                                        (its #mock_content file)
                                                        content)
                                                    |store|)))
@@ -1327,28 +1327,28 @@
     (-> (Monad !) (System !) Path
         (! (Try Any))))
   (do monad
-    [? (of fs directory? path)]
+    [? (by fs directory? path)]
     (if ?
       (in {try.#Success []})
-      (of fs make_directory path))))
+      (by fs make_directory path))))
 
 (the .public (make_directories monad fs path)
   (for_any (_ !)
     (-> (Monad !) (System !) Path
         (! (Try Any))))
-  (let [rooted? (text.starts_with? (of fs separator) path)
-        segments (text.all_split_by (of fs separator) path)]
+  (let [rooted? (text.starts_with? (by fs separator) path)
+        segments (text.all_split_by (by fs separator) path)]
     (when (if rooted?
             (list.after 1 segments)
             segments)
       {.#End}
-      (of monad in (exception.except ..cannot_make_directory [path]))
+      (by monad in (exception.except ..cannot_make_directory [path]))
 
       {.#Item head tail}
       (when head
-        "" (of monad in (exception.except ..cannot_make_directory [path]))
+        "" (by monad in (exception.except ..cannot_make_directory [path]))
         _ (loop (again [current (if rooted?
-                                  (%.message (of fs separator) head)
+                                  (%.message (by fs separator) head)
                                   head)
                         next tail])
             (do monad
@@ -1360,7 +1360,7 @@
                   (in {try.#Success []})
                   
                   {.#Item head tail}
-                  (again (%.message current (of fs separator) head)
+                  (again (%.message current (by fs separator) head)
                          tail))
                 
                 {try.#Failure error}
@@ -1371,15 +1371,15 @@
     (-> (Monad !) (System !) Binary Path
         (! (Try Any))))
   (do monad
-    [? (of fs file? path)]
+    [? (by fs file? path)]
     (if ?
       (in (exception.except ..cannot_make_file [path]))
-      (of fs write path content))))
+      (by fs write path content))))
 
 (the .public (copy monad fs from to)
   (for_any (_ !)
     (-> (Monad !) (System !) Path Path
         (! (Try Any))))
   (do (try.with monad)
-    [data (of fs read from)]
-    (of fs write to data)))
+    [data (by fs read from)]
+    (by fs write to data)))
diff --git a/stdlib/source/library/lux/world/file/watch.lux b/stdlib/source/library/lux/world/file/watch.lux
index 8087e65287..61181edaad 100644
--- a/stdlib/source/library/lux/world/file/watch.lux
+++ b/stdlib/source/library/lux/world/file/watch.lux
@@ -140,11 +140,11 @@
   (-> (//.System Async) //.Path
       (Async (Try File_Tracker)))
   (do [! (try.with async.monad)]
-    [files (of fs directory_files directory)]
+    [files (by fs directory_files directory)]
     (monad.mix !
                (function (_ file tracker)
                  (do !
-                   [last_modified (of fs last_modified file)]
+                   [last_modified (by fs last_modified file)]
                    (in (dictionary.has file last_modified tracker))))
                (is File_Tracker
                    (dictionary.empty text.hash))
@@ -154,11 +154,11 @@
   (-> (//.System Async) //.Path
       (Async (Try (List [//.Path Instant]))))
   (do [! (try.with async.monad)]
-    [files (of fs directory_files directory)]
+    [files (by fs directory_files directory)]
     (monad.each ! (function (_ file)
                     (|> file
-                        (of fs last_modified)
-                        (of ! each (|>> [file]))))
+                        (by fs last_modified)
+                        (by ! each (|>> [file]))))
                 files)))
 
 (the (available_directory_changes fs [directory [the_concern file_tracker]])
@@ -210,7 +210,7 @@
     (implementation
      (the (start new_concern path)
        (do [! async.monad]
-         [exists? (of fs directory? path)]
+         [exists? (by fs directory? path)]
          (if exists?
            (do !
              [updated? (stm.commit! (..update_watch! new_concern path tracker))]
@@ -361,7 +361,7 @@
               (-> java/nio/file/WatchKey
                   (IO Concern))
               (|>> (java/nio/file/WatchKey::pollEvents [])
-                   (of io.monad each (|>> ..default_list
+                   (by io.monad each (|>> ..default_list
                                           (list#each default_event_concern)
                                           (list#mix ..and ..none)))))
 
diff --git a/stdlib/source/library/lux/world/finance/market/price.lux b/stdlib/source/library/lux/world/finance/market/price.lux
index 1374c0f9e1..7382a3cb81 100644
--- a/stdlib/source/library/lux/world/finance/market/price.lux
+++ b/stdlib/source/library/lux/world/finance/market/price.lux
@@ -33,4 +33,4 @@
   (for_any (_ $)
     (-> (Currency $)
         (Price $)))
-  (money.money $ (of n.interval top)))
+  (money.money $ (by n.interval top)))
diff --git a/stdlib/source/library/lux/world/finance/market/price/action.lux b/stdlib/source/library/lux/world/finance/market/price/action.lux
index fdcad93a5e..7153f94045 100644
--- a/stdlib/source/library/lux/world/finance/market/price/action.lux
+++ b/stdlib/source/library/lux/world/finance/market/price/action.lux
@@ -77,7 +77,7 @@
   (the .public order
     (for_any (_ $)
       (Order (Action $)))
-    (of order.functor each
+    (by order.functor each
         ..ticks
         i.order))
 
@@ -86,7 +86,7 @@
   (the .public equivalence
     (for_any (_ $)
       (Equivalence (Action $)))
-    (of ..order equivalence))
+    (by ..order equivalence))
 
   (alias [=]
          ..equivalence)
@@ -108,7 +108,7 @@
     )
 
   (the too_negative
-    (of i.interval bottom))
+    (by i.interval bottom))
 
   (the .public (injection it)
     (for_any (_ $)
diff --git a/stdlib/source/library/lux/world/finance/money.lux b/stdlib/source/library/lux/world/finance/money.lux
index fa4c92b273..378fb46276 100644
--- a/stdlib/source/library/lux/world/finance/money.lux
+++ b/stdlib/source/library/lux/world/finance/money.lux
@@ -65,7 +65,7 @@
   (the .public order
     (for_any (_ $)
       (Order (Money $)))
-    (of order.functor each
+    (by order.functor each
         ..amount
         n.order))
 
@@ -74,7 +74,7 @@
   (the .public equivalence
     (for_any (_ $)
       (Equivalence (Money $)))
-    (of ..order equivalence))
+    (by ..order equivalence))
 
   (alias [=]
          ..equivalence)
@@ -123,7 +123,7 @@
     (let [[currency amount] (nominal.representation it)
           range (/.sub_divisions currency)
           [macro micro] (n./% range amount)
-          sub (of (n.padded (|> range -- %.natural text.size)
+          sub (by (n.padded (|> range -- %.natural text.size)
                             n.base_10)
                   injection)]
       (%.message (%.natural macro)
diff --git a/stdlib/source/library/lux/world/finance/money/currency.lux b/stdlib/source/library/lux/world/finance/money/currency.lux
index fd9f3b01c6..460d0432e7 100644
--- a/stdlib/source/library/lux/world/finance/money/currency.lux
+++ b/stdlib/source/library/lux/world/finance/money/currency.lux
@@ -56,7 +56,7 @@
 
   (the .public equivalence
     (Equivalence (Currency Any))
-    (of equivalence.functor each
+    (by equivalence.functor each
         (|>> nominal.representation)
         (.all product.equivalence
               text.equivalence
diff --git a/stdlib/source/library/lux/world/locale.lux b/stdlib/source/library/lux/world/locale.lux
index 7bf4e252ad..ebaf11f4c9 100644
--- a/stdlib/source/library/lux/world/locale.lux
+++ b/stdlib/source/library/lux/world/locale.lux
@@ -43,11 +43,11 @@
 
   (the .public hash
     (Hash Locale)
-    (of hash.functor each ..code text.hash))
+    (by hash.functor each ..code text.hash))
 
   (the .public equivalence
     (Equivalence Locale)
-    (of ..hash equivalence))
+    (by ..hash equivalence))
 
   (alias [=]
          ..equivalence)
diff --git a/stdlib/source/library/lux/world/locale/language.lux b/stdlib/source/library/lux/world/locale/language.lux
index aa4c0508ad..066547c2ec 100644
--- a/stdlib/source/library/lux/world/locale/language.lux
+++ b/stdlib/source/library/lux/world/locale/language.lux
@@ -581,5 +581,5 @@
      
      (the hash
        (|>> ..code
-            (of text.hash hash)))))
+            (by text.hash hash)))))
   )
diff --git a/stdlib/source/library/lux/world/locale/territory.lux b/stdlib/source/library/lux/world/locale/territory.lux
index efe857b355..e908bd9c61 100644
--- a/stdlib/source/library/lux/world/locale/territory.lux
+++ b/stdlib/source/library/lux/world/locale/territory.lux
@@ -317,5 +317,5 @@
      (the hash
        (|>> nominal.representation
             (its #long)
-            (of text.hash hash)))))
+            (by text.hash hash)))))
   )
diff --git a/stdlib/source/library/lux/world/logging.lux b/stdlib/source/library/lux/world/logging.lux
index 258127716e..e3493924e5 100644
--- a/stdlib/source/library/lux/world/logging.lux
+++ b/stdlib/source/library/lux/world/logging.lux
@@ -32,7 +32,7 @@
      (for_any (_ !)
        (-> Text (Logger !)
            (! (Try Any))))
-     (of it log (terminal.with 
+     (by it log (terminal.with 
                   (%.message  message))))]
 
   ["[ERROR]   " error terminal.red_foreground]
@@ -48,7 +48,7 @@
   (implementation
    (the log
      (|>> scope
-          (of it log)))))
+          (by it log)))))
 
 (the .public (timed ! now it)
   (for_any (_ !)
@@ -58,7 +58,7 @@
    (the (log message)
      (do !
        [now (now [])]
-       (of it log (%.message (terminal.with terminal.green_foreground
+       (by it log (%.message (terminal.with terminal.green_foreground
                                (%.message "[" (instant.as_text now) "]"))
                              " "
                              message))))))
diff --git a/stdlib/source/library/lux/world/net/http/client.lux b/stdlib/source/library/lux/world/net/http/client.lux
index 55a6c884bc..42e1c968ee 100644
--- a/stdlib/source/library/lux/world/net/http/client.lux
+++ b/stdlib/source/library/lux/world/net/http/client.lux
@@ -55,7 +55,7 @@
        (for_any (_ !)
          (-> URL Headers (Maybe Binary) (Client !)
              (! (Try (Response !)))))
-       (of client request {} url headers data)))]
+       (by client request {} url headers data)))]
 
   [//.#Post]
   [//.#Get]
@@ -150,7 +150,7 @@
                               (loop (again [so_far +0])
                                 (do [! (try.with io.monad)]
                                   [.let [remaining (i.- so_far (.integer buffer_size))]
-                                   bytes_read (of ! each (|>> ffi.of_int)
+                                   bytes_read (by ! each (|>> ffi.of_int)
                                                   (java/io/BufferedInputStream::read [buffer (ffi.as_int so_far) (ffi.as_int remaining)] input))]
                                   (when bytes_read
                                     -1 (do !
@@ -161,10 +161,10 @@
                                         (in [buffer_size buffer])
                                         (again (i.+ bytes_read so_far))))))
                               (loop (again [so_far +0
-                                            output (of binary.monoid identity)])
+                                            output (by binary.monoid identity)])
                                 (do [! (try.with io.monad)]
                                   [.let [remaining (i.- so_far (.integer buffer_size))]
-                                   bytes_read (of ! each (|>> ffi.of_int)
+                                   bytes_read (by ! each (|>> ffi.of_int)
                                                   (java/io/BufferedInputStream::read [buffer (ffi.as_int so_far) (ffi.as_int remaining)] input))]
                                   (when bytes_read
                                     -1 (do !
@@ -173,14 +173,14 @@
                                            +0 (in (..body_of output))
                                            _ (|> buffer
                                                  (binary.slice 0 (.natural so_far))
-                                                 (of try.functor each
-                                                     (|>> (of binary.monoid composite output)
+                                                 (by try.functor each
+                                                     (|>> (by binary.monoid composite output)
                                                           ..body_of))
-                                                 (of io.monad in))))
+                                                 (by io.monad in))))
                                     +0 (again so_far output)
                                     _ (if (i.= remaining bytes_read)
                                         (again +0
-                                               (of binary.monoid composite output buffer))
+                                               (by binary.monoid composite output buffer))
                                         (again (i.+ bytes_read so_far)
                                                output))))))))))
 
@@ -229,7 +229,7 @@
                              headers (..default_headers connection)
                              input (|> connection
                                        (java/net/URLConnection::getInputStream [])
-                                       (of ! each (|>> [] java/io/BufferedInputStream::new)))]
+                                       (by ! each (|>> [] java/io/BufferedInputStream::new)))]
                             (in [(.natural (ffi.of_int status))
                                  [//.#headers headers
                                   //.#body (..default_body input)]])))))))
@@ -280,7 +280,7 @@
                              (maybe.else [false ..default_buffer_size])
                              (pipe.when
                                [_ 0]
-                               (of ! in ..empty_body)
+                               (by ! in ..empty_body)
 
                                [partial? buffer_size]
                                (do !
@@ -304,7 +304,7 @@
                                                                        (..method_name method)])]
                                 response (urllib/request#urlopen [request])
                                 .let [status (http/client/HTTPResponse#status response)]
-                                headers (of ! each ..headers_output
+                                headers (by ! each ..headers_output
                                             (http/client/HTTPResponse#getheaders [] response))]
                                (in [status
                                     [//.#headers headers
@@ -317,9 +317,9 @@
       (Client Async))
   (implementation
    (the (request method url headers data)
-     (|> (of client request method url headers data)
+     (|> (by client request method url headers data)
          async.future
-         (of async.monad each
+         (by async.monad each
              (try#each (function (_ [status message])
                          [status (revised //.#body (is (-> (//.Body IO) (//.Body Async))
                                                        (function (_ body)
diff --git a/stdlib/source/library/lux/world/net/http/header.lux b/stdlib/source/library/lux/world/net/http/header.lux
index 6446825adf..3a56f157cf 100644
--- a/stdlib/source/library/lux/world/net/http/header.lux
+++ b/stdlib/source/library/lux/world/net/http/header.lux
@@ -76,8 +76,8 @@
 (the .public content_length
   (Header Natural)
   [#name "Content-Length"
-   #in (of natural.base_10 injection)
-   #out (of natural.base_10 projection)])
+   #in (by natural.base_10 injection)
+   #out (by natural.base_10 projection)])
 
 (the .public content_type
   (Header MIME)
diff --git a/stdlib/source/library/lux/world/net/http/request.lux b/stdlib/source/library/lux/world/net/http/request.lux
index 478917eb4e..440e59e7d1 100644
--- a/stdlib/source/library/lux/world/net/http/request.lux
+++ b/stdlib/source/library/lux/world/net/http/request.lux
@@ -54,7 +54,7 @@
     (-> (Monad !) Binary
         (//.Body !)))
   (function (_ _)
-    (of ! in {try.#Success [(binary.size it) it]})))
+    (by ! in {try.#Success [(binary.size it) it]})))
 
 (the .public (utf8 ! it)
   (for_any (_ !)
diff --git a/stdlib/source/library/lux/world/net/http/response.lux b/stdlib/source/library/lux/world/net/http/response.lux
index 1f8c55992b..9a85066c19 100644
--- a/stdlib/source/library/lux/world/net/http/response.lux
+++ b/stdlib/source/library/lux/world/net/http/response.lux
@@ -44,7 +44,7 @@
                                (header.has header.content_length 0)
                                (header.has header.content_type mime.utf_8))
                //.#body (function (_ _)
-                          (of ! in {try.#Success [0 (of utf8.format injection "")]}))]]))
+                          (by ! in {try.#Success [0 (by utf8.format injection "")]}))]]))
 
 (the .public (temporary_redirect ! to)
   (for_any (_ !)
@@ -70,13 +70,13 @@
                                (header.has header.content_length length)
                                (header.has header.content_type type))
                //.#body (function (_ _)
-                          (of ! in {try.#Success [length data]}))]]))
+                          (by ! in {try.#Success [length data]}))]]))
 
 (the .public (bad_request !)
   (for_any (_ !)
     (-> (Monad !) Text
         (Response !)))
-  (|>> (of utf8.format injection)
+  (|>> (by utf8.format injection)
        (content ! status.bad_request mime.utf_8)))
 
 (the .public (ok !)
@@ -91,7 +91,7 @@
        (-> (Monad !) 
            (Response !)))
      (|>> 
-          (of utf8.format injection)
+          (by utf8.format injection)
           (..ok ! )))]
 
   [text Text          mime.utf_8 (<|)]
diff --git a/stdlib/source/library/lux/world/net/http/server.lux b/stdlib/source/library/lux/world/net/http/server.lux
index cd3a0cebde..345831e120 100644
--- a/stdlib/source/library/lux/world/net/http/server.lux
+++ b/stdlib/source/library/lux/world/net/http/server.lux
@@ -52,7 +52,7 @@
      (function (_ ! request)
        (if (scheme.=  (its [request.#protocol request.#scheme] request))
          (server ! request)
-         (of ! in (response.not_found !)))))]
+         (by ! in (response.not_found !)))))]
 
   [scheme.http  http]
   [scheme.https https]
@@ -69,7 +69,7 @@
          (server ! request)
 
          _
-         (of ! in (response.not_found !)))))]
+         (by ! in (response.not_found !)))))]
 
   [//.#Get     get]
   [//.#Post    post]
@@ -92,7 +92,7 @@
                          (|>> (text.clip_since (text.size path))
                               maybe.trusted)
                          request))
-      (of ! in (response.not_found !)))))
+      (by ! in (response.not_found !)))))
 
 (the .public (or primary alternative)
   (for_any (_ !)
@@ -111,7 +111,7 @@
     (-> (Response !)
         (Server !)))
   (function (_ ! request)
-    (of ! in response)))
+    (by ! in response)))
 
 (the (body_text ! body)
   (for_any (_ !)
@@ -147,7 +147,7 @@
         (server input ! request)
         
         {try.#Failure error}
-        (of ! in (..failure !))))))
+        (by ! in (..failure !))))))
 
 (the .public (text server)
   (for_any (_ !)
@@ -161,7 +161,7 @@
         (server content ! request)
         
         {try.#Failure error}
-        (of ! in (..failure !))))))
+        (by ! in (..failure !))))))
 
 (the .public (form projection server)
   (for_any (_ ! of)
@@ -178,7 +178,7 @@
         (server input ! request)
         
         {try.#Failure error}
-        (of ! in (..failure !))))))
+        (by ! in (..failure !))))))
 
 (the .public (json projection server)
   (for_any (_ ! of)
@@ -195,4 +195,4 @@
         (server input ! request)
         
         {try.#Failure error}
-        (of ! in (..failure !))))))
+        (by ! in (..failure !))))))
diff --git a/stdlib/source/library/lux/world/net/mime.lux b/stdlib/source/library/lux/world/net/mime.lux
index 5e92bdfa3f..9afea066c4 100644
--- a/stdlib/source/library/lux/world/net/mime.lux
+++ b/stdlib/source/library/lux/world/net/mime.lux
@@ -30,14 +30,14 @@
 
   (the .public equivalence
     (Equivalence MIME)
-    (of equivalence.functor each ..name text.equivalence))
+    (by equivalence.functor each ..name text.equivalence))
 
   (alias [=]
          ..equivalence)
 
   (the .public hash
     (Hash MIME)
-    (of hash.functor each ..name text.hash))
+    (by hash.functor each ..name text.hash))
   )
 
 ... https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
diff --git a/stdlib/source/library/lux/world/net/uri/encoding.lux b/stdlib/source/library/lux/world/net/uri/encoding.lux
index ca1bfbdeff..d1d04c6d02 100644
--- a/stdlib/source/library/lux/world/net/uri/encoding.lux
+++ b/stdlib/source/library/lux/world/net/uri/encoding.lux
@@ -104,7 +104,7 @@
                   (do try.monad
                     [value (|> input
                                (.text_clip# encoding_start 2)
-                               (of natural.hex projection))
+                               (by natural.hex projection))
                      .let [index' (++ encoding_end)]]
                     (again index'
                            index'
diff --git a/stdlib/source/library/lux/world/net/uri/query.lux b/stdlib/source/library/lux/world/net/uri/query.lux
index d7db2827ed..6640e1e8b8 100644
--- a/stdlib/source/library/lux/world/net/uri/query.lux
+++ b/stdlib/source/library/lux/world/net/uri/query.lux
@@ -58,7 +58,7 @@
               [_ (?text.this "%")
                code (|> (?text.exactly 2 ?text.hexadecimal)
                         (?.format natural.hex)
-                        (of ! each text.of_character))
+                        (by ! each text.of_character))
                tail component]
               (in (%.message head code tail))))))))
 
@@ -92,7 +92,7 @@
                              ?text.end)]
                      (form (dictionary.has key "" query)))))
        ... if invalid form data, just stop parsing...
-       (of ?.monad in query)))
+       (by ?.monad in query)))
 
 (the injection
   (text.Injection Query)
diff --git a/stdlib/source/library/lux/world/net/uri/scheme.lux b/stdlib/source/library/lux/world/net/uri/scheme.lux
index 9ff0809806..cc52ad31cb 100644
--- a/stdlib/source/library/lux/world/net/uri/scheme.lux
+++ b/stdlib/source/library/lux/world/net/uri/scheme.lux
@@ -138,12 +138,12 @@
 
   (the .public equivalence
     (Equivalence Scheme)
-    (of equivalence.functor each ..name text.equivalence))
+    (by equivalence.functor each ..name text.equivalence))
 
   (alias [=]
          ..equivalence)
 
   (the .public hash
     (Hash Scheme)
-    (of hash.functor each ..name text.hash))
+    (by hash.functor each ..name text.hash))
   )
diff --git a/stdlib/source/library/lux/world/output/video/resolution.lux b/stdlib/source/library/lux/world/output/video/resolution.lux
index d6d167c86c..f4407f3588 100644
--- a/stdlib/source/library/lux/world/output/video/resolution.lux
+++ b/stdlib/source/library/lux/world/output/video/resolution.lux
@@ -27,7 +27,7 @@
 
 (the .public equivalence
   (Equivalence Resolution)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/library/lux/world/shell.lux b/stdlib/source/library/lux/world/shell.lux
index 6b91a897f0..652c2afd74 100644
--- a/stdlib/source/library/lux/world/shell.lux
+++ b/stdlib/source/library/lux/world/shell.lux
@@ -69,7 +69,7 @@
   (`` (implementation
        (,, (template.with []
              [(the 
-                (|>> (of process )
+                (|>> (by process )
                      async.future))]
 
              [read]
@@ -97,7 +97,7 @@
    (the (execute input)
      (async.future
       (do (try.with io.monad)
-        [process (of shell execute input)]
+        [process (by shell execute input)]
         (in (..async_process process)))))))
 
 ... https://en.wikipedia.org/wiki/Code_injection#Shell_injection
@@ -263,13 +263,13 @@
                                           (in (ffi.of_string output))
 
                                           {.#None}
-                                          (of io.monad in (exception.except ..no_more_output [])))))]
+                                          (by io.monad in (exception.except ..no_more_output [])))))]
 
                                    [read jvm_input]
                                    [fail jvm_error]
                                    ))
                              (the (write message)
-                               (java/io/OutputStream::write [(of utf8.format injection message)]
+                               (java/io/OutputStream::write [(by utf8.format injection message)]
                                                             jvm_output))
                              (,, (template.with [ ]
                                    [(the ( _)
@@ -277,7 +277,7 @@
                                           ))]
 
                                    [destroy (java/lang/Process::destroy [])]
-                                   [await (<| (of ! each (|>> ffi.of_int))
+                                   [await (<| (by ! each (|>> ffi.of_int))
                                               (java/lang/Process::waitFor []))]
                                    ))))))))
 
@@ -299,7 +299,7 @@
             ... https://en.wikipedia.org/wiki/Code_injection#Shell_injection
             (the windows?
               (IO (Try Bit))
-              (of (try.with io.monad) each
+              (by (try.with io.monad) each
                   (|>> (java/lang/String::toLowerCase [])
                        ffi.of_string
                        (text.starts_with? "windows"))
@@ -316,8 +316,8 @@
                                       (java/lang/ProcessBuilder::directory [(java/io/File::new [(ffi.as_string working_directory)])]))]
                     _ (|> builder
                           (java/lang/ProcessBuilder::environment [])
-                          (of try.functor each (..jvm::load_environment environment))
-                          (of io.monad in))
+                          (by try.functor each (..jvm::load_environment environment))
+                          (by io.monad in))
                     process (java/lang/ProcessBuilder::start [] builder)]
                    (..default_process process)))))
             )
@@ -345,7 +345,7 @@
              [(the ( _)
                 (do [! io.monad]
                   [|state| (atom.read! state)]
-                  (when (of mock  |state|)
+                  (when (by mock  |state|)
                     {try.#Success [|state| output]}
                     (do !
                       [_ (atom.write! |state| state)]
@@ -361,7 +361,7 @@
        (the (write message)
          (do [! io.monad]
            [|state| (atom.read! state)]
-           (when (of mock on_write message |state|)
+           (when (by mock on_write message |state|)
              {try.#Success |state|}
              (do !
                [_ (atom.write! |state| state)]
@@ -372,7 +372,7 @@
        (the (destroy _)
          (do [! io.monad]
            [|state| (atom.read! state)]
-           (when (of mock on_destroy |state|)
+           (when (by mock on_destroy |state|)
              {try.#Success |state|}
              (do !
                [_ (atom.write! |state| state)]
@@ -390,5 +390,5 @@
   (implementation
    (the execute
      (|>> mock
-          (of try.monad each (..mock_process (atom.atom init)))
+          (by try.monad each (..mock_process (atom.atom init)))
           io.io))))
diff --git a/stdlib/source/library/lux/world/time.lux b/stdlib/source/library/lux/world/time.lux
index 8945f16549..fe7fa912a3 100644
--- a/stdlib/source/library/lux/world/time.lux
+++ b/stdlib/source/library/lux/world/time.lux
@@ -62,7 +62,7 @@
   (<>.either (|> (.at_most 3 .decimal)
                  (<>.format n.base_10)
                  (<>.after (.this ".")))
-             (of <>.monad in 0)))
+             (by <>.monad in 0)))
 
 (template.with [   ]
   [(exception.the .public ( value)
@@ -214,7 +214,7 @@
 (the .public (as_text time)
   (text.Injection Time)
   (let [(open "_[0]") (..clock time)
-        segment (of (n.padded 2 n.base_10) injection)]
+        segment (by (n.padded 2 n.base_10) injection)]
     (all text#composite
          (segment _#hour)
          ..separator (segment _#minute)
@@ -232,5 +232,5 @@
   (Random Time)
   (random.try
    (do [! random.monad]
-     [milli_seconds (of ! each (n.% ..limit) random.natural)]
+     [milli_seconds (by ! each (n.% ..limit) random.natural)]
      (in (..of_millis milli_seconds)))))
diff --git a/stdlib/source/library/lux/world/time/date.lux b/stdlib/source/library/lux/world/time/date.lux
index 7aed5b72bd..73d92108e1 100644
--- a/stdlib/source/library/lux/world/time/date.lux
+++ b/stdlib/source/library/lux/world/time/date.lux
@@ -65,7 +65,7 @@
    (list ["Value" (n#injection day)]
          ["Minimum" (n#injection ..minimum_day)]
          ["Maximum" (n#injection (..month_days year month))]
-         ["Year" (of year.format injection year)]
+         ["Year" (by year.format injection year)]
          ["Month" (n#injection (month.number month))])))
 
 (the separator
@@ -111,10 +111,10 @@
      (the (= expected actual)
        (let [expected (nominal.representation expected)
              actual (nominal.representation actual)]
-         (and (of year.equivalence =
+         (and (by year.equivalence =
                   (its #year expected)
                   (its #year actual))
-              (of month.equivalence =
+              (by month.equivalence =
                   (its #month expected)
                   (its #month actual))
               (n.= (its #day expected)
@@ -131,16 +131,16 @@
      (the (< reference it)
        (let [reference (nominal.representation reference)
              it (nominal.representation it)]
-         (or (of year.order <
+         (or (by year.order <
                  (its #year reference)
                  (its #year it))
-             (and (of year.equivalence =
+             (and (by year.equivalence =
                       (its #year reference)
                       (its #year it))
-                  (or (of month.order <
+                  (or (by month.order <
                           (its #month reference)
                           (its #month it))
-                      (and (of month.order =
+                      (and (by month.order =
                                (its #month reference)
                                (its #month it))
                            (n.< (its #day reference)
@@ -158,7 +158,7 @@
   (<>.either (|> (.at_most 3 .decimal)
                  (<>.format n.base_10)
                  (<>.after (.this ".")))
-             (of <>.monad in 0)))
+             (by <>.monad in 0)))
 
 (template.with [   ]
   [(exception.the .public ( value)
@@ -193,9 +193,9 @@
 
 (the .public (as_text value)
   (text.Injection Date)
-  (let [segment (of (n.padded 2 n.base_10) injection)]
+  (let [segment (by (n.padded 2 n.base_10) injection)]
     (all text#composite
-         (of year.format injection (..year value))
+         (by year.format injection (..year value))
          ..separator (segment (|> value ..month month.number))
          ..separator (segment (..day_of_month value)))))
 
@@ -395,6 +395,6 @@
    (do [! random.monad]
      [year year.random
       month month.random
-      day_of_month (of ! each (n.% (month.days month))
+      day_of_month (by ! each (n.% (month.days month))
                        random.natural)]
      (in (..date year month day_of_month)))))
diff --git a/stdlib/source/library/lux/world/time/day.lux b/stdlib/source/library/lux/world/time/day.lux
index 7302884418..fa47ff5401 100644
--- a/stdlib/source/library/lux/world/time/day.lux
+++ b/stdlib/source/library/lux/world/time/day.lux
@@ -174,10 +174,10 @@
          (exception.the .public (invalid_day number)
            (Exception Natural)
            (exception.report
-            (list ["Number" (of n.base_10 injection number)]
-                  ["Valid range" (.text_composite# (of n.base_10 injection (..number {#Sunday}))
+            (list ["Number" (by n.base_10 injection number)]
+                  ["Valid range" (.text_composite# (by n.base_10 injection (..number {#Sunday}))
                                                    " ~ "
-                                                   (of n.base_10 injection (..number {#Saturday})))])))
+                                                   (by n.base_10 injection (..number {#Saturday})))])))
 
          (the .public (by_number number)
            (-> Natural (Try Day))
diff --git a/stdlib/source/library/lux/world/time/duration.lux b/stdlib/source/library/lux/world/time/duration.lux
index d91d222b0f..6643890fcb 100644
--- a/stdlib/source/library/lux/world/time/duration.lux
+++ b/stdlib/source/library/lux/world/time/duration.lux
@@ -152,7 +152,7 @@
   )
 
 (the .public (as_text duration)
-  (if (of ..equivalence = ..empty duration)
+  (if (by ..equivalence = ..empty duration)
     (all text#composite
          ..positive_sign
          (natural#injection 0)
@@ -228,4 +228,4 @@
 
 (the .public random
   (Random Duration)
-  (of random.functor each ..of_millis random.integer))
+  (by random.functor each ..of_millis random.integer))
diff --git a/stdlib/source/library/lux/world/time/instant.lux b/stdlib/source/library/lux/world/time/instant.lux
index 74100552e1..ccded3f1f0 100644
--- a/stdlib/source/library/lux/world/time/instant.lux
+++ b/stdlib/source/library/lux/world/time/instant.lux
@@ -84,7 +84,7 @@
     (Equivalence Instant)
     (implementation
      (the (= param subject)
-       (of i.equivalence =
+       (by i.equivalence =
            (nominal.representation param)
            (nominal.representation subject)))))
 
@@ -96,7 +96,7 @@
     (implementation
      (the equivalence ..equivalence)
      (the (< param subject)
-       (of i.order <
+       (by i.order <
            (nominal.representation param)
            (nominal.representation subject)))))
 
@@ -108,7 +108,7 @@
      (the equivalence ..equivalence)
      (the hash
        (|>> nominal.representation
-            (of i.hash hash)))))
+            (by i.hash hash)))))
 
   (`` (the .public enum
         (Enum Instant)
@@ -117,7 +117,7 @@
          (,, (template.with []
                [(the 
                   (|>> nominal.representation
-                       (of i.enum )
+                       (by i.enum )
                        nominal.abstraction))]
 
                [succ] [pred]
@@ -166,7 +166,7 @@
 (the (clock_time duration)
   (-> Duration
       Time)
-  (|> (if (of duration.order < duration.empty duration)
+  (|> (if (by duration.order < duration.empty duration)
         (duration.composite duration.day duration)
         duration)
       duration.millis
@@ -179,15 +179,15 @@
   (let [[date time] (..date_time instant)
         time (..clock_time time)]
     (all text#composite
-         (of date.format injection date) ..date_suffix
-         (of //.format injection time) ..time_suffix)))
+         (by date.format injection date) ..date_suffix
+         (by //.format injection time) ..time_suffix)))
 
 (the .public projection
   (Projection Instant)
   (do [! <>.monad]
-    [days (of ! each date.as_days date.projection)
+    [days (by ! each date.as_days date.projection)
      _ (.this ..date_suffix)
-     time (of ! each //.millis //.projection)
+     time (by ! each //.millis //.projection)
      _ (.this ..time_suffix)]
     (in (|> (if (i.< +0 days)
               (|> duration.day
@@ -288,4 +288,4 @@
 
 (the .public random
   (Random Instant)
-  (of random.functor each ..of_millis random.integer))
+  (by random.functor each ..of_millis random.integer))
diff --git a/stdlib/source/library/lux/world/time/month.lux b/stdlib/source/library/lux/world/time/month.lux
index 8af72bfc98..4993ab7d3c 100644
--- a/stdlib/source/library/lux/world/time/month.lux
+++ b/stdlib/source/library/lux/world/time/month.lux
@@ -93,10 +93,10 @@
          (exception.the .public (invalid_month number)
            (Exception Natural)
            (exception.report
-            (list ["Number" (of n.base_10 injection number)]
-                  ["Valid range" (.text_composite# (of n.base_10 injection (..number {#January}))
+            (list ["Number" (by n.base_10 injection number)]
+                  ["Valid range" (.text_composite# (by n.base_10 injection (..number {#January}))
                                                    " ~ "
-                                                   (of n.base_10 injection (..number {#December})))])))
+                                                   (by n.base_10 injection (..number {#December})))])))
 
          (the .public (by_number number)
            (-> Natural (Try Month))
diff --git a/stdlib/source/library/lux/world/time/solar.lux b/stdlib/source/library/lux/world/time/solar.lux
index 6fd15e1e88..f9765ac114 100644
--- a/stdlib/source/library/lux/world/time/solar.lux
+++ b/stdlib/source/library/lux/world/time/solar.lux
@@ -176,10 +176,10 @@
                      [it (datetime::datetime)
                       tz_now (|> it
                                  (datetime/datetime::now [(datetime::timezone [(datetime::timedelta [+0])])])
-                                 (of ! each (datetime/datetime::astimezone [])))
+                                 (by ! each (datetime/datetime::astimezone [])))
                       offset (|> it
                                  (datetime/datetime::now [(datetime/datetime::tzinfo tz_now)])
-                                 (of ! each (|>> (datetime/datetime::utcoffset [])
+                                 (by ! each (|>> (datetime/datetime::utcoffset [])
                                                  (datetime/utcoffset::total_seconds [])
                                                  d.integer
                                                  (i.* +1000)
@@ -215,7 +215,7 @@
                                    (duration.framed duration.hour)
                                    (duration.ticks duration.minute))
                        segment (|>> .natural
-                                    (of (n.padded 2 n.base_10) injection))]
+                                    (by (n.padded 2 n.base_10) injection))]
                    (%.message (sign hours) (segment (i.abs hours))
                               ":" (segment minutes))))))
   )
diff --git a/stdlib/source/library/lux/world/time/year.lux b/stdlib/source/library/lux/world/time/year.lux
index 692de6b44f..8fddc9b0e9 100644
--- a/stdlib/source/library/lux/world/time/year.lux
+++ b/stdlib/source/library/lux/world/time/year.lux
@@ -110,7 +110,7 @@
   (template.with [,name ,extreme]
     [(the .public ,name
        Year
-       (|> (of i.interval ,extreme)
+       (|> (by i.interval ,extreme)
            ..of_days
            nominal.abstraction))]
 
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index 9cacd251c6..72a16f6dec 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -95,7 +95,7 @@
 
          _
          (do async.monad
-           [_ (of environment exit exit_code)]
+           [_ (by environment exit exit_code)]
            (in {try.#Failure ""})))]
     (in output)))
 
@@ -109,13 +109,13 @@
 
 (the succeed!
   (IO Any)
-  (of environment.default exit shell.normal))
+  (by environment.default exit shell.normal))
 
 (the (fail! error)
   (-> Text (IO Any))
   (exec
     (debug.log! error)
-    (of environment.default exit shell.error)))
+    (by environment.default exit shell.error)))
 
 (the (command action)
   (for_any (_ a)
@@ -131,7 +131,7 @@
 
          {try.#Failure error}
          (..fail! error))))
-    (of io.monad in [])))
+    (by io.monad in [])))
 
 (exception.the .public invalid_operation)
 
@@ -158,12 +158,12 @@
 (the _
   (program.program [[profiles operation] /cli.command]
     (do [! io.monad]
-      [console (of ! each (|>> (try.else ..write_only) console.async)
+      [console (by ! each (|>> (try.else ..write_only) console.async)
                    console.default)]
       (when operation
         {/cli.#Version}
         (..command
-         (/command/version.do! console (of /.monoid identity)))
+         (/command/version.do! console (by /.monoid identity)))
 
         _
         (do !
diff --git a/stdlib/source/program/aedifex/artifact.lux b/stdlib/source/program/aedifex/artifact.lux
index e9ac5abaae..076fd86ee1 100644
--- a/stdlib/source/program/aedifex/artifact.lux
+++ b/stdlib/source/program/aedifex/artifact.lux
@@ -49,7 +49,7 @@
 
 (the .public equivalence
   (Equivalence Artifact)
-  (of ..hash equivalence))
+  (by ..hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/program/aedifex/cli.lux b/stdlib/source/program/aedifex/cli.lux
index 7e600818b3..eed88460b0 100644
--- a/stdlib/source/program/aedifex/cli.lux
+++ b/stdlib/source/program/aedifex/cli.lux
@@ -105,6 +105,6 @@
                       [head cli.any
                        [tail command] command]
                       (in [{.#Item head tail} command])))
-          (of <>.monad each (|>> [(list)])
+          (by <>.monad each (|>> [(list)])
               ..command')
           ))))
diff --git a/stdlib/source/program/aedifex/command/auto.lux b/stdlib/source/program/aedifex/command/auto.lux
index 8652eea5c8..a065da29b8 100644
--- a/stdlib/source/program/aedifex/command/auto.lux
+++ b/stdlib/source/program/aedifex/command/auto.lux
@@ -35,11 +35,11 @@
   (-> (file.System Async) file.Path (Async (List file.Path)))
   (let [! async.monad]
     (|> path
-        (of fs sub_directories)
-        (of ! each (|>> (try.else (list))
+        (by fs sub_directories)
+        (by ! each (|>> (try.else (list))
                         (monad.each ! (targets fs))))
-        (of ! conjoint)
-        (of ! each (|>> list.together (list.partial path))))))
+        (by ! conjoint)
+        (by ! each (|>> list.together (list.partial path))))))
 
 (the .public delay
   Natural
@@ -62,14 +62,14 @@
                        (its ///.#sources)
                        set.list
                        (monad.each ! (..targets fs))
-                       (of ! each list.together))]
+                       (by ! each list.together))]
           (do [! ///action.monad]
-            [_ (monad.each ! (of watcher start watch.modification) targets)
+            [_ (monad.each ! (by watcher start watch.modification) targets)
              _ ]
             (loop (again [_ []])
               (do !
                 [_ (..pause delay)
-                 events (of watcher poll [])]
+                 events (by watcher poll [])]
                 (when events
                   {.#Item _}
                   (do !
diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux
index 3712fd215b..358df3c1ee 100644
--- a/stdlib/source/program/aedifex/command/build.lux
+++ b/stdlib/source/program/aedifex/command/build.lux
@@ -126,7 +126,7 @@
 
 (the (path fs home dependency)
   (for_any (_ !) (-> (file.System !) Path Dependency Path))
-  (let [/ (of fs separator)
+  (let [/ (by fs separator)
         artifact (its ///dependency.#artifact dependency)]
     (|> artifact
         (///local.uri (its ///artifact.#version artifact))
@@ -184,7 +184,7 @@
                          version (its ///artifact.#version artifact)]
                      (when (dictionary.value identity uniques)
                        {try.#Success [current_version current_path]}
-                       (if (of version_order < version current_version)
+                       (if (by version_order < version current_version)
                          (dictionary.has identity [version dependency] uniques)
                          uniques)
                        
@@ -218,7 +218,7 @@
      (let [[read! write!] (is [(Async (Try Any))
                                (async.Resolver (Try Any))]
                               (async.async []))
-           _ (|> (of process  [])
+           _ (|> (by process  [])
                  (async.upon! (function (again ?line)
                                 (when ?line
                                   {try.#Failure error}
@@ -235,7 +235,7 @@
 
                                                    {try.#Success _}
                                                    (async.upon! again
-                                                                (of process  []))))
+                                                                (by process  []))))
                                                (is (Async (Try Any))
                                                    (console.write_line line console))))))
                  io.value)]
@@ -327,8 +327,8 @@
 
       {.#Some [program_module program_definition]}
       (do async.monad
-        [.let [home (of environment home)
-               working_directory (of environment directory)]
+        [.let [home (by environment home)
+               working_directory (by environment directory)]
          environment (environment.environment async.monad environment)]
         (do ///action.monad
           [[resolution lux] (async#in (..lux resolution (its ///.#lux profile)))
@@ -353,7 +353,7 @@
                              [#Python ///.#java "program.py"]
                              [#Lua ///.#java "program.lua"]
                              [#Ruby ///.#java (file.rooted fs "program" ruby_packager.main_file)]))))
-                 / (of fs separator)
+                 / (by fs separator)
                  cache_directory (%.message working_directory / (its ///.#target profile))]
            _ (is (Async (Try Any))
                  (console.write_line ..start console))
@@ -369,13 +369,13 @@
                                                         _ (list#composite (..singular "--module" program_module)
                                                                           (..singular "--program" program_definition)))
                                                       (..singular "--configuration" (configuration.injection (its ///.#configuration profile)))))]
-           process (of shell execute [(dictionary.composite environment command_environment)
+           process (by shell execute [(dictionary.composite environment command_environment)
                                       working_directory
                                       command
                                       full_parameters])
            _ (..log_output! console process)
            _ (..log_error! console process)
-           exit (of process await [])
+           exit (by process await [])
            _ (is (Async (Try Any))
                  (console.write_line (if (i.= shell.normal exit)
                                        ..success
diff --git a/stdlib/source/program/aedifex/command/clean.lux b/stdlib/source/program/aedifex/command/clean.lux
index 16234150e8..4889602035 100644
--- a/stdlib/source/program/aedifex/command/clean.lux
+++ b/stdlib/source/program/aedifex/command/clean.lux
@@ -25,9 +25,9 @@
   (-> (file.System Async) Path (Async (Try Any)))
   (do [! ///action.monad]
     [_ (|> root
-           (of fs directory_files)
-           (of ! each (monad.each ! (of fs delete)))
-           (of ! conjoint))]
+           (by fs directory_files)
+           (by ! each (monad.each ! (by fs delete)))
+           (by ! conjoint))]
     (in [])))
 
 (the .public success
@@ -38,16 +38,16 @@
   (-> (Console Async) (file.System Async) (Command Any))
   (do [! async.monad]
     [.let [target (its ///.#target profile)]
-     ? (of fs directory? target)
+     ? (by fs directory? target)
      _ (let [! ///action.monad]
          (if ?
            (loop (again [root target])
              (do !
                [_ (..clean_files! fs root)
                 _ (|> root
-                      (of fs sub_directories)
-                      (of ! each (monad.each ! again))
-                      (of ! conjoint))]
-               (of fs delete root)))
-           (of ! in [])))]
+                      (by fs sub_directories)
+                      (by ! each (monad.each ! again))
+                      (by ! conjoint))]
+               (by fs delete root)))
+           (by ! in [])))]
     (console.write_line (..success target) console)))
diff --git a/stdlib/source/program/aedifex/command/deploy/release.lux b/stdlib/source/program/aedifex/command/deploy/release.lux
index 3602124667..654801cc6f 100644
--- a/stdlib/source/program/aedifex/command/deploy/release.lux
+++ b/stdlib/source/program/aedifex/command/deploy/release.lux
@@ -75,7 +75,7 @@
 
 (the windows?
   (IO (Try Bit))
-  (of (try.with io.monad) each
+  (by (try.with io.monad) each
       (|>> (java/lang/String::toLowerCase []) ffi.of_string (text.starts_with? "windows"))
       (java/lang/System::getProperty [(ffi.as_string "os.name")])))
 
@@ -123,9 +123,9 @@
   (-> (Environment Async) (Repository Async) (file.System Async) Artifact (Async (Try Any)))
   (do (try.with async.monad)
     [.let [$artifact (////artifact.uri (its ////artifact.#version artifact) artifact)]
-     _ (of local upload (..jar $artifact) ..dummy_jar)
-     _ (of local upload (..javadoc $artifact) ..dummy_jar)
-     _ (of local upload (..sources $artifact) ..dummy_jar)]
+     _ (by local upload (..jar $artifact) ..dummy_jar)
+     _ (by local upload (..javadoc $artifact) ..dummy_jar)
+     _ (by local upload (..sources $artifact) ..dummy_jar)]
     (in [])))
 
 (the (signed it)
@@ -135,8 +135,8 @@
 (the (release_unsigned_artifact! local remote uri)
   (-> (Repository Async) (Repository Async) Text (Async (Try Binary)))
   (do [! ////action.monad]
-    [it (of local download uri)
-     _ (of remote upload uri it)]
+    [it (by local download uri)
+     _ (by remote upload uri it)]
     (in it)))
 
 (the (release_signed_artifact! local remote [artifact signature])
@@ -145,14 +145,14 @@
     [it (..release_unsigned_artifact! local remote artifact)
      _ (|> it
            ////hash.md5
-           (of ////hash.md5_format injection)
-           (of utf8.format injection)
-           (of remote upload (..md5 artifact)))
+           (by ////hash.md5_format injection)
+           (by utf8.format injection)
+           (by remote upload (..md5 artifact)))
      _ (|> it
            ////hash.sha1
-           (of ////hash.sha1_format injection)
-           (of utf8.format injection)
-           (of remote upload (..sha1 artifact)))
+           (by ////hash.sha1_format injection)
+           (by utf8.format injection)
+           (by remote upload (..sha1 artifact)))
      _ (..release_unsigned_artifact! local remote signature)]
     (in [])))
 
@@ -163,16 +163,16 @@
      _ (install_dummies! environment local fs artifact)
      .let [@root (////repository/local.root environment fs)
            $bundle (////artifact.bundle (its ////artifact.#version artifact) artifact)
-           / (of fs separator)
+           / (by fs separator)
            @local (%.message @root / $bundle)]
      windows? (async.future ..windows?)
      process (is (Async (Try (shell.Process Async)))
-                 (of shell execute [environment.empty @local
+                 (by shell execute [environment.empty @local
                                     (if windows?
                                       ["cmd" (list "/c" "for %file in (.\*) do gpg.exe -ab %file")]
                                       ["sh" (list "-c" "for file in *.*; do gpg -ab $file; done")])]))
      exit (is (Async (Try shell.Exit))
-              (of process await []))
+              (by process await []))
      .let [$artifact (////artifact.uri (its ////artifact.#version artifact) artifact)]
      _ (monad.each ! (release_signed_artifact! local remote)
                    (list (..signed (..pom $artifact))
diff --git a/stdlib/source/program/aedifex/command/deploy/snapshot.lux b/stdlib/source/program/aedifex/command/deploy/snapshot.lux
index 02b93e1b10..3a381b5adc 100644
--- a/stdlib/source/program/aedifex/command/deploy/snapshot.lux
+++ b/stdlib/source/program/aedifex/command/deploy/snapshot.lux
@@ -55,14 +55,14 @@
                  (its /.#sources)
                  set.list
                  (export.library fs)
-                 (of ! each (binary.value tar.injection)))
-     pom (of async.monad in (////pom.write profile))
+                 (by ! each (binary.value tar.injection)))
+     pom (by async.monad in (////pom.write profile))
      _ (////dependency/deployment.one
         remote
         [artifact ////artifact/type.lux_library]
         (let [pom_data (|> pom
-                           (of xml.format injection)
-                           (of utf8.format injection))]
+                           (by xml.format injection)
+                           (by utf8.format injection))]
           [////package.#origin {////repository/origin.#Remote ""}
            ////package.#library [library
                                  (////dependency/status.verified library)]
diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux
index 1c10e995ee..fec21fb131 100644
--- a/stdlib/source/program/aedifex/command/deps.lux
+++ b/stdlib/source/program/aedifex/command/deps.lux
@@ -61,19 +61,19 @@
                   (///dependency/deployment.all local))
        _ (console.write_line (exception.report
                               (list ["Local successes" (|> local_successes
-                                                           (list.sorted (of ///dependency.order <))
+                                                           (list.sorted (by ///dependency.order <))
                                                            (exception.listing ..injection))]
                                     ["Local failures" (|> local_failures
-                                                          (list.sorted (of ///dependency.order <))
+                                                          (list.sorted (by ///dependency.order <))
                                                           (exception.listing ..injection))]
                                     ["Remote successes" (|> remote_successes
                                                             (set.of_list ///dependency.hash)
                                                             (set.difference (set.of_list ///dependency.hash local_successes))
                                                             set.list
-                                                            (list.sorted (of ///dependency.order <))
+                                                            (list.sorted (by ///dependency.order <))
                                                             (exception.listing ..injection))]
                                     ["Remote failures" (|> remote_failures
-                                                           (list.sorted (of ///dependency.order <))
+                                                           (list.sorted (by ///dependency.order <))
                                                            (exception.listing ..injection))]))
                              console)]
       (in resolution))))
diff --git a/stdlib/source/program/aedifex/command/install.lux b/stdlib/source/program/aedifex/command/install.lux
index 157fdb8868..9bc2646e84 100644
--- a/stdlib/source/program/aedifex/command/install.lux
+++ b/stdlib/source/program/aedifex/command/install.lux
@@ -64,12 +64,12 @@
                    (export.library fs))
        pom (|> profile
                ///pom.write
-               (of async.monad in))
+               (by async.monad in))
        _ (///dependency/deployment.one local
                                        [identity ///artifact/type.lux_library]
                                        (let [pom_data (|> pom
-                                                          (of xml.format injection)
-                                                          (of utf8.format injection))]
+                                                          (by xml.format injection)
+                                                          (by utf8.format injection))]
                                          [///package.#origin {///origin.#Local ""}
                                           ///package.#library (let [library (binary.value tar.injection package)]
                                                                 [library (///dependency/status.verified library)])
diff --git a/stdlib/source/program/aedifex/command/pom.lux b/stdlib/source/program/aedifex/command/pom.lux
index d30fcd0b91..df33aea62c 100644
--- a/stdlib/source/program/aedifex/command/pom.lux
+++ b/stdlib/source/program/aedifex/command/pom.lux
@@ -32,9 +32,9 @@
   (-> (Console Async) (file.System Async) (Command Any))
   (do ///action.monad
     [content (|> (///pom.write profile)
-                 (try#each (|>> (of xml.format injection)
-                                (of utf8.format injection)))
+                 (try#each (|>> (by xml.format injection)
+                                (by utf8.format injection)))
                  async#in)
-     _ (of fs write ///pom.file content)]
+     _ (by fs write ///pom.file content)]
     (is (Async (Try Any))
         (console.write_line ..success console))))
diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux
index f038df58d9..8cf9d5eaa2 100644
--- a/stdlib/source/program/aedifex/command/test.lux
+++ b/stdlib/source/program/aedifex/command/test.lux
@@ -41,8 +41,8 @@
 (the .public (do! console environment fs shell resolution profile)
   (-> (Console Async) (Environment Async) (file.System Async) (Shell Async) Resolution (Command [Exit Any]))
   (do async.monad
-    [.let [home (of environment home)
-           working_directory (of environment directory)]
+    [.let [home (by environment home)
+           working_directory (by environment directory)]
      environment_vars (environment.environment async.monad environment)]
     (do [! ///action.monad]
       [[build_exit compiler program] (//build.do! console environment fs shell resolution
@@ -67,13 +67,13 @@
                                                                                 [//build.#Python ///.#python]
                                                                                 [//build.#Lua ///.#lua]
                                                                                 [//build.#Ruby ///.#ruby]))))]
-           process (of shell execute [(dictionary.composite environment_vars command_environment)
+           process (by shell execute [(dictionary.composite environment_vars command_environment)
                                       working_directory
                                       test_command
                                       test_parameters])
            _ (//build.log_output! console process)
            _ (//build.log_error! console process)
-           exit (of process await [])
+           exit (by process await [])
            _ (is (Async (Try Any))
                  (console.write_line (if (i.= shell.normal exit)
                                        ..success
diff --git a/stdlib/source/program/aedifex/dependency.lux b/stdlib/source/program/aedifex/dependency.lux
index de1426f5d7..978b16f20b 100644
--- a/stdlib/source/program/aedifex/dependency.lux
+++ b/stdlib/source/program/aedifex/dependency.lux
@@ -29,7 +29,7 @@
 
 (the .public equivalence
   (Equivalence Dependency)
-  (of hash equivalence))
+  (by hash equivalence))
 
 (alias [=]
        ..equivalence)
diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux
index f12c749340..953e6deed9 100644
--- a/stdlib/source/program/aedifex/dependency/deployment.lux
+++ b/stdlib/source/program/aedifex/dependency/deployment.lux
@@ -56,11 +56,11 @@
                               (Async (Try Any))))
                         (function (_ format extension hash)
                           (|> hash
-                              (of format injection)
-                              (of utf8.format injection)
-                              (of repository upload (%.message artifact extension)))))]
+                              (by format injection)
+                              (by utf8.format injection)
+                              (by repository upload (%.message artifact extension)))))]
     (do [! (try.with async.monad)]
-      [_ (of repository upload artifact data)]
+      [_ (by repository upload artifact data)]
       (when status
         {///dependency/status.#Unverified}
         (in [])
@@ -140,7 +140,7 @@
               status]))
 
        snapshot (///metadata/snapshot.read repository artifact)
-       snapshot (of ! in (..update_snapshot [artifact type] now snapshot))
+       snapshot (by ! in (..update_snapshot [artifact type] now snapshot))
        _ (///metadata/snapshot.write repository artifact snapshot)
        project (///metadata/artifact.read repository artifact)
        _ (|> project
@@ -155,4 +155,4 @@
     (|> (dictionary.entries resolution)
         (monad.each ! (function (_ [dependency package])
                         (..one repository dependency package)))
-        (of ! each (set.of_list ///artifact.hash)))))
+        (by ! each (set.of_list ///artifact.hash)))))
diff --git a/stdlib/source/program/aedifex/dependency/resolution.lux b/stdlib/source/program/aedifex/dependency/resolution.lux
index d5ad1ba8b8..a6da6f19ae 100644
--- a/stdlib/source/program/aedifex/dependency/resolution.lux
+++ b/stdlib/source/program/aedifex/dependency/resolution.lux
@@ -86,19 +86,19 @@
         (Exception [Artifact Extension Text])
         (Async (Try (Maybe (Hash h))))))
   (do async.monad
-    [?actual (of repository download (///repository/remote.uri version_template artifact extension))]
+    [?actual (by repository download (///repository/remote.uri version_template artifact extension))]
     (when ?actual
       {try.#Success actual}
       (in (do [! try.monad]
-            [output (of ! each (|>> ffi.as_string (java/lang/String::trim []) ffi.of_string)
-                        (of utf8.format projection actual))
+            [output (by ! each (|>> ffi.as_string (java/lang/String::trim []) ffi.of_string)
+                        (by utf8.format projection actual))
              actual (|> output
                         (text.all_split_by " ")
                         list.head
                         (try.else output)
-                        (of format projection))
+                        (by format projection))
              _ (exception.assertion exception [artifact extension output]
-                                    (of ///hash.equivalence = (hash library) actual))]
+                                    (by ///hash.equivalence = (hash library) actual))]
             (in {.#Some actual})))
       
       {try.#Failure error}
@@ -107,7 +107,7 @@
 (the (hashed repository version_template artifact extension)
   (-> (Repository Async) Version Artifact Extension (Async (Try [Binary Status])))
   (do (try.with async.monad)
-    [data (of repository download (///repository/remote.uri version_template artifact extension))
+    [data (by repository download (///repository/remote.uri version_template artifact extension))
      ?sha1 (..verified_hash data
                             repository version_template artifact (%.message extension ///artifact/extension.sha1)
                             ///hash.sha1 ///hash.sha1_format ..sha1_does_not_match)
@@ -139,10 +139,10 @@
              artifact (has ///artifact.#version artifact_version artifact)]
        [pom_data pom_status] (..hashed repository version_template artifact ///artifact/extension.pom)
        library_&_status (..hashed repository version_template artifact extension)]
-      (of async.monad in
+      (by async.monad in
           (do try.monad
-            [pom (of utf8.format projection pom_data)
-             pom (of xml.format projection pom)
+            [pom (by utf8.format projection pom_data)
+             pom (by xml.format projection pom)
              profile (.value ///pom.projection (list pom))]
             (in [///package.#origin {///repository/origin.#Remote ""}
                  ///package.#library library_&_status
@@ -171,11 +171,11 @@
 (template.with [   ]
   [(the ( console repository artifact)
      (-> (Console Async) (Repository Async) Artifact (Async (Try Any)))
-     (of console write (%.message "["  "]"
+     (by console write (%.message "["  "]"
                                   " " 
                                   " " (///artifact.injection artifact)
                                   " " 
-                                  " " (%.text (of repository description))
+                                  " " (%.text (by repository description))
                                   text.new_line)))]
 
   ["?" announce_fetching "Fetching" "from"]
@@ -189,7 +189,7 @@
     {.#End}
     (|> dependency
         (exception.except ..cannot_resolve)
-        (of async.monad in))
+        (by async.monad in))
 
     {.#Item repository alternatives}
     (do [! async.monad]
@@ -218,7 +218,7 @@
                 resolution resolution])
     (when dependencies
       {.#End}
-      (of async.monad in
+      (by async.monad in
           [successes failures resolution])
 
       {.#Item head tail}
@@ -241,7 +241,7 @@
               {try.#Success package}
               (do !
                 [.let [redundant? (is (Predicate Dependency)
-                                      (predicate.or (of //.equivalence = head)
+                                      (predicate.or (by //.equivalence = head)
                                                     (dictionary.key? resolution)))
                        sub_dependencies (|> package
                                             ///package.dependencies
diff --git a/stdlib/source/program/aedifex/hash.lux b/stdlib/source/program/aedifex/hash.lux
index 2c2f18be0c..e401a5c956 100644
--- a/stdlib/source/program/aedifex/hash.lux
+++ b/stdlib/source/program/aedifex/hash.lux
@@ -62,7 +62,7 @@
   (the injection
     (Injection Binary)
     (binary.mix (function (_ byte representation)
-                  (let [hex (of n.hex injection byte)
+                  (let [hex (by n.hex injection byte)
                         hex (when (text.size hex)
                               1 (%.message "0" hex)
                               _ hex)]
@@ -135,7 +135,7 @@
             (when (text.split_at ..hex_per_chunk input)
               {.#Some [head tail]}
               (do try.monad
-                [head (of n.hex projection head)
+                [head (by n.hex projection head)
                  output (binary.has_64! index head output)]
                 (again tail (++ chunk) output))
               
@@ -147,7 +147,7 @@
                     (,, (template.with [ ]
                           [
                            (do try.monad
-                             [head (of n.hex projection input)
+                             [head (by n.hex projection input)
                               output ( index head output)]
                              (constructor output))]
 
@@ -173,7 +173,7 @@
       (Equivalence (Hash h)))
     (implementation
      (the (= expected actual)
-       (of binary.equivalence =
+       (by binary.equivalence =
            (nominal.representation expected)
            (nominal.representation actual)))))
 
diff --git a/stdlib/source/program/aedifex/input.lux b/stdlib/source/program/aedifex/input.lux
index 2f12bc4925..184cb9171f 100644
--- a/stdlib/source/program/aedifex/input.lux
+++ b/stdlib/source/program/aedifex/input.lux
@@ -49,7 +49,7 @@
 (the project_projection
   (-> Binary (Try Project))
   (|>> (pipe.do try.monad
-         [(of utf8.format projection)]
+         [(by utf8.format projection)]
          [..lux_projection]
          [(list) (.value //projection.project)])))
 
@@ -58,8 +58,8 @@
     (-> (Monad !) (file.System !) (List Name)
         (! (Try Profile))))
   (|> //project.file
-      (of fs read)
-      (of monad each
+      (by fs read)
+      (by monad each
           (function (_ it)
             (do [! try.monad]
               [it it
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index b98935f336..902c6853cc 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -187,13 +187,13 @@
 (the .public (read repository artifact)
   (-> (Repository Async) Artifact (Async (Try Metadata)))
   (do async.monad
-    [project (of repository download (..uri artifact))]
+    [project (by repository download (..uri artifact))]
     (when project
       {try.#Success binary_metadata}
       (in (|> binary_metadata
               (pipe.do try.monad
-                [(of utf8.format projection)]
-                [(of xml.format projection)]
+                [(by utf8.format projection)]
+                [(by xml.format projection)]
                 [list (.value ..projection)])))
       
       {try.#Failure error}
@@ -208,6 +208,6 @@
   (-> (Repository Async) Artifact Metadata (Async (Try Any)))
   (|> metadata
       ..injection
-      (of xml.format injection)
-      (of utf8.format injection)
-      (of repository upload (..uri artifact))))
+      (by xml.format injection)
+      (by utf8.format injection)
+      (by repository upload (..uri artifact))))
diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux
index 8e5e39f83c..6163a668a5 100644
--- a/stdlib/source/program/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/program/aedifex/metadata/snapshot.lux
@@ -101,7 +101,7 @@
                                                        ///artifact/snapshot/version.#value version
                                                        ///artifact/snapshot/version.#updated ///artifact/time.epoch]]
                       (|> (.somewhere ///artifact/versioning.projection)
-                          (of ! each
+                          (by ! each
                               (revised ///artifact/versioning.#versions
                                        (is (-> (List ///artifact/snapshot/version.Version)
                                                (List ///artifact/snapshot/version.Version))
@@ -136,13 +136,13 @@
 (the .public (read repository artifact)
   (-> (Repository Async) Artifact (Async (Try Metadata)))
   (do async.monad
-    [project (of repository download (..uri artifact))]
+    [project (by repository download (..uri artifact))]
     (when project
       {try.#Success project}
       (in (|> project
               (pipe.do try.monad
-                [(of utf8.format projection)]
-                [(of xml.format projection)]
+                [(by utf8.format projection)]
+                [(by xml.format projection)]
                 [list (.value ..projection)])))
       
       {try.#Failure error}
@@ -154,6 +154,6 @@
   (-> (Repository Async) Artifact Metadata (Async (Try Any)))
   (|> metadata
       ..injection
-      (of xml.format injection)
-      (of utf8.format injection)
-      (of repository upload (..uri artifact))))
+      (by xml.format injection)
+      (by utf8.format injection)
+      (by repository upload (..uri artifact))))
diff --git a/stdlib/source/program/aedifex/package.lux b/stdlib/source/program/aedifex/package.lux
index e19426d510..af8d76961f 100644
--- a/stdlib/source/program/aedifex/package.lux
+++ b/stdlib/source/program/aedifex/package.lux
@@ -60,8 +60,8 @@
              {//status.#Verified (//hash.sha1 library)
                                  (//hash.md5 library)}]
    #pom (let [binary_pom (|> pom
-                             (of xml.format injection)
-                             (of utf8.format injection))]
+                             (by xml.format injection)
+                             (by utf8.format injection))]
           [pom
            binary_pom
            {//status.#Verified (//hash.sha1 binary_pom)
diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux
index 90182152b2..61f0beaeb0 100644
--- a/stdlib/source/program/aedifex/pom.lux
+++ b/stdlib/source/program/aedifex/pom.lux
@@ -180,13 +180,13 @@
   (do [! <>.monad]
     [tag .tag]
     (<| (.node tag)
-        (of ! each (|>> [tag]))
+        (by ! each (|>> [tag]))
         .text)))
 
 (the (dependency_projection own_version parent_version)
   (-> Text Text (Projection Dependency))
   (do [! <>.monad]
-    [properties (of ! each (dictionary.of_list symbol.hash)
+    [properties (by ! each (dictionary.of_list symbol.hash)
                     (<| (.node ["" ..dependency_tag])
                         (<>.some ..property_projection)))]
     (<| <>.of_try
@@ -245,7 +245,7 @@
                             .somewhere
                             (<>.else (list)))
            _ (<>.some .any)]
-          (in (|> (of /.monoid identity)
+          (in (|> (by /.monoid identity)
                   (revised /.#dependencies (function (_ empty)
                                              (list#mix set.has empty dependencies)))
                   (revised /.#repositories (function (_ empty)
diff --git a/stdlib/source/program/aedifex/project.lux b/stdlib/source/program/aedifex/project.lux
index 08dba32d99..9aa3c3fab1 100644
--- a/stdlib/source/program/aedifex/project.lux
+++ b/stdlib/source/program/aedifex/project.lux
@@ -45,7 +45,7 @@
      (dictionary.empty text.hash))
 
    (the composite
-     (dictionary.composite_with (of //.monoid composite)))))
+     (dictionary.composite_with (by //.monoid composite)))))
 
 (exception.the .public (unknown_profile name)
   (Exception Name)
@@ -72,7 +72,7 @@
         [parents (monad.each ! (profile' (set.has name lineage) project)
                              (its //.#parents profile))]
         (in (list#mix (function (_ parent child)
-                        (of //.monoid composite child parent))
+                        (by //.monoid composite child parent))
                       (has //.#parents (list) profile)
                       parents))))
     
diff --git a/stdlib/source/program/aedifex/projection.lux b/stdlib/source/program/aedifex/projection.lux
index 8cf12b3a6b..cae8e78f57 100644
--- a/stdlib/source/program/aedifex/projection.lux
+++ b/stdlib/source/program/aedifex/projection.lux
@@ -85,7 +85,7 @@
 (the license
   (Projection /.License)
   (do [! <>.monad]
-    [input (of ! each
+    [input (by ! each
                (dictionary.of_list text.hash)
                (.tuple (<>.some (<>.and .text
                                               .any))))]
@@ -100,7 +100,7 @@
 (the organization
   (Projection /.Organization)
   (do [! <>.monad]
-    [input (of ! each
+    [input (by ! each
                (dictionary.of_list text.hash)
                (.tuple (<>.some (<>.and .text
                                               .any))))]
@@ -111,7 +111,7 @@
 (the developer
   (Projection /.Developer)
   (do [! <>.monad]
-    [input (of ! each
+    [input (by ! each
                (dictionary.of_list text.hash)
                (.tuple (<>.some (<>.and .text
                                               .any))))]
@@ -128,7 +128,7 @@
 (the info
   (Projection /.Info)
   (do [! <>.monad]
-    [input (of ! each
+    [input (by ! each
                (dictionary.of_list text.hash)
                (.tuple (<>.some (<>.and .text
                                               .any))))]
@@ -205,7 +205,7 @@
 (the profile
   (Projection /.Profile)
   (do [! <>.monad]
-    [input (of ! each
+    [input (by ! each
                (dictionary.of_list text.hash)
                (.tuple (<>.some (<>.and .text
                                               .any))))
@@ -220,12 +220,12 @@
                       (..singular input "info" ..info)))
            ^repositories (is (Projection (Set //repository.Address))
                              (|> (..plural input "repositories" ..repository)
-                                 (of ! each (set.of_list text.hash))
+                                 (by ! each (set.of_list text.hash))
                                  (<>.else (set.empty text.hash))
-                                 (of ! each (set.has /.default_repository))))
+                                 (by ! each (set.has /.default_repository))))
            ^dependencies (is (Projection (Set //dependency.Dependency))
                              (|> (..plural input "dependencies" ..dependency)
-                                 (of ! each (set.of_list //dependency.hash))
+                                 (by ! each (set.of_list //dependency.hash))
                                  (<>.else (set.empty //dependency.hash))))
            ^lux (|> ..dependency
                     (..singular input //injection.lux_compiler_label)
@@ -235,7 +235,7 @@
                           (<>.else (list)))
            ^sources (is (Projection (Set /.Source))
                         (|> (..plural input "sources" ..source)
-                            (of ! each (set.of_list text.hash))
+                            (by ! each (set.of_list text.hash))
                             (<>.else (set.of_list text.hash (list /.default_source)))))
            ^target (is (Projection /.Target)
                        (|> ..target
@@ -248,7 +248,7 @@
                      (<>.maybe
                       (..singular input "test" ..program)))
            ^deploy_repositories (is (Projection (Dictionary Text //repository.Address))
-                                    (<| (of ! each (dictionary.of_list text.hash))
+                                    (<| (by ! each (dictionary.of_list text.hash))
                                         (<>.else (list))
                                         (..plural input "deploy_repositories" ..deploy_repository)))
            ^configuration (is (Projection (property.List Text))
@@ -292,7 +292,7 @@
 
 (the .public project
   (Projection Project)
-  (of <>.monad each
+  (by <>.monad each
       (dictionary.of_list text.hash)
       (.tuple (<>.some (<>.and .text
                                      ..profile)))))
diff --git a/stdlib/source/program/aedifex/repository.lux b/stdlib/source/program/aedifex/repository.lux
index 7ba4c79c46..0151d52828 100644
--- a/stdlib/source/program/aedifex/repository.lux
+++ b/stdlib/source/program/aedifex/repository.lux
@@ -31,12 +31,12 @@
   (-> (Repository IO) (Repository Async))
   (implementation
    (the description
-     (of repository description))
+     (by repository description))
    (the (download uri)
-     (async.future (of repository download uri)))
+     (async.future (by repository download uri)))
 
    (the (upload uri content)
-     (async.future (of repository upload uri content)))
+     (async.future (by repository upload uri content)))
    ))
 
 (every .public (Mock s)
@@ -55,13 +55,13 @@
   (let [state (stm.var init)]
     (implementation
      (the description
-       (of mock the_description))
+       (by mock the_description))
      
      (the (download uri)
        (stm.commit!
         (do [! stm.monad]
           [|state| (stm.read state)]
-          (when (of mock on_download uri |state|)
+          (when (by mock on_download uri |state|)
             {try.#Success [|state| output]}
             (do !
               [_ (stm.write |state| state)]
@@ -74,7 +74,7 @@
        (stm.commit!
         (do [! stm.monad]
           [|state| (stm.read state)]
-          (when (of mock on_upload uri content |state|)
+          (when (by mock on_upload uri content |state|)
             {try.#Success |state|}
             (do !
               [_ (stm.write |state| state)]
diff --git a/stdlib/source/program/aedifex/repository/identity.lux b/stdlib/source/program/aedifex/repository/identity.lux
index 5725a8a977..2d8b98b235 100644
--- a/stdlib/source/program/aedifex/repository/identity.lux
+++ b/stdlib/source/program/aedifex/repository/identity.lux
@@ -45,7 +45,7 @@
 
 (the .public (basic_auth user password)
   (-> User Password Text)
-  (let [credentials (of utf8.format injection (%.message user ":" password))]
+  (let [credentials (by utf8.format injection (%.message user ":" password))]
     (|> (java/util/Base64::getEncoder [])
         (java/util/Base64$Encoder::encodeToString [credentials])
         ffi.of_string
diff --git a/stdlib/source/program/aedifex/repository/local.lux b/stdlib/source/program/aedifex/repository/local.lux
index a4695b1438..c8117acf46 100644
--- a/stdlib/source/program/aedifex/repository/local.lux
+++ b/stdlib/source/program/aedifex/repository/local.lux
@@ -26,10 +26,10 @@
 
 (the .public (root environment fs)
   (-> (Environment Async) (file.System Async) file.Path)
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (|> ///local.repository
         (text.replaced path.separator /)
-        (%.message (of environment home) /))))
+        (%.message (by environment home) /))))
 
 (the (path /)
   (-> Text (-> URI file.Path))
@@ -37,7 +37,7 @@
 
 (the (absolute_path environment fs)
   (-> (Environment Async) (file.System Async) (-> URI file.Path))
-  (let [/ (of fs separator)]
+  (let [/ (by fs separator)]
     (|>> ///metadata.local_uri
          (..path /)
          (%.message (..root environment fs) /))))
@@ -50,12 +50,12 @@
 
    (the download
      (|>> (..absolute_path environment fs)
-          (of fs read)))
+          (by fs read)))
 
    (the (upload uri content)
      (do [! async.monad]
        [.let [absolute_path (..absolute_path environment fs uri)]
-        ? (of fs file? absolute_path)
+        ? (by fs file? absolute_path)
         _ (is (Async (Try Any))
               (if ?
                 (in {try.#Success []})
@@ -65,4 +65,4 @@
 
                   _
                   (in {try.#Success []}))))]
-       (of fs write absolute_path content)))))
+       (by fs write absolute_path content)))))
diff --git a/stdlib/source/program/aedifex/repository/remote.lux b/stdlib/source/program/aedifex/repository/remote.lux
index d9847cf5df..c44c7308d5 100644
--- a/stdlib/source/program/aedifex/repository/remote.lux
+++ b/stdlib/source/program/aedifex/repository/remote.lux
@@ -77,12 +77,12 @@
                                        http))]
        (when status
          http/status.ok
-         (of ! each product.right ((its @http.#body message) {.#None}))
+         (by ! each product.right ((its @http.#body message) {.#None}))
          
          _
          (do !
            [_ ((its @http.#body message) {.#Some 0})]
-           (of io.monad in (exception.except ..download_failure [(%.message address uri) status]))))))
+           (by io.monad in (exception.except ..download_failure [(%.message address uri) status]))))))
 
    (the (upload uri content)
      (do (try.with io.monad)
@@ -103,5 +103,5 @@
          (in [])
          
          _
-         (of io.monad in (exception.except ..upload_failure [(%.message address uri) status])))))
+         (by io.monad in (exception.except ..upload_failure [(%.message address uri) status])))))
    ))
diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux
index c708a466e8..ded0052b0b 100644
--- a/stdlib/source/program/compositor.lux
+++ b/stdlib/source/program/compositor.lux
@@ -93,7 +93,7 @@
                               (console.write_line report console)))
                     (is (Async (Try Any))
                         )))]
-          (io.value (of world/environment.default exit +1))))
+          (io.value (by world/environment.default exit +1))))
 
       {try.#Success output}
       (in output))))
@@ -120,18 +120,18 @@
       {try.#Success content}
       (when content
         {.#Left content}
-        (of fs write package content)
+        (by fs write package content)
         
         {.#Right content}
         (do [! (try.with async.monad)]
-          [_ (of fs make_directory package)
+          [_ (by fs make_directory package)
            _ (monad.each ! (function (_ [name content])
-                             (of fs write (file.rooted fs package name) content))
+                             (by fs write (file.rooted fs package name) content))
                          content)]
           (in [])))
       
       {try.#Failure error}
-      (of async.monad in {try.#Failure error}))))
+      (by async.monad in {try.#Failure error}))))
 
 (the (load_host_dependencies fs host_dependencies)
   (-> (file.System Async) (List file.Path)
@@ -147,7 +147,7 @@
 
         {.#Item head tail}
         (do !
-          [content (of fs read head)]
+          [content (by fs read head)]
           (again tail
                  (dictionary.has head content output)))))))
 
@@ -156,12 +156,12 @@
       (file.System Async))
   (`` (implementation
        (the separator
-         (of host separator))
+         (by host separator))
        (,, (template.with []
              [(the ( path)
                 (do async.monad
-                  [?/0 (of cache  path)
-                   ?/1 (of host  path)]
+                  [?/0 (by cache  path)
+                   ?/1 (by host  path)]
                   (in (or ?/0 ?/1))))]
 
              [file?]
@@ -169,7 +169,7 @@
              ))
        (,, (template.with []
              [(the 
-                (of cache ))]
+                (by cache ))]
 
              [make_directory]
              [directory_files]
@@ -182,16 +182,16 @@
              ))
        (the (read path)
          (do async.monad
-           [it (of cache read path)]
+           [it (by cache read path)]
            (when it
              {try.#Failure _}
-             (of host read path)
+             (by host read path)
              
              _
              (in it))))
        (,, (template.with []
              [(the 
-                (of cache ))]
+                (by cache ))]
              
              [modify]
              [write]
@@ -231,7 +231,7 @@
   (-> (file.System Async) file.Path
       (Action tar.Entry))
   (do async.monad
-    [content (of fs read path)]
+    [content (by fs read path)]
     (in (do try.monad
           [content content
            path (tar.path path)
@@ -243,8 +243,8 @@
       (Action Tar))
   (loop (again [root cache.path])
     (do [! ..monad]
-      [files (of fs directory_files root)
-       subs (of fs sub_directories root)
+      [files (by fs directory_files root)
+       subs (by fs sub_directories root)
        files (monad.each ! (cache_tar_entry fs) files)
        subs (monad.each ! again subs)]
       (in (list#mix sequence#composite
@@ -255,7 +255,7 @@
   (-> (file.System Async) Context
       file.Path)
   (%.message (its context.#target context)
-             (of fs separator)
+             (by fs separator)
              (its context.#host context)
              file/extension.tape_archive))
 
@@ -264,7 +264,7 @@
       [file.Path file.Path])
   (<| maybe.trusted
       (do maybe.monad
-        [.let [/ (of fs separator)]
+        [.let [/ (by fs separator)]
          @ (text.last_index / full_path)
          [directory file] (text.split_at @ full_path)]
         (in [directory (text.replaced_once / "" file)]))))
@@ -274,14 +274,14 @@
            (-> (file.System Async) (file.System Async) Context
                (Async (Try Any)))
            (do [! async.monad]
-             [tar (of host_fs read (cache_path host_fs context))]
+             [tar (by host_fs read (cache_path host_fs context))]
              (when tar
                {try.#Failure _}
                (in {try.#Success []})
 
                {try.#Success tar}
                (do [! (try.with !)]
-                 [tar (async#in (of tar.format projection tar))
+                 [tar (async#in (by tar.format projection tar))
                   _ (sequence#mix (function (_ entry then)
                                     (when entry
                                       {tar.#Normal [path instant mode ownership content]}
@@ -291,7 +291,7 @@
                                                directory (maybe.else path (file.parent cache_fs path))]
                                          _ (is (Async (Try Any))
                                                (file.make_directories async.monad cache_fs directory))]
-                                        (of cache_fs write path (tar.data content)))
+                                        (by cache_fs write path (tar.data content)))
 
                                       _
                                       then))
@@ -305,15 +305,15 @@
                  (Async (Try Any))))
            (do (try.with async.monad)
              [cache (cache_tar context (its platform.#file_system platform))]
-             (of original_fs write
+             (by original_fs write
                  (cache_path original_fs context)
-                 (of tar.format injection cache))))
+                 (by tar.format injection cache))))
 
          (the (with_caching it)
            (for_any (_ )
              (-> (Platform )
                  [(file.System Async) (Platform )]))
-           (let [cache_fs (file.mock (of (its platform.#file_system it) separator))
+           (let [cache_fs (file.mock (by (its platform.#file_system it) separator))
                  it (revised platform.#file_system (hybrid_fs cache_fs) it)]
              [cache_fs it]))
 
@@ -322,7 +322,7 @@
                (Async (Try Any)))
            (let [target_root (its context.#target context)]
              (do [! async.monad]
-               [? (of original_fs directory? target_root)]
+               [? (by original_fs directory? target_root)]
                (if ?
                  (in {try.#Success []})
                  (file.make_directories ! original_fs target_root)))))
@@ -429,7 +429,7 @@
                ...     (do !
                ...       [console (|> console.default
                ...                    async.future
-               ...                    (of ! each (|>> try.trusted console.async)))]
+               ...                    (by ! each (|>> try.trusted console.async)))]
                ...       (interpreter.value (try.with async.monad) console platform interpretation translation_bundle)))
                )))
          ))
diff --git a/stdlib/source/projection/lux/data/binary.lux b/stdlib/source/projection/lux/data/binary.lux
index 15d3b9d380..928e77eb4b 100644
--- a/stdlib/source/projection/lux/data/binary.lux
+++ b/stdlib/source/projection/lux/data/binary.lux
@@ -151,7 +151,7 @@
        (expansion.let [+' (template.spliced +)]
          (`` (when flag
                (,, (template.with [  ]
-                     [ (`` (of ! each (|>> {(,, (template.spliced ))}) ))]
+                     [ (`` (by ! each (|>> {(,, (template.spliced ))}) ))]
 
                      +'))
                
@@ -224,7 +224,7 @@
          (Projection Text)
          (do //.monad
            [utf8 ]
-           (//.of_try (of utf8.format projection utf8)))))]
+           (//.of_try (by utf8.format projection utf8)))))]
 
   [08 utf8_08 ..binary_08]
   [16 utf8_16 ..binary_16]
@@ -341,8 +341,8 @@
 
 (the .public instant
   (Projection Instant)
-  (of //.monad each instant.of_millis ..integer))
+  (by //.monad each instant.of_millis ..integer))
 
 (the .public duration
   (Projection Duration)
-  (of //.monad each duration.of_millis ..integer))
+  (by //.monad each duration.of_millis ..integer))
diff --git a/stdlib/source/projection/lux/data/format/json.lux b/stdlib/source/projection/lux/data/format/json.lux
index 9d9a577cb9..7a4128cc69 100644
--- a/stdlib/source/projection/lux/data/format/json.lux
+++ b/stdlib/source/projection/lux/data/format/json.lux
@@ -96,7 +96,7 @@
        [head ..any]
        (when head
          { value}
-         (in (of  = test value))
+         (in (by  = test value))
 
          _
          (//.failure (exception.error ..unexpected_value [head])))))
@@ -107,7 +107,7 @@
        [head ..any]
        (when head
          { value}
-         (if (of  = test value)
+         (if (by  = test value)
            (in [])
            (//.failure (exception.error ..value_mismatch [{ test} { value}])))
 
diff --git a/stdlib/source/projection/lux/data/format/xml.lux b/stdlib/source/projection/lux/data/format/xml.lux
index 287719a7ec..bc10664e39 100644
--- a/stdlib/source/projection/lux/data/format/xml.lux
+++ b/stdlib/source/projection/lux/data/format/xml.lux
@@ -42,7 +42,7 @@
 (exception.the .public (unconsumed_inputs inputs)
   (Exception (List XML))
   (exception.report
-   (list ["Inputs" (exception.listing (of /.format injection) inputs)])))
+   (list ["Inputs" (exception.listing (by /.format injection) inputs)])))
 
 (the (value' projection attrs documents)
   (for_any (_ of)
diff --git a/stdlib/source/projection/lux/data/text.lux b/stdlib/source/projection/lux/data/text.lux
index a2a8d60c5d..280adc21c1 100644
--- a/stdlib/source/projection/lux/data/text.lux
+++ b/stdlib/source/projection/lux/data/text.lux
@@ -339,7 +339,7 @@
 (template.with [  ]
   [(the .public ( projection)
      (-> (Projection Text) (Projection Text))
-     (|> projection  (of //.monad each /.together)))]
+     (|> projection  (by //.monad each /.together)))]
 
   [some //.some "some"]
   [many //.many "many"]
@@ -359,7 +359,7 @@
      (-> Natural (Projection Text) (Projection Text))
      (|> projection
          ( amount)
-         (of //.monad each /.together)))]
+         (by //.monad each /.together)))]
 
   [exactly  //.exactly  "exactly"]
   [at_most  //.at_most  "at most"]
@@ -381,7 +381,7 @@
   (-> Natural Natural (Projection Text) (Projection Text))
   (|> projection
       (//.between minimum additional)
-      (of //.monad each /.together)))
+      (by //.monad each /.together)))
 
 (the .public (between! minimum additional projection)
   (-> Natural Natural (Projection Slice) (Projection Slice))
diff --git a/stdlib/source/projection/lux/meta/code.lux b/stdlib/source/projection/lux/meta/code.lux
index 1a3e0464e3..f6d84d4fa1 100644
--- a/stdlib/source/projection/lux/meta/code.lux
+++ b/stdlib/source/projection/lux/meta/code.lux
@@ -89,7 +89,7 @@
               (function (_ tokens)
                 (when tokens
                   {.#Item [[_ { actual}] tokens']}
-                  (if (of  = expected actual)
+                  (if (by  = expected actual)
                     {try.#Success [tokens' []]}
                     )
 
@@ -134,7 +134,7 @@
            (function (_ tokens)
              (when tokens
                {.#Item [[_ {.#Symbol ["" actual]}] tokens']}
-               (if (of text.equivalence = expected actual)
+               (if (by text.equivalence = expected actual)
                  {try.#Success [tokens' []]}
                  )
 
@@ -163,7 +163,7 @@
                
                
                {.#Item [[_ {.#Symbol it}] tokens']}
-               (if (of symbol.equivalence = expected it)
+               (if (by symbol.equivalence = expected it)
                  {try.#Success [tokens' []]}
                  )
 
diff --git a/stdlib/source/projection/lux/meta/compiler/language/lux/analysis.lux b/stdlib/source/projection/lux/meta/compiler/language/lux/analysis.lux
index f1fcaef6ee..ea48d14f04 100644
--- a/stdlib/source/projection/lux/meta/compiler/language/lux/analysis.lux
+++ b/stdlib/source/projection/lux/meta/compiler/language/lux/analysis.lux
@@ -112,7 +112,7 @@
                 (function (_ input)
                   (when input
                     (list.partial ( @ actual) input')
-                    (if (of  = expected actual)
+                    (if (by  = expected actual)
                       {try.#Success [input' []]}
                       (exception.except ..cannot_parse input))
 
diff --git a/stdlib/source/projection/lux/meta/compiler/language/lux/synthesis.lux b/stdlib/source/projection/lux/meta/compiler/language/lux/synthesis.lux
index f46d920110..0e167bfada 100644
--- a/stdlib/source/projection/lux/meta/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/projection/lux/meta/compiler/language/lux/synthesis.lux
@@ -112,7 +112,7 @@
          (.function (_ input)
            (when input
              (list.partial ( @ actual) input')
-             (if (of  = expected actual)
+             (if (by  = expected actual)
                {try.#Success [input' []]}
                (exception.except ..cannot_parse input))
 
diff --git a/stdlib/source/projection/lux/meta/type.lux b/stdlib/source/projection/lux/meta/type.lux
index e526291f36..e491a105a0 100644
--- a/stdlib/source/projection/lux/meta/type.lux
+++ b/stdlib/source/projection/lux/meta/type.lux
@@ -204,7 +204,7 @@
   (for_any (_ a) (-> (Projection a) (Projection [Code (List Code) a])))
   (do [! //.monad]
     [headT any
-     funcI (of ! each dictionary.size ..env)
+     funcI (by ! each dictionary.size ..env)
      [num_args non_poly] (local (list headT) ..polymorphic')
      env ..env
      .let [funcL (label funcI)
diff --git a/stdlib/source/projection/lux/world/environment.lux b/stdlib/source/projection/lux/world/environment.lux
index 7f67c4f40e..65f006377c 100644
--- a/stdlib/source/projection/lux/world/environment.lux
+++ b/stdlib/source/projection/lux/world/environment.lux
@@ -49,4 +49,4 @@
     (-> (Projection of) Environment
         (Try of)))
   (|> (projection environment)
-      (of try.monad each product.right)))
+      (by try.monad each product.right)))
diff --git a/stdlib/source/test/aedifex/artifact/snapshot.lux b/stdlib/source/test/aedifex/artifact/snapshot.lux
index 8801ef39b4..6c747e92d1 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot.lux
@@ -46,7 +46,7 @@
                           /.injection
                           list
                           (.value /.projection)
-                          (try#each (of /.equivalence = expected))
+                          (try#each (by /.equivalence = expected))
                           (try.else false))))
 
                   $/build.test
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/build.lux b/stdlib/source/test/aedifex/artifact/snapshot/build.lux
index f2879c739d..a7c9fee8f2 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/build.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/build.lux
@@ -40,6 +40,6 @@
                           /.injection
                           list
                           (.value /.projection)
-                          (try#each (of /.equivalence = expected))
+                          (try#each (by /.equivalence = expected))
                           (try.else false))))
                   ))))
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
index 55db5e1249..79855d7b62 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
@@ -48,6 +48,6 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/time.lux b/stdlib/source/test/aedifex/artifact/snapshot/time.lux
index 1d38e0c5af..46bdb13c36 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/time.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/time.lux
@@ -41,7 +41,7 @@
                     (|> expected
                         /.injection
                         (.value /.projection)
-                        (try#each (of /.equivalence = expected))
+                        (try#each (by /.equivalence = expected))
                         (try.else false)))
                   ))
            )))
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version.lux b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
index cd1d4a955b..d8a2c08447 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/version.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
@@ -49,7 +49,7 @@
                    /.injection
                    list
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
 
            /value.test
diff --git a/stdlib/source/test/aedifex/artifact/time.lux b/stdlib/source/test/aedifex/artifact/time.lux
index bee0b6bc09..a68e665ddb 100644
--- a/stdlib/source/test/aedifex/artifact/time.lux
+++ b/stdlib/source/test/aedifex/artifact/time.lux
@@ -49,7 +49,7 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (do random.monad
              [expected ..random]
@@ -57,7 +57,7 @@
                (|> expected
                    /.instant
                    /.of_instant
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (_.coverage [/.epoch]
              (instant.= instant.epoch (/.instant /.epoch)))
diff --git a/stdlib/source/test/aedifex/artifact/time/date.lux b/stdlib/source/test/aedifex/artifact/time/date.lux
index 4032c6d9ae..a850946e9b 100644
--- a/stdlib/source/test/aedifex/artifact/time/date.lux
+++ b/stdlib/source/test/aedifex/artifact/time/date.lux
@@ -55,13 +55,13 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false)))
              (_.coverage [/.value /.date]
                (|> expected
                    /.value
                    /.date
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false)))
              (_.coverage [/.year_is_out_of_range]
                (when (/.date candidate)
diff --git a/stdlib/source/test/aedifex/artifact/time/time.lux b/stdlib/source/test/aedifex/artifact/time/time.lux
index c12e8025b8..57a7f542df 100644
--- a/stdlib/source/test/aedifex/artifact/time/time.lux
+++ b/stdlib/source/test/aedifex/artifact/time/time.lux
@@ -41,6 +41,6 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of time.equivalence = expected))
+                   (try#each (by time.equivalence = expected))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/aedifex/artifact/versioning.lux b/stdlib/source/test/aedifex/artifact/versioning.lux
index 9697d84477..ce7433eae8 100644
--- a/stdlib/source/test/aedifex/artifact/versioning.lux
+++ b/stdlib/source/test/aedifex/artifact/versioning.lux
@@ -49,13 +49,13 @@
                    /.injection
                    list
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (_.coverage [/.init]
              (|> /.init
                  /.injection
                  list
                  (.value /.projection)
-                 (try#each (of /.equivalence = /.init))
+                 (try#each (by /.equivalence = /.init))
                  (try.else false)))
            )))
diff --git a/stdlib/source/test/aedifex/cache.lux b/stdlib/source/test/aedifex/cache.lux
index c2570b771c..97f649d098 100644
--- a/stdlib/source/test/aedifex/cache.lux
+++ b/stdlib/source/test/aedifex/cache.lux
@@ -70,7 +70,7 @@
 (the content
   (Random Binary)
   (do [! random.monad]
-    [content_size (of ! each (n.% 100) random.natural)]
+    [content_size (by ! each (n.% 100) random.natural)]
     (_binary.random content_size)))
 
 (the package
@@ -88,7 +88,7 @@
   (do [! random.monad]
     [[main_dependency main_package] ..package
      dependencies (|> (//package.dependencies main_package)
-                      (of try.monad each set.list)
+                      (by try.monad each set.list)
                       (try.else (list))
                       (monad.each ! (function (_ dependency)
                                       (do !
@@ -111,7 +111,7 @@
      home (random.alphabetic 5)
      working_directory (random.alphabetic 5)
      .let [fs (is (file.System Async)
-                  (file.mock (of file.default separator)))
+                  (file.mock (by file.default separator)))
            program (program.async (program.mock environment.empty home working_directory))]]
     (in (do async.monad
           [wrote! (/.write_one program fs dependency expected_package)
@@ -121,7 +121,7 @@
                 (do try.monad
                   [_ wrote!
                    actual_package read!]
-                  (in (of //package.equivalence =
+                  (in (by //package.equivalence =
                           (has //package.#origin {//repository/origin.#Local ""} expected_package)
                           actual_package)))))))))
 
@@ -132,7 +132,7 @@
      home (random.alphabetic 5)
      working_directory (random.alphabetic 5)
      .let [fs (is (file.System Async)
-                  (file.mock (of file.default separator)))
+                  (file.mock (by file.default separator)))
            program (program.async (program.mock environment.empty home working_directory))]]
     (in (do async.monad
           [wrote! (/.write_all program fs expected)
@@ -142,8 +142,8 @@
                 (do try.monad
                   [_ wrote!
                    actual read!]
-                  (in (of //dependency/resolution.equivalence =
-                          (of dictionary.functor each
+                  (in (by //dependency/resolution.equivalence =
+                          (by dictionary.functor each
                               (has //package.#origin {//repository/origin.#Local ""})
                               expected)
                           actual)))))))))
diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux
index 0bb072bcf8..110c7f24fc 100644
--- a/stdlib/source/test/aedifex/cli.lux
+++ b/stdlib/source/test/aedifex/cli.lux
@@ -82,8 +82,8 @@
           (cli.value /.command)
           (pipe.when
             {try.#Success [names actual]}
-            (and (of (list.equivalence text.equivalence) = (list) names)
-                 (of /.equivalence = expected actual))
+            (and (by (list.equivalence text.equivalence) = (list) names)
+                 (by /.equivalence = expected actual))
             
             {try.#Failure error}
             false)))))
@@ -100,8 +100,8 @@
           (cli.value /.command)
           (pipe.when
             {try.#Success [actual_profile actual_command]}
-            (and (of (list.equivalence text.equivalence) = (list expected_profile) actual_profile)
-                 (of /.equivalence = expected_command actual_command))
+            (and (by (list.equivalence text.equivalence) = (list expected_profile) actual_profile)
+                 (by /.equivalence = expected_command actual_command))
             
             {try.#Failure error}
             false)))))
diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux
index e90b15762c..0acf2bbb5c 100644
--- a/stdlib/source/test/aedifex/command/auto.lux
+++ b/stdlib/source/test/aedifex/command/auto.lux
@@ -62,8 +62,8 @@
          (if (n.= expected_runs actual_runs)
            (in {try.#Failure end_signal})
            (do (try.with !)
-             [_ (of fs write dummy_file (of utf8.format injection (%.natural actual_runs)))
-              _ (of fs modify dummy_file (|> actual_runs .integer instant.of_millis))]
+             [_ (by fs write dummy_file (by utf8.format injection (%.natural actual_runs)))
+              _ (by fs modify dummy_file (|> actual_runs .integer instant.of_millis))]
              (in [shell.normal []])))))]))
 
 (the .public test
@@ -71,7 +71,7 @@
   (<| (_.covering /._)
       (do [! random.monad]
         [end_signal (random.alphabetic 5)
-         .let [/ (of file.default separator)
+         .let [/ (by file.default separator)
                [fs watcher] (watch.mock /)]
          
          program (random.and (random.alphabetic 5)
@@ -79,7 +79,7 @@
          target (random.alphabetic 5)
          source (random.alphabetic 5)
          .let [empty_profile (is Profile
-                                 (of ///.monoid identity))
+                                 (by ///.monoid identity))
                with_target (is (-> Profile Profile)
                                (has ///.#target target))
                with_program (is (-> Profile Profile)
@@ -93,18 +93,18 @@
          home (random.alphabetic 5)
          working_directory (random.alphabetic 5)
          
-         expected_runs (of ! each (|>> (n.% 10) (n.max 2)) random.natural)
-         dummy_path (of ! each (|>> (%.message source /)) (random.alphabetic 5))
+         expected_runs (by ! each (|>> (n.% 10) (n.max 2)) random.natural)
+         dummy_path (by ! each (|>> (%.message source /)) (random.alphabetic 5))
          [compiler resolution] $build.resolution]
         (all _.and
              (_.coverage [/.delay]
                (n.> 0 /.delay))
              (in (do async.monad
                    [verdict (do ///action.monad
-                              [_ (of fs make_directory source)
-                               _ (of fs write dummy_path (binary.empty 0))
+                              [_ (by fs make_directory source)
+                               _ (by fs write dummy_path (binary.empty 0))
                                .let [[@runs command] (..command expected_runs end_signal fs dummy_path)]
-                               _ (of watcher poll [])]
+                               _ (by watcher poll [])]
                               (do [! async.monad]
                                 [no_dangling_process! (|> profile
                                                           (has ///.#lux compiler)
@@ -114,7 +114,7 @@
                                                            fs
                                                            (shell.async ($build.good_shell []))
                                                            resolution)
-                                                          (of ! each (|>> (pipe.when
+                                                          (by ! each (|>> (pipe.when
                                                                             {try.#Failure error}
                                                                             (same? end_signal error)
 
@@ -123,7 +123,7 @@
                                  correct_number_of_runs! (|> @runs
                                                              atom.read!
                                                              async.future
-                                                             (of ! each (n.= expected_runs)))]
+                                                             (by ! each (n.= expected_runs)))]
                                 (in {try.#Success (and correct_number_of_runs!
                                                        no_dangling_process!)})))]
                    (unit.coverage [/.do!]
diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux
index 25a4270733..b78573a1b5 100644
--- a/stdlib/source/test/aedifex/command/build.lux
+++ b/stdlib/source/test/aedifex/command/build.lux
@@ -150,7 +150,7 @@
       (do [! random.monad]
         [last_read (random.alphabetic 5)
          last_error (random.alphabetic 5)
-         .let [fs (file.mock (of file.default separator))
+         .let [fs (file.mock (by file.default separator))
                shell (shell.async (..good_shell []))]
          program (random.and (random.alphabetic 5)
                              (random.alphabetic 5))
@@ -158,7 +158,7 @@
          home (random.alphabetic 5)
          working_directory (random.alphabetic 5)
          .let [empty_profile (is Profile
-                                 (of ///.monoid identity))
+                                 (by ///.monoid identity))
                with_target (is (-> Profile Profile)
                                (has ///.#target target))
                with_program (is (-> Profile Profile)
@@ -195,8 +195,8 @@
                                 [_ (/.do! console (program.async (program.mock environment.empty home working_directory))
                                           fs shell resolution
                                           (has ///.#lux compiler profile))
-                                 start (of console read_line [])
-                                 end (of console read_line [])]
+                                 start (by console read_line [])
+                                 end (by console read_line [])]
                                 (in (and (text.= /.start start)
                                          (text.= /.success end))))]
                      (unit.coverage [/.do!
@@ -217,8 +217,8 @@
                                 [_ (/.do! console (program.async (program.mock environment.empty home working_directory))
                                           fs (shell.async (..bad_shell [])) resolution
                                           (has ///.#lux compiler profile))
-                                 start (of console read_line [])
-                                 end (of console read_line [])]
+                                 start (by console read_line [])
+                                 end (by console read_line [])]
                                 (in (and (text.= /.start start)
                                          (text.= /.failure end))))]
                      (unit.coverage [/.failure]
@@ -237,11 +237,11 @@
                                        [verdict (do ///action.monad
                                                   [process (shell [environment.empty working_directory "" (list "")])
                                                    _ ( console process)
-                                                   actual/0 (of console read_line [])
-                                                   actual/1 (of console read_line [])
-                                                   actual/2 (of console read_line [])
-                                                   end! (|> (of console read_line [])
-                                                            (of ! each (|>> (pipe.when
+                                                   actual/0 (by console read_line [])
+                                                   actual/1 (by console read_line [])
+                                                   actual/2 (by console read_line [])
+                                                   end! (|> (by console read_line [])
+                                                            (by ! each (|>> (pipe.when
                                                                               {try.#Failure error}
                                                                               true
                                                                               
diff --git a/stdlib/source/test/aedifex/command/clean.lux b/stdlib/source/test/aedifex/command/clean.lux
index e6c1439843..7dd4b66043 100644
--- a/stdlib/source/test/aedifex/command/clean.lux
+++ b/stdlib/source/test/aedifex/command/clean.lux
@@ -48,7 +48,7 @@
 (the (files prefix)
   (-> Path (Random (List [Path Binary])))
   (do [! random.monad]
-    [count (of ! each (n.% 10) random.natural)
+    [count (by ! each (n.% 10) random.natural)
      names (random.set text.hash count ..node_name)
      contents (random.list count ($binary.random 100))]
     (in (list.zipped_2 (list#each (|>> (%.message prefix)) (set.list names))
@@ -56,7 +56,7 @@
 
 (the (create_file! fs [path content])
   (-> (file.System Async) [Path Binary] (Async (Try Any)))
-  (of fs write path content))
+  (by fs write path content))
 
 (the (create_directory! fs path files)
   (-> (file.System Async) Path (List [Path Binary]) (Async (Try Any)))
@@ -68,11 +68,11 @@
 
 (the (directory_exists? fs)
   (-> (file.System Async) Path (Async (Try Bit)))
-  (|>> (of fs directory?) (try.lifted async.monad)))
+  (|>> (by fs directory?) (try.lifted async.monad)))
 
 (the (file_exists? fs)
   (-> (file.System Async) Path (Async (Try Bit)))
-  (|>> (of fs file?) (try.lifted async.monad)))
+  (|>> (by fs file?) (try.lifted async.monad)))
 
 (the (assets_exist? fs directory_path files)
   (-> (file.System Async) Path (List [Path Binary]) (Async (Try Bit)))
@@ -92,8 +92,8 @@
         [context ..node_name
          target ..node_name
          sub ..node_name
-         .let [fs (file.mock (of file.default separator))
-               / (of fs separator)
+         .let [fs (file.mock (by file.default separator))
+               / (by fs separator)
                target_path (%.message context / target)
                sub_path (%.message target_path / sub)]
          direct_files (..files (%.message target_path /))
@@ -112,7 +112,7 @@
                           context_exists!/post (..directory_exists? fs context)
                           target_exists!/post (..assets_exist? fs target_path direct_files)
                           sub_exists!/post (..assets_exist? fs sub_path sub_files)
-                          logging (of console read_line [])]
+                          logging (by console read_line [])]
                          (in (and (and context_exists!/pre
                                        context_exists!/post)
                                   (and target_exists!/pre
diff --git a/stdlib/source/test/aedifex/command/deploy.lux b/stdlib/source/test/aedifex/command/deploy.lux
index f443b6cd30..a7fbc70e14 100644
--- a/stdlib/source/test/aedifex/command/deploy.lux
+++ b/stdlib/source/test/aedifex/command/deploy.lux
@@ -65,7 +65,7 @@
   (implementation
    (the (execute [environment working_directory command arguments])
      (do [! ///action.monad]
-       [files (of fs directory_files working_directory)
+       [files (by fs directory_files working_directory)
         _ (monad.each !
                       (function (_ file)
                         (do !
@@ -97,8 +97,8 @@
     [.let [console ($version.echo "")]
      _ ($install.make_sources! fs (its ///.#sources profile))
      _ (/.do! program (..shell fs) console local remote fs artifact profile)
-     locally_installed! (of console read_line [])
-     deployed! (of console read_line [])]
+     locally_installed! (by console read_line [])
+     deployed! (by console read_line [])]
     (in [locally_installed! deployed!])))
 
 (the .public test
@@ -115,7 +115,7 @@
          
          home (random.alphabetic 5)
          working_directory (random.alphabetic 5)
-         .let [fs (file.mock (of file.default separator))
+         .let [fs (file.mock (by file.default separator))
                program (program.async (program.mock environment.empty home working_directory))
                local (///repository/local.repository program fs)
                remote (///repository.mock $repository.mock
@@ -127,20 +127,20 @@
                                                (its ///.#sources)
                                                set.list
                                                (export.library fs)
-                                               (of ! each (\\injection.value tar.injection)))
+                                               (by ! each (\\injection.value tar.injection)))
 
-                          actual_pom (of remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact ///artifact/extension.pom))
-                          actual_library (of remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact ///artifact/extension.lux_library))
-                          actual_sha1 (of remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact (%.message ///artifact/extension.lux_library ///artifact/extension.sha1)))
-                          actual_sha1 (of async.monad in
+                          actual_pom (by remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact ///artifact/extension.pom))
+                          actual_library (by remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact ///artifact/extension.lux_library))
+                          actual_sha1 (by remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact (%.message ///artifact/extension.lux_library ///artifact/extension.sha1)))
+                          actual_sha1 (by async.monad in
                                           (do try.monad
-                                            [actual_sha1 (of utf8.format projection actual_sha1)]
-                                            (of ///hash.sha1_format projection actual_sha1)))
-                          actual_md5 (of remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact (%.message ///artifact/extension.lux_library ///artifact/extension.md5)))
-                          actual_md5 (of async.monad in
+                                            [actual_sha1 (by utf8.format projection actual_sha1)]
+                                            (by ///hash.sha1_format projection actual_sha1)))
+                          actual_md5 (by remote download (///repository/remote.uri (its ///artifact.#version artifact) artifact (%.message ///artifact/extension.lux_library ///artifact/extension.md5)))
+                          actual_md5 (by async.monad in
                                          (do try.monad
-                                           [actual_md5 (of utf8.format projection actual_md5)]
-                                           (of ///hash.md5_format projection actual_md5)))
+                                           [actual_md5 (by utf8.format projection actual_md5)]
+                                           (by ///hash.md5_format projection actual_md5)))
 
                           .let [succeeded!
                                 (and (text.= //install.success locally_installed!)
@@ -151,16 +151,16 @@
                                           actual_library)
 
                                 deployed_pom!
-                                (binary.= (|> expected_pom (of xml.format injection) (of utf8.format injection))
+                                (binary.= (|> expected_pom (by xml.format injection) (by utf8.format injection))
                                           actual_pom)
 
                                 deployed_sha1!
-                                (of ///hash.equivalence =
+                                (by ///hash.equivalence =
                                     (///hash.sha1 expected_library)
                                     actual_sha1)
 
                                 deployed_md5!
-                                (of ///hash.equivalence =
+                                (by ///hash.equivalence =
                                     (///hash.md5 expected_library)
                                     actual_md5)]]
                          (in (and succeeded!
diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux
index 8c9faf3bff..a3c4b9dbc0 100644
--- a/stdlib/source/test/aedifex/command/deps.lux
+++ b/stdlib/source/test/aedifex/command/deps.lux
@@ -66,7 +66,7 @@
 
          dependee_artifact $///artifact.random
          depender_artifact (random.only (predicate.complement
-                                         (of ///artifact.equivalence = dependee_artifact))
+                                         (by ///artifact.equivalence = dependee_artifact))
                                         $///artifact.random)
 
          [_ dependee_package] $///package.random
@@ -77,11 +77,11 @@
                depender [///dependency.#artifact depender_artifact
                          ///dependency.#type ///artifact/type.lux_library]
 
-               dependee_pom (|> (of ///.monoid identity)
+               dependee_pom (|> (by ///.monoid identity)
                                 (has ///.#identity {.#Some dependee_artifact})
                                 ///pom.write
                                 try.trusted)
-               depender_pom (|> (of ///.monoid identity)
+               depender_pom (|> (by ///.monoid identity)
                                 (has ///.#identity {.#Some depender_artifact})
                                 (has ///.#dependencies (set.of_list ///dependency.hash (list dependee)))
                                 ///pom.write
@@ -90,15 +90,15 @@
                dependee_package (|> dependee_package
                                     (has ///package.#origin {///repository/origin.#Remote ""})
                                     (has ///package.#pom [dependee_pom
-                                                          (|> dependee_pom (of xml.format injection) (of utf8.format injection))
+                                                          (|> dependee_pom (by xml.format injection) (by utf8.format injection))
                                                           {///dependency/status.#Unverified}]))
                depender_package (|> depender_package
                                     (has ///package.#origin {///repository/origin.#Remote ""})
                                     (has ///package.#pom [depender_pom
-                                                          (|> depender_pom (of xml.format injection) (of utf8.format injection))
+                                                          (|> depender_pom (by xml.format injection) (by utf8.format injection))
                                                           {///dependency/status.#Unverified}]))
 
-               fs (file.mock (of file.default separator))
+               fs (file.mock (by file.default separator))
                program (program.async (program.mock environment.empty home working_directory))]]
         (in (do async.monad
               [verdict (do ///action.monad
@@ -107,7 +107,7 @@
                           pre (|> ///dependency/resolution.empty
                                   (dictionary.has dependee dependee_package)
                                   (///dependency/deployment.all local))
-                          post (|> (of ///.monoid identity)
+                          post (|> (by ///.monoid identity)
                                    (has ///.#dependencies (set.of_list ///dependency.hash (list dependee depender)))
                                    (/.do! console local
                                           (list (///repository.mock ($///dependency/resolution.single depender_artifact depender_package)
diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux
index 63e1f24bc5..11540ae4d1 100644
--- a/stdlib/source/test/aedifex/command/install.lux
+++ b/stdlib/source/test/aedifex/command/install.lux
@@ -45,7 +45,7 @@
 
 (the .public (make_sources! fs sources)
   (-> (file.System Async) (Set file.Path) (Action (List Any)))
-  (let [/ (of fs separator)
+  (let [/ (by fs separator)
         ! ///action.monad]
     (|> sources
         set.list
@@ -62,18 +62,18 @@
     [.let [console ($version.echo "")]
      _ (..make_sources! fs (its ///.#sources sample))
      _ (/.do! console fs (///repository/local.repository program fs) sample)]
-    (of console read_line [])))
+    (by console read_line [])))
 
 (the .public test
   Test
   (<| (_.covering /._)
       (do [! random.monad]
         [identity $artifact.random
-         sample (of ! each (has ///.#identity {.#Some identity})
+         sample (by ! each (has ///.#identity {.#Some identity})
                     $profile.random)
          home (random.alphabetic 5)
          working_directory (random.alphabetic 5)
-         .let [/ (of file.default separator)]]
+         .let [/ (by file.default separator)]]
         (all _.and
              (in (do [! async.monad]
                    [.let [fs (file.mock /)
@@ -83,16 +83,16 @@
                           library_path (%.message artifact_path ///artifact/extension.lux_library)
                           pom_path (%.message artifact_path ///artifact/extension.pom)]
                     verdict (do [! ///action.monad]
-                              [succeeded! (of ! each (text.= /.success)
+                              [succeeded! (by ! each (text.= /.success)
                                               (..execute! program fs sample))
                                library_exists! (|> library_path
                                                    (%.message home /)
-                                                   (of fs file?)
-                                                   (of async.monad each (|>> {try.#Success})))
+                                                   (by fs file?)
+                                                   (by async.monad each (|>> {try.#Success})))
                                pom_exists! (|> pom_path
                                                (%.message home /)
-                                               (of fs file?)
-                                               (of async.monad each (|>> {try.#Success})))]
+                                               (by fs file?)
+                                               (by async.monad each (|>> {try.#Success})))]
                               (in (and succeeded!
                                        library_exists!
                                        pom_exists!)))]
diff --git a/stdlib/source/test/aedifex/command/pom.lux b/stdlib/source/test/aedifex/command/pom.lux
index 20ceae683a..5b104bf895 100644
--- a/stdlib/source/test/aedifex/command/pom.lux
+++ b/stdlib/source/test/aedifex/command/pom.lux
@@ -40,7 +40,7 @@
   (<| (_.covering /._)
       (do random.monad
         [sample @profile.random
-         .let [fs (file.mock (of file.default separator))]]
+         .let [fs (file.mock (by file.default separator))]]
         (in (do [! async.monad]
               [.let [console (@version.echo "")]
                outcome (/.do! console fs sample)]
@@ -49,14 +49,14 @@
                 (do !
                   [verdict (do ///action.monad
                              [expected (|> (///pom.write sample)
-                                           (try#each (|>> (of xml.format injection)
-                                                          (of utf8.format injection)))
-                                           (of ! in))
-                              actual (of fs read ///pom.file)
+                                           (try#each (|>> (by xml.format injection)
+                                                          (by utf8.format injection)))
+                                           (by ! in))
+                              actual (by fs read ///pom.file)
 
-                              logging! (of ///action.monad each
+                              logging! (by ///action.monad each
                                            (text.= /.success)
-                                           (of console read_line []))
+                                           (by console read_line []))
 
                               .let [expected_content!
                                     (binary.= expected actual)]]
diff --git a/stdlib/source/test/aedifex/command/test.lux b/stdlib/source/test/aedifex/command/test.lux
index 66c1a2917e..3da8ea646c 100644
--- a/stdlib/source/test/aedifex/command/test.lux
+++ b/stdlib/source/test/aedifex/command/test.lux
@@ -54,7 +54,7 @@
          home (random.alphabetic 5)
          working_directory (random.alphabetic 5)
          .let [empty_profile (is Profile
-                                 (of ///.monoid identity))
+                                 (by ///.monoid identity))
                with_target (is (-> Profile Profile)
                                (has ///.#target target))
                with_test (is (-> Profile Profile)
@@ -65,17 +65,17 @@
                            with_target)]
          [compiler resolution] @build.resolution]
         (all _.and
-             (let [fs (file.mock (of file.default separator))
+             (let [fs (file.mock (by file.default separator))
                    console (@version.echo "")]
                (in (do async.monad
                      [verdict (do ///action.monad
                                 [_ (/.do! console (program.async (program.mock environment.empty home working_directory))
                                           fs (shell.async (@build.good_shell [])) resolution
                                           (has ///.#lux compiler profile))
-                                 build_start (of console read_line [])
-                                 build_end (of console read_line [])
-                                 test_start (of console read_line [])
-                                 test_end (of console read_line [])]
+                                 build_start (by console read_line [])
+                                 build_end (by console read_line [])
+                                 test_start (by console read_line [])
+                                 test_end (by console read_line [])]
                                 (in (and (and (text.= //build.start build_start)
                                               (text.= //build.success build_end))
                                          (and (text.= /.start test_start)
@@ -83,7 +83,7 @@
                      (unit.coverage [/.do!
                                      /.start /.success]
                        (try.else false verdict)))))
-             (let [fs (file.mock (of file.default separator))
+             (let [fs (file.mock (by file.default separator))
                    console (@version.echo "")]
                (in (do async.monad
                      [verdict (do ///action.monad
@@ -108,10 +108,10 @@
                                  _ (/.do! console (program.async (program.mock environment.empty home working_directory))
                                           fs (shell.async bad_shell) resolution
                                           (has ///.#lux compiler profile))
-                                 build_start (of console read_line [])
-                                 build_end (of console read_line [])
-                                 test_start (of console read_line [])
-                                 test_end (of console read_line [])]
+                                 build_start (by console read_line [])
+                                 build_end (by console read_line [])
+                                 test_start (by console read_line [])
+                                 test_end (by console read_line [])]
                                 (in (and (and (text.= //build.start build_start)
                                               (text.= //build.success build_end))
                                          (and (text.= /.start test_start)
diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux
index 06fe05e42e..60e1fad8bc 100644
--- a/stdlib/source/test/aedifex/command/version.lux
+++ b/stdlib/source/test/aedifex/command/version.lux
@@ -75,7 +75,7 @@
               [.let [console (..echo "")]
                verdict (do (try.with async.monad)
                          [_ (/.do! console profile)
-                          logging (of console read_line [])]
+                          logging (by console read_line [])]
                          (in (text.= (version.injection lux_version.latest)
                                      logging)))]
               (unit.coverage [/.do!]
diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux
index 47b2d7b5ef..1e47a75b1a 100644
--- a/stdlib/source/test/aedifex/dependency/deployment.lux
+++ b/stdlib/source/test/aedifex/dependency/deployment.lux
@@ -153,7 +153,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [address (of ! each (text.suffix path.separator)
+        [address (by ! each (text.suffix path.separator)
                      (random.upper_cased 10))]
         (all _.and
              (do [! random.monad]
@@ -171,12 +171,12 @@
                            (try.else false))))))
              (do [! random.monad]
                [.let [hash (is (Hash [Dependency Artifact Package])
-                               (of hash.functor each (|>> product.right product.left product.left)
+                               (by hash.functor each (|>> product.right product.left product.left)
                                    text.hash))]
-                num_bundles (of ! each (n.% 10) random.natural)
+                num_bundles (by ! each (n.% 10) random.natural)
                 bundles (|> ..bundle
                             (random.set hash num_bundles)
-                            (of ! each set.list))
+                            (by ! each set.list))
                 .let [resolution (list#mix (function (_ [dependency expected_artifact package] resolution)
                                              (dictionary.has dependency package resolution))
                                            resolution.empty
diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux
index 2352fd60f6..0ea23bd16a 100644
--- a/stdlib/source/test/aedifex/dependency/resolution.lux
+++ b/stdlib/source/test/aedifex/dependency/resolution.lux
@@ -86,14 +86,14 @@
 (the sha1
   (-> Binary Binary)
   (|>> ///hash.sha1
-       (of ///hash.sha1_format injection)
-       (of utf8.format injection)))
+       (by ///hash.sha1_format injection)
+       (by utf8.format injection)))
 
 (the md5
   (-> Binary Binary)
   (|>> ///hash.md5
-       (of ///hash.md5_format injection)
-       (of utf8.format injection)))
+       (by ///hash.md5_format injection)
+       (by utf8.format injection)))
 
 (the .public nope
   (Mock Any)
@@ -121,8 +121,8 @@
                        (|> package
                            (its ///package.#pom)
                            product.left
-                           (of xml.format injection)
-                           (of utf8.format injection)))]
+                           (by xml.format injection)
+                           (by utf8.format injection)))]
            (if (text.ends_with? ///artifact/extension.lux_library uri)
              {try.#Success [state library]}
 
@@ -175,23 +175,23 @@
          {try.#Success [state (|> expected_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection))]}
+                                  (by xml.format injection)
+                                  (by utf8.format injection))]}
 
          (text.ends_with? ..pom_sha1 uri)
          {try.#Success [state (|> dummy_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection)
+                                  (by xml.format injection)
+                                  (by utf8.format injection)
                                   ..sha1)]}
 
          (text.ends_with? ..pom_md5 uri)
          {try.#Success [state (|> expected_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection)
+                                  (by xml.format injection)
+                                  (by utf8.format injection)
                                   ..md5)]}
 
          ... else
@@ -228,23 +228,23 @@
          {try.#Success [state (|> expected_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection))]}
+                                  (by xml.format injection)
+                                  (by utf8.format injection))]}
 
          (text.ends_with? ..pom_sha1 uri)
          {try.#Success [state (|> expected_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection)
+                                  (by xml.format injection)
+                                  (by utf8.format injection)
                                   ..sha1)]}
 
          (text.ends_with? ..pom_md5 uri)
          {try.#Success [state (|> dummy_package
                                   (its ///package.#pom)
                                   product.left
-                                  (of xml.format injection)
-                                  (of utf8.format injection)
+                                  (by xml.format injection)
+                                  (by utf8.format injection)
                                   ..md5)]}
 
          ... else
@@ -260,7 +260,7 @@
      [_ expected_package] $///package.random
      [_ dummy_package] (random.only (|>> product.right
                                          (has ///package.#pom (its ///package.#pom expected_package))
-                                         (of ///package.equivalence = expected_package)
+                                         (by ///package.equivalence = expected_package)
                                          not)
                                     $///package.random)
      .let [good (..single expected_artifact expected_package)
@@ -274,7 +274,7 @@
                     (unit.coverage [/.one]
                       (when actual_package
                         {try.#Success actual_package}
-                        (of ///package.equivalence =
+                        (by ///package.equivalence =
                             (has ///package.#origin {///repository/origin.#Remote ""} expected_package)
                             actual_package)
                         
@@ -305,7 +305,7 @@
      [_ expected_package] $///package.random
      [_ dummy_package] (random.only (|>> product.right
                                          (has ///package.#pom (its ///package.#pom expected_package))
-                                         (of ///package.equivalence = expected_package)
+                                         (by ///package.equivalence = expected_package)
                                          not)
                                     $///package.random)
      .let [good (..single expected_artifact expected_package)
@@ -323,7 +323,7 @@
                 (unit.coverage [/.any]
                   (when actual_package
                     {try.#Success actual_package}
-                    (of ///package.equivalence =
+                    (by ///package.equivalence =
                         (has ///package.#origin {///repository/origin.#Remote ""} expected_package)
                         actual_package)
                     
@@ -350,11 +350,11 @@
   (do random.monad
     [dependee_artifact $///artifact.random
      depender_artifact (random.only (predicate.complement
-                                     (of ///artifact.equivalence = dependee_artifact))
+                                     (by ///artifact.equivalence = dependee_artifact))
                                     $///artifact.random)
      ignored_artifact (random.only (predicate.complement
-                                    (predicate.and (of ///artifact.equivalence = dependee_artifact)
-                                                   (of ///artifact.equivalence = depender_artifact)))
+                                    (predicate.and (by ///artifact.equivalence = dependee_artifact)
+                                                   (by ///artifact.equivalence = depender_artifact)))
                                    $///artifact.random)]
     (in [dependee_artifact depender_artifact ignored_artifact])))
 
@@ -374,33 +374,33 @@
            ignored [///dependency.#artifact ignored_artifact
                     ///dependency.#type ///artifact/type.lux_library]
 
-           dependee_pom (|> (of ///.monoid identity)
+           dependee_pom (|> (by ///.monoid identity)
                             (has ///.#identity {.#Some dependee_artifact})
                             ///pom.write
                             try.trusted)
-           depender_pom (|> (of ///.monoid identity)
+           depender_pom (|> (by ///.monoid identity)
                             (has ///.#identity {.#Some depender_artifact})
                             (has ///.#dependencies (set.of_list ///dependency.hash (list dependee)))
                             ///pom.write
                             try.trusted)
-           ignored_pom (|> (of ///.monoid identity)
+           ignored_pom (|> (by ///.monoid identity)
                            (has ///.#identity {.#Some ignored_artifact})
                            ///pom.write
                            try.trusted)
 
            dependee_package (has ///package.#pom
                                  [dependee_pom
-                                  (|> dependee_pom (of xml.format injection) (of utf8.format injection))
+                                  (|> dependee_pom (by xml.format injection) (by utf8.format injection))
                                   {///dependency/status.#Unverified}]
                                  dependee_package)
            depender_package (has ///package.#pom
                                  [depender_pom
-                                  (|> depender_pom (of xml.format injection) (of utf8.format injection))
+                                  (|> depender_pom (by xml.format injection) (by utf8.format injection))
                                   {///dependency/status.#Unverified}]
                                  depender_package)
            ignored_package (has ///package.#pom
                                 [ignored_pom
-                                 (|> ignored_pom (of xml.format injection) (of utf8.format injection))
+                                 (|> ignored_pom (by xml.format injection) (by utf8.format injection))
                                  {///dependency/status.#Unverified}]
                                 ignored_package)]]
     (in [[dependee depender ignored]
diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux
index 92c5ff7910..76291ae27e 100644
--- a/stdlib/source/test/aedifex/hash.lux
+++ b/stdlib/source/test/aedifex/hash.lux
@@ -38,8 +38,8 @@
     (-> (-> Binary (/.Hash h))
         (Random (/.Hash h))))
   (do [! random.monad]
-    [size (of ! each (n.% 100) random.natural)]
-    (of ! each hash (_binary.random size))))
+    [size (by ! each (n.% 100) random.natural)]
+    (by ! each hash (_binary.random size))))
 
 (the .public test
   Test
@@ -59,11 +59,11 @@
                                     (_.coverage [  ]
                                       (and (when ( (/.data expected))
                                              {try.#Success actual}
-                                             (of /.equivalence = expected actual)
+                                             (by /.equivalence = expected actual)
 
                                              {try.#Failure error}
                                              false)
-                                           (when ( (of binary.monoid composite
+                                           (when ( (by binary.monoid composite
                                                                     (/.data expected)
                                                                     (/.data expected)))
                                              {try.#Success actual}
@@ -88,8 +88,8 @@
                                  [(do random.monad
                                     [expected (..random )]
                                     (_.coverage []
-                                      (when (of  projection
-                                                (%.message (of  injection expected)
+                                      (when (by  projection
+                                                (%.message (by  injection expected)
                                                            "AABBCC"))
                                         {try.#Success actual}
                                         false
diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux
index 7c48ddb383..b9ad6d760d 100644
--- a/stdlib/source/test/aedifex/input.lux
+++ b/stdlib/source/test/aedifex/input.lux
@@ -57,19 +57,19 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [expected (of ! each (has //.#parents (list)) $profile.random)
+        [expected (by ! each (has //.#parents (list)) $profile.random)
          .let [fs (is (file.System Async)
-                      (file.mock (of file.default separator)))]]
+                      (file.mock (by file.default separator)))]]
         (in (do async.monad
               [verdict (do //action.monad
                          [.let [profile (|> expected
                                             (//project.project //.default)
                                             //injection.project
                                             code.as_text
-                                            (of utf8.format injection))]
-                          _ (of fs write //project.file profile)
+                                            (by utf8.format injection))]
+                          _ (by fs write //project.file profile)
                           actual (is (Async (Try Profile))
                                      (/.read async.monad fs (list)))]
-                         (in (of //.equivalence = (with_defaults expected) actual)))]
+                         (in (by //.equivalence = (with_defaults expected) actual)))]
               (unit.coverage [/.read]
                 (try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux
index 0ae2e2c247..0fd18395c5 100644
--- a/stdlib/source/test/aedifex/metadata/artifact.lux
+++ b/stdlib/source/test/aedifex/metadata/artifact.lux
@@ -55,12 +55,12 @@
        (random.alphabetic 5)
        (random.list 5 (random.alphabetic 5))
        (do [! random.monad]
-         [year (of ! each (|>> (n.% 9,000) (n.+ 1,000) .integer) random.natural)
-          month (of ! each (|>> (n.% 12) (n.+ 1)) random.natural)
-          day_of_month (of ! each (|>> (n.% 28) (n.+ 1)) random.natural)
-          hour (of ! each (n.% 24) random.natural)
-          minute (of ! each (n.% 60) random.natural)
-          second (of ! each (n.% 60) random.natural)]
+         [year (by ! each (|>> (n.% 9,000) (n.+ 1,000) .integer) random.natural)
+          month (by ! each (|>> (n.% 12) (n.+ 1)) random.natural)
+          day_of_month (by ! each (|>> (n.% 28) (n.+ 1)) random.natural)
+          hour (by ! each (n.% 24) random.natural)
+          minute (by ! each (n.% 60) random.natural)
+          second (by ! each (n.% 60) random.natural)]
          (in (try.trusted
               (do try.monad
                 [year (year.year year)
@@ -96,7 +96,7 @@
                      /.injection
                      list
                      (.value /.projection)
-                     (try#each (of /.equivalence = expected))
+                     (try#each (by /.equivalence = expected))
                      (try.else false))))
              (_.coverage [/.uri]
                (text.= (//.remote_project_uri artifact)
@@ -105,7 +105,7 @@
                [home (random.lower_cased 5)
                 working_directory (random.lower_cased 5)
                 .let [program (program.async (program.mock environment.empty home working_directory))
-                      fs (file.mock (of file.default separator))
+                      fs (file.mock (by file.default separator))
                       repository (///repository/local.repository program fs)]]
                (in (do async.monad
                      [wrote? (/.write repository artifact expected)
@@ -116,7 +116,7 @@
                               {try.#Failure _} false)
                             (when actual
                               {try.#Success actual}
-                              (of /.equivalence = expected actual)
+                              (by /.equivalence = expected actual)
                               
                               {try.#Failure _}
                               false))))))
diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux
index fa4abc2fa2..3ca3f5c263 100644
--- a/stdlib/source/test/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/test/aedifex/metadata/snapshot.lux
@@ -59,12 +59,12 @@
 (the random_instant
   (Random Instant)
   (do [! random.monad]
-    [year (of ! each (|>> (n.% 9,000) (n.+ 1,000) .integer) random.natural)
-     month (of ! each (|>> (n.% 12) (n.+ 1)) random.natural)
-     day_of_month (of ! each (|>> (n.% 28) (n.+ 1)) random.natural)
-     hour (of ! each (n.% 24) random.natural)
-     minute (of ! each (n.% 60) random.natural)
-     second (of ! each (n.% 60) random.natural)]
+    [year (by ! each (|>> (n.% 9,000) (n.+ 1,000) .integer) random.natural)
+     month (by ! each (|>> (n.% 12) (n.+ 1)) random.natural)
+     day_of_month (by ! each (|>> (n.% 28) (n.+ 1)) random.natural)
+     hour (by ! each (n.% 24) random.natural)
+     minute (by ! each (n.% 60) random.natural)
+     second (by ! each (n.% 60) random.natural)]
     (in (try.trusted
          (do try.monad
            [year (year.year year)
@@ -108,7 +108,7 @@
                    /.injection
                    list
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false)))
              (_.coverage [/.uri]
                (text.= (//.remote_artifact_uri artifact)
@@ -117,7 +117,7 @@
                [home (random.lower_cased 5)
                 working_directory (random.lower_cased 5)
                 .let [program (program.async (program.mock environment.empty home working_directory))
-                      fs (file.mock (of file.default separator))
+                      fs (file.mock (by file.default separator))
                       repository (///repository/local.repository program fs)]]
                (in (do async.monad
                      [wrote? (/.write repository artifact expected)
@@ -128,7 +128,7 @@
                               {try.#Failure _} false)
                             (when actual
                               {try.#Success actual}
-                              (of /.equivalence = expected actual)
+                              (by /.equivalence = expected actual)
                               
                               {try.#Failure _}
                               false))))))
diff --git a/stdlib/source/test/aedifex/package.lux b/stdlib/source/test/aedifex/package.lux
index a179507696..66e2caf3a5 100644
--- a/stdlib/source/test/aedifex/package.lux
+++ b/stdlib/source/test/aedifex/package.lux
@@ -47,7 +47,7 @@
 (the .public random
   (Random [//.Profile /.Package])
   (do [! random.monad]
-    [content_size (of ! each (n.% 100) random.natural)
+    [content_size (by ! each (n.% 100) random.natural)
      content ($binary.random content_size)
      [profile pom] (random.one (function (_ profile)
                                  (try.maybe
@@ -65,7 +65,7 @@
         [[profile package] ..random]
         (all _.and
              (_.for [/.equivalence]
-                    (equivalenceT.spec /.equivalence (of ! each product.right ..random)))
+                    (equivalenceT.spec /.equivalence (by ! each product.right ..random)))
              
              (_.coverage [/.local?]
                (/.local? (has /.#origin {//origin.#Local "~/yolo"} package)))
@@ -96,9 +96,9 @@
                             expected_md5 (//hash.md5 binary_pom)]
                         (and (same? expected_pom actual_pom)
                              (|> (do try.monad
-                                   [xml_pom (of utf8.format projection binary_pom)
-                                    decoded_pom (of xml.format projection xml_pom)]
-                                   (in (of xml.equivalence = actual_pom decoded_pom)))
+                                   [xml_pom (by utf8.format projection binary_pom)
+                                    decoded_pom (by xml.format projection xml_pom)]
+                                   (in (by xml.equivalence = actual_pom decoded_pom)))
                                  (try.else false))
                              (when pom_status
                                {//status.#Verified actual_sha1 expected_md5}
@@ -111,7 +111,7 @@
                (let [expected (its //.#dependencies profile)]
                  (when (/.dependencies package)
                    {try.#Success actual}
-                   (of set.equivalence = expected actual)
+                   (by set.equivalence = expected actual)
                    
                    {try.#Failure error}
                    false)))
@@ -119,7 +119,7 @@
                (let [expected (its //.#repositories profile)]
                  (when (/.repositories package)
                    {try.#Success actual}
-                   (of set.equivalence = expected actual)
+                   (by set.equivalence = expected actual)
                    
                    {try.#Failure error}
                    false)))
diff --git a/stdlib/source/test/aedifex/pom.lux b/stdlib/source/test/aedifex/pom.lux
index 78a3ccdd1b..0890516528 100644
--- a/stdlib/source/test/aedifex/pom.lux
+++ b/stdlib/source/test/aedifex/pom.lux
@@ -43,8 +43,8 @@
                   {.#Some _}]
                  (when (.value /.projection (list pom))
                    {try.#Success actual}
-                   (of //.equivalence =
-                       (|> (of //.monoid identity)
+                   (by //.equivalence =
+                       (|> (by //.monoid identity)
                            (has //.#dependencies (its //.#dependencies expected))
                            (has //.#repositories (its //.#repositories expected)))
                        actual)
diff --git a/stdlib/source/test/aedifex/profile.lux b/stdlib/source/test/aedifex/profile.lux
index b4788e5516..0c2e43bfdf 100644
--- a/stdlib/source/test/aedifex/profile.lux
+++ b/stdlib/source/test/aedifex/profile.lux
@@ -83,12 +83,12 @@
 (the (list_of random)
   (for_any (_ a) (-> (Random a) (Random (List a))))
   (do [! random.monad]
-    [size (of ! each (n.% 5) random.natural)]
+    [size (by ! each (n.% 5) random.natural)]
     (random.list size random)))
 
 (the (set_of hash random)
   (for_any (_ a) (-> (Hash a) (Random a) (Random (Set a))))
-  (of random.functor each
+  (by random.functor each
       (set.of_list hash)
       (..list_of random)))
 
@@ -96,7 +96,7 @@
   (for_any (_ k v)
     (-> (Hash k) (Random k) (Random v)
         (Random (Dictionary k v))))
-  (of random.functor each
+  (by random.functor each
       (dictionary.of_list key_hash)
       (..list_of (random.and key_random value_random))))
 
@@ -172,11 +172,11 @@
                       (_.coverage [/.default]
                         (text.= "" /.default))
                       (_.coverage [/.default_lux]
-                        (|> (of /.monoid identity)
+                        (|> (by /.monoid identity)
                             (its /.#lux)
                             (same? /.default_lux)))
                       (_.coverage [/.default_target]
-                        (|> (of /.monoid identity)
+                        (|> (by /.monoid identity)
                             (its /.#target)
                             (same? /.default_target)))
                       )))))
diff --git a/stdlib/source/test/aedifex/project.lux b/stdlib/source/test/aedifex/project.lux
index 9d87bdf440..f7abd46d10 100644
--- a/stdlib/source/test/aedifex/project.lux
+++ b/stdlib/source/test/aedifex/project.lux
@@ -68,24 +68,24 @@
                                                    (not (text.= dummy_name name))
                                                    (not (text.= sub_name name))))
                                             (random.alphabetic 1))
-                     .let [project (all (of /.monoid composite)
+                     .let [project (all (by /.monoid composite)
                                         (/.project super_name super_profile)
                                         (/.project dummy_name dummy_profile)
                                         (/.project sub_name (has //.#parents (list super_name) sub_profile)))
-                           circular (all (of /.monoid composite)
+                           circular (all (by /.monoid composite)
                                          (/.project super_name (has //.#parents (list sub_name) super_profile))
                                          (/.project dummy_name dummy_profile)
                                          (/.project sub_name (has //.#parents (list super_name) sub_profile)))]]
                     (all _.and
                          (_.coverage [/.profile]
                            (and (|> (/.profile project super_name)
-                                    (try#each (of //.equivalence = super_profile))
+                                    (try#each (by //.equivalence = super_profile))
                                     (try.else false))
                                 (|> (/.profile project dummy_name)
-                                    (try#each (of //.equivalence = dummy_profile))
+                                    (try#each (by //.equivalence = dummy_profile))
                                     (try.else false))
                                 (|> (/.profile project sub_name)
-                                    (try#each (of //.equivalence = (of //.monoid composite sub_profile super_profile)))
+                                    (try#each (by //.equivalence = (by //.monoid composite sub_profile super_profile)))
                                     (try.else false))))
                          (_.coverage [/.unknown_profile]
                            (when (/.profile project fake_name)
diff --git a/stdlib/source/test/aedifex/projection.lux b/stdlib/source/test/aedifex/projection.lux
index d1054980f6..39c20d4f14 100644
--- a/stdlib/source/test/aedifex/projection.lux
+++ b/stdlib/source/test/aedifex/projection.lux
@@ -45,14 +45,14 @@
     (-> (Random a)
         (Random (List a))))
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 5) ++) random.natural)]
+    [size (by ! each (|>> (n.% 5) ++) random.natural)]
     (random.list size random)))
 
 (the (dictionary_of key_hash key_random value_random)
   (for_any (_ k v)
     (-> (Hash k) (Random k) (Random v)
         (Random (Dictionary k v))))
-  (of random.functor each
+  (by random.functor each
       (dictionary.of_list key_hash)
       (..list_of (random.and key_random value_random))))
 
@@ -76,7 +76,7 @@
 (the (with_empty_profile project)
   (-> Project Project)
   (if (dictionary.empty? project)
-    (//project.project //.default (of //.monoid identity))
+    (//project.project //.default (by //.monoid identity))
     project))
 
 (the with_defaults
@@ -101,6 +101,6 @@
               //injection.project
               list
               (.value /.project)
-              (try#each (of //project.equivalence = (..with_defaults expected)))
+              (try#each (by //project.equivalence = (..with_defaults expected)))
               (try.else false)
               )))))
diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux
index ce4e6325e2..69a896c00c 100644
--- a/stdlib/source/test/aedifex/repository.lux
+++ b/stdlib/source/test/aedifex/repository.lux
@@ -55,17 +55,17 @@
     (in (all unit.and
              (do async.monad
                [.let [good_uri (remote.uri (its //artifact.#version valid_artifact) valid_artifact //artifact/extension.lux_library)]
-                good_upload! (of subject upload good_uri expected)
-                good_download! (of subject download good_uri)
+                good_upload! (by subject upload good_uri expected)
+                good_download! (by subject download good_uri)
 
                 .let [bad_uri (remote.uri (its //artifact.#version invalid_artifact) invalid_artifact //artifact/extension.lux_library)]
-                bad_upload! (of subject upload bad_uri expected)
-                bad_download! (of subject download bad_uri)]
+                bad_upload! (by subject upload bad_uri expected)
+                bad_download! (by subject download bad_uri)]
                (unit.coverage [/.Repository]
                  (let [successfull_flow!
                        (when [good_upload! good_download!]
                          [{try.#Success _} {try.#Success actual}]
-                         (of binary.equivalence = expected actual)
+                         (by binary.equivalence = expected actual)
 
                          _
                          false)
diff --git a/stdlib/source/test/aedifex/repository/local.lux b/stdlib/source/test/aedifex/repository/local.lux
index 44d03317ae..1c80c8fd8d 100644
--- a/stdlib/source/test/aedifex/repository/local.lux
+++ b/stdlib/source/test/aedifex/repository/local.lux
@@ -40,13 +40,13 @@
                repo (/.repository program fs)]
 
          uri (random.lower_cased 10)
-         expected (of ! each (of utf8.format injection)
+         expected (by ! each (by utf8.format injection)
                       (random.lower_cased 10))]
         (all _.and
              (in (do async.monad
-                   [before_upload (of repo download uri)
-                    _ (of repo upload uri expected)
-                    actual (of repo download uri)]
+                   [before_upload (by repo download uri)
+                    _ (by repo upload uri expected)
+                    actual (by repo download uri)]
                    (unit.coverage [/.repository]
                      (and (when before_upload
                             {try.#Success _} false
diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux
index c150cb06ef..69c62dea5c 100644
--- a/stdlib/source/test/aedifex/repository/remote.lux
+++ b/stdlib/source/test/aedifex/repository/remote.lux
@@ -40,7 +40,7 @@
 
 (the (url_body url)
   (-> URL (@http.Body IO))
-  (let [url (of utf8.format injection url)]
+  (let [url (by utf8.format injection url)]
     (function (_ _)
       (io.io {try.#Success [(binary.size url) url]}))))
 
@@ -97,7 +97,7 @@
          user (random.lower_cased 10)
          password (random.lower_cased 10)
 
-         content (of ! each (of utf8.format injection)
+         content (by ! each (by utf8.format injection)
                      (random.lower_cased 10))]
         (all _.and
              (_.coverage [/.repository /.user_agent /.Address]
@@ -105,13 +105,13 @@
                                         {.#Some [//identity.#user user
                                                  //identity.#password password]}
                                         address)]
-                 (and (|> (of repo download uri)
+                 (and (|> (by repo download uri)
                           io.value
-                          (try#each (of utf8.format projection))
+                          (try#each (by utf8.format projection))
                           try#conjoint
                           (try#each (text.= (%.message address uri)))
                           (try.else false))
-                      (|> (of repo upload uri content)
+                      (|> (by repo upload uri content)
                           io.value
                           (try#each (function.constant true))
                           (try.else false)))))
@@ -119,7 +119,7 @@
                (let [repo (/.repository (..good_http user password)
                                         {.#None}
                                         address)]
-                 (when (io.value (of repo upload uri content))
+                 (when (io.value (by repo upload uri content))
                    {try.#Failure error}
                    (exception.is? /.upload_failure error)
                    
@@ -129,7 +129,7 @@
                (let [repo (/.repository ..bad_http
                                         {.#None}
                                         address)]
-                 (when (io.value (of repo download uri))
+                 (when (io.value (by repo download uri))
                    {try.#Failure error}
                    (exception.is? /.download_failure error)
                    
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux
index a9664fda9a..714a565b47 100644
--- a/stdlib/source/test/lux.lux
+++ b/stdlib/source/test/lux.lux
@@ -189,14 +189,14 @@
     (_.for [/.Interface]
            (all _.and
                 (_.coverage [/.implementation]
-                  (n.= expected (of local_returner return [])))
+                  (n.= expected (by local_returner return [])))
                 (_.coverage [/.use]
                   (n.= static_return (global#return [])))
                 (_.coverage [/.open]
                   (let [(/.open "local#[0]") local_returner]
                     (n.= expected (local#return []))))
-                (_.coverage [/.of]
-                  (n.= expected (/.of local_returner return [])))
+                (_.coverage [/.by]
+                  (n.= expected (/.by local_returner return [])))
                 ))))
 
 (the for_module
@@ -328,7 +328,7 @@
 (the for_code
   Test
   (do [! random.monad]
-    [example (of ! each code.natural random.natural)
+    [example (by ! each code.natural random.natural)
      example_bit random.bit
      example_natural random.natural
      example_integer random.integer]
@@ -398,7 +398,7 @@
 
 (the identity_macro
   (/.macro (_ tokens)
-    (of meta.monad in tokens)))
+    (by meta.monad in tokens)))
 
 (the crosshair
   "This is an arbitrary text whose only purpose is to be found, somewhere, in the source-code.")
@@ -557,7 +557,7 @@
      expected_left random.natural
      expected_right random.natural
 
-     .let [existential_type (of ! each (|>> {.#Opaque}) random.natural)]
+     .let [existential_type (by ! each (|>> {.#Opaque}) random.natural)]
      expected/0 existential_type
      expected/1 existential_type]
     (<| (_.for [/.Type
@@ -929,8 +929,8 @@
 (the for_when
   Test
   (do [! random.monad]
-    [expected_natural (of ! each (n.% 1) random.natural)
-     expected_integer (of ! each (i.% +1) random.integer)
+    [expected_natural (by ! each (n.% 1) random.natural)
+     expected_integer (by ! each (i.% +1) random.integer)
      expected_revolution (random.either (in .5)
                                         (in .25))
      expected_decimal (random.either (in +0.5)
diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux
index cf542d0c47..4dc38b426e 100644
--- a/stdlib/source/test/lux/abstract/apply.lux
+++ b/stdlib/source/test/lux/abstract/apply.lux
@@ -34,7 +34,7 @@
         (all _.and
              (_.coverage [/.composite]
                (let [expected (n.+ left right)]
-                 (when (of (/.composite maybe.monad maybe.apply list.apply) on
+                 (when (by (/.composite maybe.monad maybe.apply list.apply) on
                            {.#Some (list right)}
                            {.#Some (list (n.+ left))})
                    {.#Some (list actual)}
@@ -53,9 +53,9 @@
       (do [! random.monad]
         [sample random.natural
          increase (is (Random :$/1:)
-                      (of ! each n.+ random.natural))
+                      (by ! each n.+ random.natural))
          decrease (is (Random :$/1:)
-                      (of ! each n.- random.natural))])
+                      (by ! each n.- random.natural))])
       (all _.and
            (_.for [/.functor]
                   (functorT.spec injection comparison (its /.functor it)))
diff --git a/stdlib/source/test/lux/abstract/comonad.lux b/stdlib/source/test/lux/abstract/comonad.lux
index 2acb43a776..5b9111a2e2 100644
--- a/stdlib/source/test/lux/abstract/comonad.lux
+++ b/stdlib/source/test/lux/abstract/comonad.lux
@@ -41,13 +41,13 @@
       (do [! random.monad]
         [.let [(open "/#[0]") it]
          sample random.natural
-         increase (of ! each (function (_ diff)
+         increase (by ! each (function (_ diff)
                                (|>> /#out (n.+ diff)))
                       random.natural)
-         decrease (of ! each (function (_ diff)
+         decrease (by ! each (function (_ diff)
                                (|>> /#out (n.- diff)))
                       random.natural)
-         morphism (of ! each (function (_ diff)
+         morphism (by ! each (function (_ diff)
                                (|>> /#out (n.+ diff)))
                       random.natural)
          .let [start (injection sample)
diff --git a/stdlib/source/test/lux/abstract/comonad/free.lux b/stdlib/source/test/lux/abstract/comonad/free.lux
index 3aba2c8036..54bccf974f 100644
--- a/stdlib/source/test/lux/abstract/comonad/free.lux
+++ b/stdlib/source/test/lux/abstract/comonad/free.lux
@@ -32,14 +32,14 @@
     (-> (/.Free Stream a)
         (Stream a)))
   (|> tail
-      (stream#each (of (/.comonad stream.functor) out))
+      (stream#each (by (/.comonad stream.functor) out))
       [head]
       //.pending))
 
 (the comparison
   (Comparison (/.Free Stream))
   (function (_ == left right)
-    (of (list.equivalence ==) =
+    (by (list.equivalence ==) =
         (stream.first 100 (..interpret left))
         (stream.first 100 (..interpret right)))))
 
diff --git a/stdlib/source/test/lux/abstract/enum.lux b/stdlib/source/test/lux/abstract/enum.lux
index 2a76309651..30a800f44b 100644
--- a/stdlib/source/test/lux/abstract/enum.lux
+++ b/stdlib/source/test/lux/abstract/enum.lux
@@ -26,7 +26,7 @@
 (the .public test
   Test
   (let [limit (is (Random Natural)
-                  (of random.monad each (n.% 20) random.natural))]
+                  (by random.monad each (n.% 20) random.natural))]
     (do random.monad
       [start limit
        end limit
@@ -40,14 +40,14 @@
                  (let [expected_size (|> end (n.- start) ++)
                        expected_start? (|> range list.head (maybe#each (n.= start)) (maybe.else false))
                        expected_end? (|> range list.last (maybe#each (n.= end)) (maybe.else false))
-                       can_be_backwards? (of (list.equivalence n.equivalence) =
+                       can_be_backwards? (by (list.equivalence n.equivalence) =
                                              (/.range n.enum start end)
                                              (list.reversed (/.range n.enum end start)))
                        every_element_is_a_successor? (when range
                                                        {.#Item head tail}
                                                        (|> (list#mix (function (_ next [verdict prev])
                                                                        [(and verdict
-                                                                             (n.= next (of n.enum succ prev)))
+                                                                             (n.= next (by n.enum succ prev)))
                                                                         next])
                                                                      [true head]
                                                                      tail)
diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux
index 5b4f68e1e5..b368765029 100644
--- a/stdlib/source/test/lux/abstract/equivalence.lux
+++ b/stdlib/source/test/lux/abstract/equivalence.lux
@@ -81,9 +81,9 @@
 (the random
   (Random Record)
   (do [! random.monad]
-    [size (of ! each (n.% 2) random.natural)
+    [size (by ! each (n.% 2) random.natural)
      .let [random_integer (is (Random Integer)
-                              (of ! each (|>> i.abs (i.% +1,000,000)) random.integer))]]
+                              (by ! each (|>> i.abs (i.% +1,000,000)) random.integer))]]
     (all random.and
          random.bit
          random_integer
@@ -124,12 +124,12 @@
      .let [equivalence (is (/.Equivalence (/.Equivalence Natural))
                            (implementation
                             (the (= left right)
-                              (and (bit.= (of left = leftN leftN)
-                                          (of right = leftN leftN))
-                                   (bit.= (of left = rightN rightN)
-                                          (of right = rightN rightN))
-                                   (bit.= (of left = leftN rightN)
-                                          (of right = leftN rightN))))))]]
+                              (and (bit.= (by left = leftN leftN)
+                                          (by right = leftN leftN))
+                                   (bit.= (by left = rightN rightN)
+                                          (by right = rightN rightN))
+                                   (bit.= (by left = leftN rightN)
+                                          (by right = leftN rightN))))))]]
     (<| (_.covering /._)
         (all _.and
              (_.for [/.functor]
@@ -137,23 +137,23 @@
 
              (_.coverage [/.sum]
                (let [both (/.sum n.equivalence i.equivalence)]
-                 (and (bit.= (of both = {.#Left leftN} {.#Left rightN})
-                             (of n.equivalence = leftN rightN))
-                      (bit.= (of both = {.#Right leftI} {.#Right rightI})
-                             (of i.equivalence = leftI rightI)))))
+                 (and (bit.= (by both = {.#Left leftN} {.#Left rightN})
+                             (by n.equivalence = leftN rightN))
+                      (bit.= (by both = {.#Right leftI} {.#Right rightI})
+                             (by i.equivalence = leftI rightI)))))
              (_.coverage [/.product]
                (let [both (/.product n.equivalence i.equivalence)]
-                 (bit.= (of both = [leftN leftI] [rightN rightI])
-                        (and (of n.equivalence = leftN rightN)
-                             (of i.equivalence = leftI rightI)))))
+                 (bit.= (by both = [leftN leftI] [rightN rightI])
+                        (and (by n.equivalence = leftN rightN)
+                             (by i.equivalence = leftI rightI)))))
              (_.coverage [/.recursive]
                (let [equivalence (is (/.Equivalence (List Natural))
                                      (/.recursive
                                       (|>> (/.product n.equivalence)
                                            (/.sum any.equivalence))))]
-                 (and (of equivalence = (list sample sample) (list sample sample))
-                      (not (of equivalence = (list sample sample) (list sample)))
-                      (not (of equivalence = (list sample sample) (list different different))))))
+                 (and (by equivalence = (list sample sample) (list sample sample))
+                      (not (by equivalence = (list sample sample) (list sample)))
+                      (not (by equivalence = (list sample sample) (list different different))))))
 
              ..\\polytypic
              ))))
diff --git a/stdlib/source/test/lux/abstract/format.lux b/stdlib/source/test/lux/abstract/format.lux
index 32d38fde18..678b95d594 100644
--- a/stdlib/source/test/lux/abstract/format.lux
+++ b/stdlib/source/test/lux/abstract/format.lux
@@ -43,7 +43,7 @@
     [expected random.bit]
     (<| (_.covering /._)
         (_.coverage [/.composite]
-          (when (|> expected (of ..format injection) (of ..format projection))
+          (when (|> expected (by ..format injection) (by ..format projection))
             {try.#Success actual}
             (bit.= expected actual)
             
diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux
index e0e88935d8..3a1389be53 100644
--- a/stdlib/source/test/lux/abstract/functor.lux
+++ b/stdlib/source/test/lux/abstract/functor.lux
@@ -115,7 +115,7 @@
     (<| (_.covering /._)
         (all _.and
              (_.coverage [/.sum]
-               (and (when (of (/.sum maybe.functor list.functor) each
+               (and (when (by (/.sum maybe.functor list.functor) each
                               (n.+ shift)
                               {.#Left {.#Some left}})
                       {.#Left {.#Some actual}}
@@ -123,7 +123,7 @@
 
                       _
                       false)
-                    (when (of (/.sum maybe.functor list.functor) each
+                    (when (by (/.sum maybe.functor list.functor) each
                               (n.+ shift)
                               {.#Right (list right)})
                       {.#Right (list actual)}
@@ -132,7 +132,7 @@
                       _
                       false)))
              (_.coverage [/.product]
-               (when (of (/.product maybe.functor list.functor) each
+               (when (by (/.product maybe.functor list.functor) each
                          (n.+ shift)
                          [{.#Some left} (list right)])
                  [{.#Some actualL} (list actualR)]
@@ -142,7 +142,7 @@
                  _
                  false))
              (_.coverage [/.Then /.composite]
-               (when (of (/.composite maybe.functor list.functor) each
+               (when (by (/.composite maybe.functor list.functor) each
                          (n.+ shift)
                          {.#Some (list left)})
                  {.#Some (list actual)}
@@ -170,8 +170,8 @@
         Test))
   (<| (do [! random.monad]
         [sample random.natural
-         increase (of ! each n.+ random.natural)
-         decrease (of ! each n.- random.natural)])
+         increase (by ! each n.+ random.natural)
+         decrease (by ! each n.- random.natural)])
       (_.for [/.Functor])
       (_.coverage [/.each]
         (let [(open "/#[0]") functor
diff --git a/stdlib/source/test/lux/abstract/functor/contravariant.lux b/stdlib/source/test/lux/abstract/functor/contravariant.lux
index 4c8f683d46..9082705b12 100644
--- a/stdlib/source/test/lux/abstract/functor/contravariant.lux
+++ b/stdlib/source/test/lux/abstract/functor/contravariant.lux
@@ -33,8 +33,8 @@
         (all _.and
              (_.coverage [/.each]
                (let [law_of_identity!
-                     (of equivalence =
-                         (of it each function.identity value)
+                     (by equivalence =
+                         (by it each function.identity value)
                          value)]
                  (and law_of_identity!)))
              ))))
diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux
index f08ff6a962..8f4db7a342 100644
--- a/stdlib/source/test/lux/abstract/interval.lux
+++ b/stdlib/source/test/lux/abstract/interval.lux
@@ -20,6 +20,7 @@
     [number
      ["n" natural]]]
    [meta
+    ["[0]" static]
     [macro
      ["[0]" template]]]
    [test
@@ -170,7 +171,7 @@
   Test
   (do [! random.monad]
     [[l m r] (|> (random.set n.hash 3 random.natural)
-                 (of ! each (|>> set.list
+                 (by ! each (|>> set.list
                                  (list.sorted n.<)
                                  (pipe.when
                                    (list b t1 t2)
@@ -193,7 +194,7 @@
   Test
   (do [! random.monad]
     [[b t1 t2] (|> (random.set n.hash 3 random.natural)
-                   (of ! each (|>> set.list
+                   (by ! each (|>> set.list
                                    (list.sorted n.<)
                                    (pipe.when
                                      (list b t1 t2)
@@ -221,7 +222,7 @@
   (do [! random.monad]
     [some_interval ..interval
      [x0 x1 x2 x3] (|> (random.set n.hash 4 random.natural)
-                       (of ! each (|>> set.list
+                       (by ! each (|>> set.list
                                        (list.sorted n.<)
                                        (pipe.when
                                          (list x0 x1 x2 x3)
@@ -255,7 +256,7 @@
   (do [! random.monad]
     [some_interval ..interval
      [x0 x1 x2 x3] (|> (random.set n.hash 4 random.natural)
-                       (of ! each (|>> set.list
+                       (by ! each (|>> set.list
                                        (list.sorted n.<)
                                        (pipe.when
                                          (list x0 x1 x2 x3)
@@ -283,8 +284,9 @@
   Test
   (<| (_.covering /._)
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..interval))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..interval)))
            
            ..types
            ..boundaries
diff --git a/stdlib/source/test/lux/abstract/monad.lux b/stdlib/source/test/lux/abstract/monad.lux
index 486cf17e1a..da6a458afc 100644
--- a/stdlib/source/test/lux/abstract/monad.lux
+++ b/stdlib/source/test/lux/abstract/monad.lux
@@ -36,13 +36,13 @@
   (<| (_.for [/.Monad])
       (do [! random.monad]
         [sample random.natural
-         increase (of ! each (function (_ diff)
+         increase (by ! each (function (_ diff)
                                (|>> (n.+ diff) /#in))
                       random.natural)
-         decrease (of ! each (function (_ diff)
+         decrease (by ! each (function (_ diff)
                                (|>> (n.- diff) /#in))
                       random.natural)
-         morphism (of ! each (function (_ diff)
+         morphism (by ! each (function (_ diff)
                                (|>> (n.+ diff) /#in))
                       random.natural)
          .let [left_identity!
@@ -83,34 +83,34 @@
                (n.= (++ mono)
                     (is (Pure Natural)
                         (/.then pure.monad
-                                (|>> ++ (of pure.monad in))
-                                (of pure.monad in mono)))))
+                                (|>> ++ (by pure.monad in))
+                                (by pure.monad in mono)))))
              (_.coverage [/.all]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list#each ++ poly)
                    (|> poly
-                       (list#each (|>> ++ (of pure.monad in)))
+                       (list#each (|>> ++ (by pure.monad in)))
                        (is (List (Pure Natural)))
                        (/.all pure.monad)
                        (is (Pure (List Natural))))))
              (_.coverage [/.each]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list#each ++ poly)
                    (|> poly
-                       (/.each pure.monad (|>> ++ (of pure.monad in)))
+                       (/.each pure.monad (|>> ++ (by pure.monad in)))
                        (is (Pure (List Natural))))))
              (_.coverage [/.only]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list.only n.even? poly)
                    (|> poly
-                       (/.only pure.monad (|>> n.even? (of pure.monad in)))
+                       (/.only pure.monad (|>> n.even? (by pure.monad in)))
                        (is (Pure (List Natural))))))
              (_.coverage [/.mix]
                (n.= (list#mix n.+ 0 poly)
                     (|> poly
                         (/.mix pure.monad
                                (function (_ part whole)
-                                 (of pure.monad in
+                                 (by pure.monad in
                                      (n.+ part whole)))
                                0)
                         (is (Pure Natural)))))
diff --git a/stdlib/source/test/lux/abstract/monad/free.lux b/stdlib/source/test/lux/abstract/monad/free.lux
index 4facf8dd58..17e9e7d09f 100644
--- a/stdlib/source/test/lux/abstract/monad/free.lux
+++ b/stdlib/source/test/lux/abstract/monad/free.lux
@@ -43,7 +43,7 @@
 (the comparison
   (Comparison (/.Free List))
   (function (_ == left right)
-    (of (list.equivalence ==) =
+    (by (list.equivalence ==) =
         (..interpret left)
         (..interpret right))))
 
diff --git a/stdlib/source/test/lux/abstract/monoid.lux b/stdlib/source/test/lux/abstract/monoid.lux
index 216891d709..56f77853f9 100644
--- a/stdlib/source/test/lux/abstract/monoid.lux
+++ b/stdlib/source/test/lux/abstract/monoid.lux
@@ -28,11 +28,11 @@
     (<| (_.covering /._)
         (all _.and
              (_.coverage [/.and]
-               (let [[naturalLR integerLR] (of (/.and natural.addition integer.multiplication) composite
+               (let [[naturalLR integerLR] (by (/.and natural.addition integer.multiplication) composite
                                                [naturalL integerL] [naturalR integerR])]
-                 (and (natural.= (of natural.addition composite naturalL naturalR)
+                 (and (natural.= (by natural.addition composite naturalL naturalR)
                                  naturalLR)
-                      (integer.= (of integer.multiplication composite integerL integerR)
+                      (integer.= (by integer.multiplication composite integerL integerR)
                                  integerLR))))
              ))))
 
diff --git a/stdlib/source/test/lux/abstract/order.lux b/stdlib/source/test/lux/abstract/order.lux
index 8b9d31763c..bbc5cd99cd 100644
--- a/stdlib/source/test/lux/abstract/order.lux
+++ b/stdlib/source/test/lux/abstract/order.lux
@@ -33,12 +33,12 @@
          .let [equivalence (is (Equivalence (/.Order Natural))
                                (implementation
                                 (the (= leftO rightO)
-                                  (and (bit.= (of leftO < left left)
-                                              (of rightO < left left))
-                                       (bit.= (of leftO < right right)
-                                              (of rightO < right right))
-                                       (bit.= (of leftO < left right)
-                                              (of rightO < left right))))))]])
+                                  (and (bit.= (by leftO < left left)
+                                              (by rightO < left left))
+                                       (bit.= (by leftO < right right)
+                                              (by rightO < right right))
+                                       (bit.= (by leftO < left right)
+                                              (by rightO < left right))))))]])
       (all _.and
            (_.for [/.functor]
                   (contravariantT.spec equivalence n.order /.functor))
@@ -51,7 +51,7 @@
            (_.coverage [/.<=]
              (and (/.<= n.order left left)
                   (/.<= n.order right right)
-                  (bit.= (of n.order < left right)
+                  (bit.= (by n.order < left right)
                          (/.<= n.order left right))))
            (_.coverage [/.>=]
              (and (/.>= n.order left left)
diff --git a/stdlib/source/test/lux/algorithm/any.lux b/stdlib/source/test/lux/algorithm/any.lux
index 3db9eef2ab..61701fc318 100644
--- a/stdlib/source/test/lux/algorithm/any.lux
+++ b/stdlib/source/test/lux/algorithm/any.lux
@@ -43,11 +43,11 @@
   Test
   (do [! random.monad]
     [.let [natural (is (Random Natural)
-                       (of ! each (n.% 1,000,000) random.natural))
+                       (by ! each (n.% 1,000,000) random.natural))
            even (is (Random Natural)
-                    (of ! each (n.* 2) natural))
+                    (by ! each (n.* 2) natural))
            odd (is (Random Natural)
-                   (of ! each (n.+ 1) even))]
+                   (by ! each (n.+ 1) even))]
      even_0 even
      even_1 even
      odd_0 odd]
diff --git a/stdlib/source/test/lux/algorithm/any?.lux b/stdlib/source/test/lux/algorithm/any?.lux
index d468a19802..79eaf64107 100644
--- a/stdlib/source/test/lux/algorithm/any?.lux
+++ b/stdlib/source/test/lux/algorithm/any?.lux
@@ -39,11 +39,11 @@
   Test
   (do [! random.monad]
     [.let [natural (is (Random Natural)
-                       (of ! each (n.% 1,000,000) random.natural))
+                       (by ! each (n.% 1,000,000) random.natural))
            even (is (Random Natural)
-                    (of ! each (n.* 2) natural))
+                    (by ! each (n.* 2) natural))
            odd (is (Random Natural)
-                   (of ! each (n.+ 1) even))]
+                   (by ! each (n.+ 1) even))]
      even_0 even
      even_1 even
      odd_0 odd]
diff --git a/stdlib/source/test/lux/algorithm/every?.lux b/stdlib/source/test/lux/algorithm/every?.lux
index b3fc5c09c0..84c6bbc885 100644
--- a/stdlib/source/test/lux/algorithm/every?.lux
+++ b/stdlib/source/test/lux/algorithm/every?.lux
@@ -39,11 +39,11 @@
   Test
   (do [! random.monad]
     [.let [natural (is (Random Natural)
-                       (of ! each (n.% 1,000,000) random.natural))
+                       (by ! each (n.% 1,000,000) random.natural))
            even (is (Random Natural)
-                    (of ! each (n.* 2) natural))
+                    (by ! each (n.* 2) natural))
            odd (is (Random Natural)
-                   (of ! each (n.+ 1) even))]
+                   (by ! each (n.+ 1) even))]
      even_0 even
      even_1 even
      odd_0 odd]
diff --git a/stdlib/source/test/lux/algorithm/item.lux b/stdlib/source/test/lux/algorithm/item.lux
index bd48f9ad53..14e2dad692 100644
--- a/stdlib/source/test/lux/algorithm/item.lux
+++ b/stdlib/source/test/lux/algorithm/item.lux
@@ -36,7 +36,7 @@
 (the .public test
   Test
   (do [! random.monad]
-    [arity (of ! each (n.% 10) random.natural)
+    [arity (by ! each (n.% 10) random.natural)
      items (random.list arity random.natural)]
     (<| (_.covering /._)
         (_.for [/.Algorithm])
diff --git a/stdlib/source/test/lux/algorithm/mix.lux b/stdlib/source/test/lux/algorithm/mix.lux
index e709079fe0..107619a0b3 100644
--- a/stdlib/source/test/lux/algorithm/mix.lux
+++ b/stdlib/source/test/lux/algorithm/mix.lux
@@ -27,7 +27,7 @@
     (<| (_.covering /._)
         (all _.and
              (_.coverage [/.with_monoid]
-               (n.= (of list.mix mix (of n.addition composite) (of n.addition identity) samples)
+               (n.= (by list.mix mix (by n.addition composite) (by n.addition identity) samples)
                     (/.with_monoid n.addition list.mix samples)))
              ))))
 
diff --git a/stdlib/source/test/lux/algorithm/size.lux b/stdlib/source/test/lux/algorithm/size.lux
index 1562ac7bed..05b63e3671 100644
--- a/stdlib/source/test/lux/algorithm/size.lux
+++ b/stdlib/source/test/lux/algorithm/size.lux
@@ -34,7 +34,7 @@
 (the .public test
   Test
   (do [! random.monad]
-    [expected (of ! each (n.% 10) random.natural)
+    [expected (by ! each (n.% 10) random.natural)
      sample (random.list expected random.natural)]
     (<| (_.covering /._)
         (_.for [/.Algorithm])
diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux
index 7231bb10f7..cc08837ac1 100644
--- a/stdlib/source/test/lux/control/concurrency/actor.lux
+++ b/stdlib/source/test/lux/control/concurrency/actor.lux
@@ -176,9 +176,9 @@
                        false))))
              
              (do !
-               [num_events (of ! each (|>> (n.% 10) ++) random.natural)
+               [num_events (by ! each (|>> (n.% 10) ++) random.natural)
                 events (random.list num_events random.natural)
-                num_observations (of ! each (n.% num_events) random.natural)
+                num_observations (by ! each (n.% num_events) random.natural)
                 .let [expected (list.first num_observations events)
                       sink (is (Atom (Sequence Natural))
                                (atom.atom sequence.empty))]]
@@ -202,7 +202,7 @@
                       _ (/.obituary agent)
                       actual (async.future (atom.read! sink))]
                      (unit.coverage [/.Stop /.observe! /.obituary]
-                       (of (list.equivalence n.equivalence) = expected (sequence.as_list actual))))))
+                       (by (list.equivalence n.equivalence) = expected (sequence.as_list actual))))))
              (in (do async.monad
                    [actor (async.future (/.spawn! /.default initial_state))
                     actual (/.request! /.state actor)]
diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux
index dd09db2edd..a20b9d0408 100644
--- a/stdlib/source/test/lux/control/concurrency/async.lux
+++ b/stdlib/source/test/lux/control/concurrency/async.lux
@@ -58,7 +58,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [waiting_time (|> random.natural (of ! each (|>> (n.% ..delay) (n.+ ..delay))))
+        [waiting_time (|> random.natural (by ! each (|>> (n.% ..delay) (n.+ ..delay))))
          expected random.natural
          dummy random.natural
          .let [not_dummy (|> random.natural (random.only (|>> (n.= dummy) not)))]
diff --git a/stdlib/source/test/lux/control/concurrency/behavioral.lux b/stdlib/source/test/lux/control/concurrency/behavioral.lux
index 94451e8b0a..412004b5ef 100644
--- a/stdlib/source/test/lux/control/concurrency/behavioral.lux
+++ b/stdlib/source/test/lux/control/concurrency/behavioral.lux
@@ -77,10 +77,10 @@
            ...                              [[old new] (async.future (atom.update! (n.- shift) counter))]
            ...                              (in new))))]
            ...       (do async.monad
-           ...         [_ (async.future (of feed! feed (increase [])))
-           ...          _ (async.future (of feed! feed (increase [])))
-           ...          _ (async.future (of feed! feed (decrease [])))
-           ...          _ (async.future (of feed! close))
+           ...         [_ (async.future (by feed! feed (increase [])))
+           ...          _ (async.future (by feed! feed (increase [])))
+           ...          _ (async.future (by feed! feed (decrease [])))
+           ...          _ (async.future (by feed! close))
            ...          scenario/+ scenario/+
            ...          scenario/- scenario/-
            ...          count (async.future (atom.read! counter))]
diff --git a/stdlib/source/test/lux/control/concurrency/csp.lux b/stdlib/source/test/lux/control/concurrency/csp.lux
index 8bb179a5b4..e103030f20 100644
--- a/stdlib/source/test/lux/control/concurrency/csp.lux
+++ b/stdlib/source/test/lux/control/concurrency/csp.lux
@@ -25,7 +25,7 @@
 
 (the injection
   (Injection /.Process)
-  (of /.monad in))
+  (by /.monad in))
 
 (the comparison
   (Comparison /.Process)
diff --git a/stdlib/source/test/lux/control/concurrency/event.lux b/stdlib/source/test/lux/control/concurrency/event.lux
index 3cffb535ac..ca44901a35 100644
--- a/stdlib/source/test/lux/control/concurrency/event.lux
+++ b/stdlib/source/test/lux/control/concurrency/event.lux
@@ -28,9 +28,9 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [loop_name (of ! each %.natural random.natural)
-         error (of ! each %.natural random.natural)
-         expected_events (of ! each (n.% 10) random.natural)]
+        [loop_name (by ! each %.natural random.natural)
+         error (by ! each %.natural random.natural)
+         expected_events (by ! each (n.% 10) random.natural)]
         (all _.and
              (_.coverage [/.loop]
                (and (let [[schedule! value] (/.loop loop_name)]
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index ecb5456bd0..6548d1f256 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.lux
@@ -58,7 +58,7 @@
         (Async (List a))))
   (when amount_of_polls
     0 (do async.monad
-        [_ (async.future (of sink close))]
+        [_ (async.future (by sink close))]
         (in {.#End}))
     _ (do [! async.monad]
         [event channel]
@@ -67,7 +67,7 @@
           (in {.#End})
 
           {.#Some [head tail]}
-          (of ! each (|>> {.#Item head})
+          (by ! each (|>> {.#Item head})
               (take_amount (-- amount_of_polls) [channel sink]))))))
 
 (the .public test
@@ -96,8 +96,8 @@
                         (do (try.with io.monad)
                           [.let [[channel sink] (is [(/.Channel Natural) (/.Sink Natural)]
                                                     (/.channel []))]
-                           _ (of sink feed sample)
-                           _ (of sink close)]
+                           _ (by sink feed sample)
+                           _ (by sink close)]
                           (in channel)))
                    {try.#Success channel}
                    (io.value
@@ -117,8 +117,8 @@
                         (do (try.with io.monad)
                           [.let [[channel sink] (is [(/.Channel Natural) (/.Sink Natural)]
                                                     (/.channel []))]
-                           _ (of sink close)]
-                          (of sink feed sample)))
+                           _ (by sink close)]
+                          (by sink feed sample)))
                    {try.#Success _}
                    false
                    
@@ -167,7 +167,7 @@
                       listened (|> sink
                                    atom.read!
                                    async.future
-                                   (of ! each sequence.as_list))]
+                                   (by ! each sequence.as_list))]
                      (unit.coverage [/.Subscriber /.subscribe!]
                        (list#= inputs listened))))
                (in (do async.monad
@@ -199,8 +199,8 @@
                        (list#= (list distinct/0 distinct/1 distinct/2)
                                actual))))
                (do !
-                 [polling_delay (of ! each (|>> (n.% 10) ++) random.natural)
-                  amount_of_polls (of ! each (|>> (n.% 10) ++) random.natural)]
+                 [polling_delay (by ! each (|>> (n.% 10) ++) random.natural)
+                  amount_of_polls (by ! each (|>> (n.% 10) ++) random.natural)]
                  (all _.and
                       (in (do [! async.monad]
                             [actual (..take_amount amount_of_polls (/.poll polling_delay (is (IO Natural) (io.io sample))))
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index 0de7da1d9b..19e9783916 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -43,7 +43,7 @@
   (_.for [/.Semaphore]
          (all _.and
               (do [! random.monad]
-                [initial_open_positions (|> random.natural (of ! each (|>> (n.% 10) (n.max 1))))
+                [initial_open_positions (|> random.natural (by ! each (|>> (n.% 10) (n.max 1))))
                  .let [semaphore (/.semaphore initial_open_positions)]]
                 (in (do async.monad
                       [it (async.within ..delay (/.wait! semaphore))]
@@ -55,7 +55,7 @@
                           {.#None}
                           false)))))
               (do [! random.monad]
-                [initial_open_positions (|> random.natural (of ! each (|>> (n.% 10) (n.max 1))))
+                [initial_open_positions (|> random.natural (by ! each (|>> (n.% 10) (n.max 1))))
                  .let [semaphore (/.semaphore initial_open_positions)]]
                 (in (do [! async.monad]
                       [_ (monad.each ! /.wait! (list.repeated initial_open_positions semaphore))
@@ -68,7 +68,7 @@
                           {.#None}
                           true)))))
               (do [! random.monad]
-                [initial_open_positions (|> random.natural (of ! each (|>> (n.% 10) (n.max 1))))
+                [initial_open_positions (|> random.natural (by ! each (|>> (n.% 10) (n.max 1))))
                  .let [semaphore (/.semaphore initial_open_positions)]]
                 (in (do [! async.monad]
                       [_ (monad.each ! /.wait! (list.repeated initial_open_positions semaphore))
@@ -84,7 +84,7 @@
                           _
                           false)))))
               (do [! random.monad]
-                [initial_open_positions (|> random.natural (of ! each (|>> (n.% 10) (n.max 1))))
+                [initial_open_positions (|> random.natural (by ! each (|>> (n.% 10) (n.max 1))))
                  .let [semaphore (/.semaphore initial_open_positions)]]
                 (in (do async.monad
                       [outcome (/.signal! semaphore)]
@@ -102,7 +102,7 @@
   (_.for [/.Mutex]
          (all _.and
               (do [! random.monad]
-                [repetitions (|> random.natural (of ! each (|>> (n.% 100) (n.max 10))))
+                [repetitions (|> random.natural (by ! each (|>> (n.% 100) (n.max 10))))
                  .let [resource (atom.atom "")
                        expected_As (text.together (list.repeated repetitions "A"))
                        expected_Bs (text.together (list.repeated repetitions "B"))
@@ -159,7 +159,7 @@
                     _
                     false)))
               (do [! random.monad]
-                [limit (of ! each (|>> (n.% 9) ++) random.natural)
+                [limit (by ! each (|>> (n.% 9) ++) random.natural)
                  .let [barrier (/.barrier (maybe.trusted (/.limit limit)))
                        resource (atom.atom "")]]
                 (in (do [! async.monad]
diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux
index 0fe3d85f4a..cbf13e82b6 100644
--- a/stdlib/source/test/lux/control/concurrency/stm.lux
+++ b/stdlib/source/test/lux/control/concurrency/stm.lux
@@ -33,7 +33,7 @@
 
 (the injection
   (Injection /.STM)
-  (of /.monad in))
+  (by /.monad in))
 
 (the comparison
   (Comparison /.STM)
@@ -47,7 +47,7 @@
       (do [! random.monad]
         [dummy random.natural
          expected random.natural
-         iterations_per_process (|> random.natural (of ! each (n.% 100)))]
+         iterations_per_process (|> random.natural (by ! each (n.% 100)))]
         (all _.and
              (_.for [/.functor]
                     (functorT.spec ..injection ..comparison /.functor))
@@ -57,7 +57,7 @@
                     (monadT.spec ..injection ..comparison /.monad))
 
              (in (do async.monad
-                   [actual (/.commit! (of /.monad in expected))]
+                   [actual (/.commit! (by /.monad in expected))]
                    (unit.coverage [/.commit!]
                      (n.= expected actual))))
              (in (do async.monad
@@ -90,11 +90,11 @@
                           [follower sink] (io.value (/.changes box))]
                     _ (/.commit! (/.write expected box))
                     _ (/.commit! (/.update (n.* 2) box))
-                    _ (async.future (of sink close))
+                    _ (async.future (by sink close))
                     _ (/.commit! (/.update (n.* 3) box))
                     changes (frp.list follower)]
                    (unit.coverage [/.changes]
-                     (of (list.equivalence n.equivalence) =
+                     (by (list.equivalence n.equivalence) =
                          (list expected (n.* 2 expected))
                          changes))))
              (in (let [var (/.var 0)]
diff --git a/stdlib/source/test/lux/control/concurrency/structured.lux b/stdlib/source/test/lux/control/concurrency/structured.lux
index 330437b455..dcd3d49b08 100644
--- a/stdlib/source/test/lux/control/concurrency/structured.lux
+++ b/stdlib/source/test/lux/control/concurrency/structured.lux
@@ -31,7 +31,7 @@
 
 (the injection
   (Injection /.Async)
-  (of /.monad in))
+  (by /.monad in))
 
 (the comparison
   (Comparison /.Async)
@@ -65,12 +65,12 @@
 (the .public test
   Test
   (do [! random.monad]
-    [short (of ! each (|>> (n.% 10) ++) random.natural)
-     long (of ! each (|>> (n.% 2) ++ (n.* 50)) random.natural)
+    [short (by ! each (|>> (n.% 10) ++) random.natural)
+     long (by ! each (|>> (n.% 2) ++ (n.* 50)) random.natural)
      leftE random.natural
      rightE random.natural
 
-     in_parallel (of ! each (|>> (n.% 10) (n.+ 2)) random.natural)]
+     in_parallel (by ! each (|>> (n.% 10) (n.+ 2)) random.natural)]
     (<| (_.covering /._)
         (_.for [/.Async])
         (all _.and
@@ -81,7 +81,7 @@
 
              (in (do async.monad
                    [leftA (<| /.async
-                              (of /.monad in leftE))]
+                              (by /.monad in leftE))]
                    (unit.coverage [/.async]
                      (|> leftA
                          (maybe#each (same? leftE))
@@ -148,7 +148,7 @@
                                          (function (_ scope))
                                          (/.schedule! scope long (function (_ _) (io#in {.#Some []})))))))
              (_.coverage [/.completed?]
-               (io.value (/.completed? (of /.monad in []))))
+               (io.value (/.completed? (by /.monad in []))))
              (in (do async.monad
                    [.let [[done? done!] (is [(async.Async Bit) (async.Resolver Bit)]
                                             (async.async []))
@@ -212,7 +212,7 @@
                                          (/.schedule! scope long (function (_ _) (io#in {.#Some leftE}))))]
                             (do !
                               [_ (async.future (/.cancel! left))]
-                              (/.async (/.or left (of /.monad in rightE)))))]
+                              (/.async (/.or left (by /.monad in rightE)))))]
                    (unit.coverage [/.or]
                      (when [left right]
                        [{.#Some {.#Left leftA}}
@@ -230,7 +230,7 @@
                                          (/.schedule! scope long (function (_ _) (io#in {.#Some leftE}))))]
                             (do !
                               [_ (async.future (/.cancel! left))]
-                              (/.async (/.either left (of /.monad in rightE)))))]
+                              (/.async (/.either left (by /.monad in rightE)))))]
                    (unit.coverage [/.either]
                      (when [left right]
                        [{.#Some leftA}
diff --git a/stdlib/source/test/lux/control/concurrency/thread.lux b/stdlib/source/test/lux/control/concurrency/thread.lux
index a40529fb1a..9766db036e 100644
--- a/stdlib/source/test/lux/control/concurrency/thread.lux
+++ b/stdlib/source/test/lux/control/concurrency/thread.lux
@@ -35,7 +35,7 @@
       (do [! random.monad]
         [dummy random.natural
          expected random.natural
-         delay (of ! each (|>> (n.% 5) (n.+ 5))
+         delay (by ! each (|>> (n.% 5) (n.+ 5))
                    random.natural)]
         (all _.and
              (_.coverage [/.parallelism]
diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux
index ffcebdc58e..57e1b5a6e4 100644
--- a/stdlib/source/test/lux/control/continuation.lux
+++ b/stdlib/source/test/lux/control/continuation.lux
@@ -31,7 +31,7 @@
   (for_any (_ o)
     (Injection (for_any (_ i)
                  (/.Cont i o))))
-  (|>> (of /.monad in)))
+  (by /.monad in))
 
 (the comparison
   (Comparison /.Cont)
diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux
index d93bcf553d..c08389480b 100644
--- a/stdlib/source/test/lux/control/exception.lux
+++ b/stdlib/source/test/lux/control/exception.lux
@@ -34,7 +34,7 @@
     [expected random.natural
      wrong (|> random.natural (random.only (|>> (n.= expected) not)))
      assertion_succeeded? random.bit
-     .let [report_element (of ! each %.natural random.natural)]
+     .let [report_element (by ! each %.natural random.natural)]
      field0 report_element
      value0 report_element
      field1 report_element
diff --git a/stdlib/source/test/lux/control/function.lux b/stdlib/source/test/lux/control/function.lux
index ab9995a6a6..6337741180 100644
--- a/stdlib/source/test/lux/control/function.lux
+++ b/stdlib/source/test/lux/control/function.lux
@@ -38,8 +38,8 @@
   Test
   (do [! random.monad]
     [expected random.natural
-     f0 (of ! each n.+ random.natural)
-     f1 (of ! each n.* random.natural)
+     f0 (by ! each n.+ random.natural)
+     f1 (by ! each n.* random.natural)
      dummy random.natural
      extra (|> random.natural (random.only (|>> (n.= expected) not)))]
     (<| (_.covering /._)
@@ -50,7 +50,7 @@
                                       (n.= (left extra)
                                            (right extra)))))
                    generator (is (Random (-> Natural Natural))
-                                 (of ! each n.- random.natural))]
+                                 (by ! each n.- random.natural))]
                (_.for [/.monoid]
                       (monoidT.spec equivalence /.monoid generator)))
              
diff --git a/stdlib/source/test/lux/control/function/inline.lux b/stdlib/source/test/lux/control/function/inline.lux
index 301275c3c7..4cdce0fb00 100644
--- a/stdlib/source/test/lux/control/function/inline.lux
+++ b/stdlib/source/test/lux/control/function/inline.lux
@@ -31,7 +31,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [.let [measurement (of ! each (i.% +1000) random.integer)]
+        [.let [measurement (by ! each (i.% +1000) random.integer)]
          m0 measurement
          m1 measurement])
       (all _.and
diff --git a/stdlib/source/test/lux/control/function/memo.lux b/stdlib/source/test/lux/control/function/memo.lux
index fe846a80aa..2cb57ebbd1 100644
--- a/stdlib/source/test/lux/control/function/memo.lux
+++ b/stdlib/source/test/lux/control/function/memo.lux
@@ -68,7 +68,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [input (|> random.natural (of ! each (|>> (n.% 5) (n.+ 21))))])
+        [input (|> random.natural (by ! each (|>> (n.% 5) (n.+ 21))))])
       (_.for [/.Memo])
       (all _.and
            (_.coverage [/.closed /.none]
@@ -116,7 +116,7 @@
                             (is (//.Mixin Natural (State (Dictionary Natural Natural) Natural))
                                 (function (factorial delegate again input)
                                   (when input
-                                    (^.or 0 1) (of state.monad in 1)
+                                    (^.or 0 1) (by state.monad in 1)
                                     _ (do state.monad
                                         [output' (again (-- input))]
                                         (in (n.* input output')))))))
diff --git a/stdlib/source/test/lux/control/function/mixin.lux b/stdlib/source/test/lux/control/function/mixin.lux
index a12c82b321..2f25b674d5 100644
--- a/stdlib/source/test/lux/control/function/mixin.lux
+++ b/stdlib/source/test/lux/control/function/mixin.lux
@@ -33,7 +33,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [input (|> random.natural (of ! each (|>> (n.% 6) (n.+ 20))))
+        [input (|> random.natural (by ! each (|>> (n.% 6) (n.+ 20))))
          dummy random.natural
          shift (|> random.natural (random.only (|>> (n.= dummy) not)))
          .let [equivalence (is (Equivalence (/.Mixin Natural Natural))
diff --git a/stdlib/source/test/lux/control/function/mutual.lux b/stdlib/source/test/lux/control/function/mutual.lux
index 9d7749fea5..eecf80e6aa 100644
--- a/stdlib/source/test/lux/control/function/mutual.lux
+++ b/stdlib/source/test/lux/control/function/mutual.lux
@@ -20,7 +20,7 @@
 (the test_let
   Test
   (do [! random.monad]
-    [sample (of ! each (n.% 10) random.natural)
+    [sample (by ! each (n.% 10) random.natural)
      .let [expected (n.even? sample)]]
     (<| (_.coverage [/.let])
         (/.let [(even? number)
@@ -53,7 +53,7 @@
 (the test_def
   Test
   (do [! random.monad]
-    [sample (of ! each (n.% 10) random.natural)
+    [sample (by ! each (n.% 10) random.natural)
      .let [expected (n.even? sample)]]
     (<| (_.coverage [/.the])
         (and (bit.= expected (..even? sample))
diff --git a/stdlib/source/test/lux/control/function/predicate.lux b/stdlib/source/test/lux/control/function/predicate.lux
index 0d49299a63..206b041e09 100644
--- a/stdlib/source/test/lux/control/function/predicate.lux
+++ b/stdlib/source/test/lux/control/function/predicate.lux
@@ -51,7 +51,7 @@
            (let [generator (is (Random (/.Predicate Natural))
                                (|> random.natural
                                    (random.only (|>> (n.= 0) not))
-                                   (of ! each multiple?)))]
+                                   (by ! each multiple?)))]
              (all _.and
                   (_.for [/.union]
                          (monoidT.spec equivalence /.union generator))
diff --git a/stdlib/source/test/lux/control/lazy.lux b/stdlib/source/test/lux/control/lazy.lux
index c956c151a1..6b737329db 100644
--- a/stdlib/source/test/lux/control/lazy.lux
+++ b/stdlib/source/test/lux/control/lazy.lux
@@ -34,13 +34,13 @@
 (the comparison
   (Comparison Lazy)
   (function (_ ==)
-    (of (/.equivalence ==) =)))
+    (by (/.equivalence ==) =)))
 
 (the .public lazy
   (for_any (_ a)
     (-> (Random a)
         (Random (Lazy a))))
-  (of random.functor each (|>> /.lazy)))
+  (by random.functor each (|>> /.lazy)))
 
 (the .public test
   Test
diff --git a/stdlib/source/test/lux/control/logic.lux b/stdlib/source/test/lux/control/logic.lux
index c7c3514e5e..9392d6fe34 100644
--- a/stdlib/source/test/lux/control/logic.lux
+++ b/stdlib/source/test/lux/control/logic.lux
@@ -301,8 +301,8 @@
                             expected_woman (/.value expected_woman)]
                            (in [expected_man expected_woman])))
                     (list [actual_man actual_woman])
-                    (and (of /.text = man/2 actual_man)
-                         (of /.text = woman/2 actual_woman))
+                    (and (by /.text = man/2 actual_man)
+                         (by /.text = woman/2 actual_woman))
 
                     _
                     false)
diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux
index eabf59f279..a924d98911 100644
--- a/stdlib/source/test/lux/control/maybe.lux
+++ b/stdlib/source/test/lux/control/maybe.lux
@@ -43,7 +43,7 @@
                   (equivalenceT.spec (/.equivalence n.equivalence) (random.maybe random.natural)))
            (_.for [/.hash]
                   (|> random.natural
-                      (of random.monad each (|>> {.#Some}))
+                      (by random.monad each (|>> {.#Some}))
                       (hashT.spec (/.hash n.hash))))
            (_.for [/.monoid]
                   (monoidT.spec (/.equivalence n.equivalence) /.monoid (random.maybe random.natural)))
@@ -87,7 +87,7 @@
            (do random.monad
              [value random.natural]
              (_.coverage [/.list]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list value)
                    (/.list {.#Some value}))))
            (do random.monad
diff --git a/stdlib/source/test/lux/control/projection.lux b/stdlib/source/test/lux/control/projection.lux
index edd10fa30f..a4b52c0aae 100644
--- a/stdlib/source/test/lux/control/projection.lux
+++ b/stdlib/source/test/lux/control/projection.lux
@@ -84,7 +84,7 @@
   Test
   (do [! random.monad]
     [expected0 random.natural
-     variadic (of ! each (|>> (n.max 1) (n.min 20)) random.natural)
+     variadic (by ! each (|>> (n.max 1) (n.min 20)) random.natural)
      expected+ (random.list variadic random.natural)
      even0 (random.only n.even? random.natural)
      odd0 (random.only n.odd? random.natural)
@@ -103,7 +103,7 @@
            (and (|> (list#each code.natural expected+)
                     (/.value (/.some .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) = expected+ actual)))
+                           (by (list.equivalence n.equivalence) = expected+ actual)))
                 (|> (list#each (|>> .integer code.integer) expected+)
                     (/.value (/.some .natural))
                     (match {.#End}
@@ -112,7 +112,7 @@
            (and (|> (list#each code.natural expected+)
                     (/.value (/.many .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) = expected+ actual)))
+                           (by (list.equivalence n.equivalence) = expected+ actual)))
                 (|> (list (code.natural expected0))
                     (/.value (/.many .natural))
                     (match (list actual)
@@ -174,8 +174,8 @@
 (the combinators_1
   Test
   (do [! random.monad]
-    [variadic (of ! each (|>> (n.max 1) (n.min 20)) random.natural)
-     times (of ! each (n.% variadic) random.natural)
+    [variadic (by ! each (|>> (n.max 1) (n.min 20)) random.natural)
+     times (by ! each (n.% variadic) random.natural)
      expected random.natural
      wrong (|> random.natural (random.only (|>> (n.= expected) not)))
      expected+ (random.list variadic random.natural)
@@ -185,7 +185,7 @@
            (and (|> (list#each code.natural expected+)
                     (/.value (/.exactly times .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                (list.first times expected+)
                                actual)))
                 (|> (list#each code.natural expected+)
@@ -195,7 +195,7 @@
            (and (|> (list#each code.natural expected+)
                     (/.value (/.at_least times .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                expected+
                                actual)))
                 (|> (list#each code.natural expected+)
@@ -205,44 +205,44 @@
            (and (|> (list#each code.natural expected+)
                     (/.value (/.at_most times .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                (list.first times expected+)
                                actual)))
                 (|> (list#each code.natural expected+)
                     (/.value (/.at_most (++ variadic) .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                expected+
                                actual)))))
          (_.coverage [/.between]
            (and (|> (list#each code.natural expected+)
                     (/.value (/.between times (n.- times variadic) .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                expected+
                                actual)))
                 (|> (list#each code.natural (list.first times expected+))
                     (/.value (/.between times (n.- times variadic) .natural))
                     (match actual
-                           (of (list.equivalence n.equivalence) =
+                           (by (list.equivalence n.equivalence) =
                                (list.first times expected+)
                                actual)))))
          (_.coverage [/.separated_by]
            (|> (list.interposed (code.text separator) (list#each code.natural expected+))
                (/.value (/.separated_by (.this (code.text separator)) .natural))
                (match actual
-                      (of (list.equivalence n.equivalence) =
+                      (by (list.equivalence n.equivalence) =
                           expected+
                           actual))))
          (_.coverage [/.remaining]
            (|> (list#each code.natural expected+)
                (/.value /.remaining)
                (match actual
-                      (of (list.equivalence code.equivalence) =
+                      (by (list.equivalence code.equivalence) =
                           (list#each code.natural expected+)
                           actual))))
          (_.coverage [/.else]
-           (and (|> (/.value (/.else wrong (of /.monad in expected)) (list))
+           (and (|> (/.value (/.else wrong (by /.monad in expected)) (list))
                     (match actual (n.= expected actual)))
                 (|> (/.value (/.else expected (/.failure "yolo"))
                              (list))
@@ -326,7 +326,7 @@
 
 (the injection
   (Injection (for_any (_ a i) (Projection i a)))
-  (of /.monad in))
+  (by /.monad in))
 
 (the comparison
   (Comparison (for_any (_ a i) (Projection i a)))
@@ -355,7 +355,7 @@
                     (monadT.spec ..injection ..comparison /.monad))
 
              (_.coverage [/.value]
-               (|> (/.value (of /.monad in expected) (list))
+               (|> (/.value (by /.monad in expected) (list))
                    (match actual (n.= expected actual))))
              (_.coverage [/.failure]
                (|> (list)
diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux
index ea19939e53..7d1103f3f3 100644
--- a/stdlib/source/test/lux/control/region.lux
+++ b/stdlib/source/test/lux/control/region.lux
@@ -85,7 +85,7 @@
   (<| (_.covering /._)
       (_.for [/.Region])
       (do [! random.monad]
-        [expected_clean_ups (|> random.natural (of ! each (|>> (n.% 100) (n.max 1))))]
+        [expected_clean_ups (|> random.natural (by ! each (|>> (n.% 100) (n.max 1))))]
         (all _.and
              (_.for [/.functor]
                     (functorT.spec ..injection ..comparison (is (for_any (_ ! r)
diff --git a/stdlib/source/test/lux/control/security/policy.lux b/stdlib/source/test/lux/control/security/policy.lux
index 00fb66edf2..6d2355c7c5 100644
--- a/stdlib/source/test/lux/control/security/policy.lux
+++ b/stdlib/source/test/lux/control/security/policy.lux
@@ -69,7 +69,7 @@
                            (%#can_downgrade actual)))))
               (the hash
                 (|>> %#can_downgrade
-                     (of text.hash hash)))))
+                     (by text.hash hash)))))
            
            (the password
              %#can_upgrade)
@@ -85,27 +85,27 @@
       (do random.monad
         [.let [policy_0 (policy [])]
          raw_password (random.ascii 10)
-         .let [password (of policy_0 password raw_password)]]
+         .let [password (by policy_0 password raw_password)]]
         (all _.and
              (_.for [/.Privacy /.Private /.Can_Conceal /.Can_Reveal
                      /.Safety /.Safe /.Can_Trust /.Can_Distrust]
                     (all _.and
                          (_.for [/.functor]
-                                (functorT.spec (..injection (of policy_0 #can_upgrade)) (..comparison (of policy_0 #can_downgrade)) /.functor))
+                                (functorT.spec (..injection (by policy_0 #can_upgrade)) (..comparison (by policy_0 #can_downgrade)) /.functor))
                          (_.for [/.apply]
-                                (applyT.spec (..injection (of policy_0 #can_upgrade)) (..comparison (of policy_0 #can_downgrade)) /.apply))
+                                (applyT.spec (..injection (by policy_0 #can_upgrade)) (..comparison (by policy_0 #can_downgrade)) /.apply))
                          (_.for [/.monad]
-                                (monadT.spec (..injection (of policy_0 #can_upgrade)) (..comparison (of policy_0 #can_downgrade)) /.monad))))
+                                (monadT.spec (..injection (by policy_0 #can_upgrade)) (..comparison (by policy_0 #can_downgrade)) /.monad))))
 
              (_.coverage [/.Privilege
                           /.#can_upgrade /.#can_downgrade
 
                           /.Context /.with_policy]
-               (and (of policy_0 = password password)
-                    (n.= (of text.hash hash raw_password)
-                         (of policy_0 hash password))))
+               (and (by policy_0 = password password)
+                    (n.= (by text.hash hash raw_password)
+                         (by policy_0 hash password))))
              (let [policy_1 (policy [])
-                   delegate (/.delegation (of policy_0 #can_downgrade) (of policy_1 #can_upgrade))]
+                   delegate (/.delegation (by policy_0 #can_downgrade) (by policy_1 #can_upgrade))]
                (_.coverage [/.Delegation /.delegation]
-                 (of policy_1 = (delegate password) (delegate password))))
+                 (by policy_1 = (delegate password) (delegate password))))
              ))))
diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux
index e3245dc4cb..723235b6b8 100644
--- a/stdlib/source/test/lux/control/state.lux
+++ b/stdlib/source/test/lux/control/state.lux
@@ -89,7 +89,7 @@
 (the loops
   Test
   (do [! random.monad]
-    [limit (|> random.natural (of ! each (n.% 10)))
+    [limit (|> random.natural (by ! each (n.% 10)))
      .let [condition (do /.monad
                        [state /.get]
                        (in (n.< limit state)))]]
diff --git a/stdlib/source/test/lux/control/thread.lux b/stdlib/source/test/lux/control/thread.lux
index 52e64a4f84..9b0908f1fa 100644
--- a/stdlib/source/test/lux/control/thread.lux
+++ b/stdlib/source/test/lux/control/thread.lux
@@ -24,7 +24,7 @@
 
 (the (injection value)
   (Injection (for_any (_ a !) (Thread ! a)))
-  (of /.monad in value))
+  (by /.monad in value))
 
 (the comparison
   (Comparison (for_any (_ a !) (Thread ! a)))
@@ -43,12 +43,12 @@
                          (_.coverage [/.value]
                            (n.= sample
                                 (|> sample
-                                    (of /.monad in)
+                                    (by /.monad in)
                                     /.value)))
                          (_.coverage [/.io]
                            (n.= sample
                                 (|> sample
-                                    (of /.monad in)
+                                    (by /.monad in)
                                     /.io
                                     io.value)))
                          
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index be7a285389..0e6e6d3956 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -37,7 +37,7 @@
 (the comparison
   (Comparison Try)
   (function (_ ==)
-    (of (/.equivalence ==) =)))
+    (by (/.equivalence ==) =)))
 
 (the .public (attempt element)
   (for_any (_ a)
@@ -94,14 +94,14 @@
                        (/.else alternative (is (Try Natural) {/.#Failure error})))))
            (_.coverage [/.when]
              (`` (and (,, (template.with []
-                            [(of (/.equivalence n.equivalence) =
+                            [(by (/.equivalence n.equivalence) =
                                  
                                  (/.when true ))]
 
                             [{/.#Success expected}]
                             [{/.#Failure error}]
                             ))
-                      (of (/.equivalence n.equivalence) =
+                      (by (/.equivalence n.equivalence) =
                           (/.when false {/.#Success expected})
                           (/.when false {/.#Failure error})))))
            (_.coverage [/.With /.with /.lifted]
@@ -134,8 +134,8 @@
                     {/.#Failure error}
                     false)))
            (_.coverage [/.as /.is?]
-             (let [wrong_error (of n.base_10 injection (static.random_natural))
-                   expected_error (of i.base_10 injection (static.random_integer))]
+             (let [wrong_error (by n.base_10 injection (static.random_natural))
+                   expected_error (by i.base_10 injection (static.random_integer))]
                (and (|> {/.#Failure wrong_error}
                         (/.as expected_error)
                         (/.is? expected_error))
diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux
index 1218f91905..1e9f6daf46 100644
--- a/stdlib/source/test/lux/control/writer.lux
+++ b/stdlib/source/test/lux/control/writer.lux
@@ -30,7 +30,8 @@
   (for_any (_ w)
     (-> (Monoid w)
         (Injection (Writer w))))
-  [(of monoid identity) value])
+  [(by monoid identity)
+   value])
 
 (the comparison
   (for_any (_ w)
diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux
index 735acf8112..d279d5ea51 100644
--- a/stdlib/source/test/lux/data/binary.lux
+++ b/stdlib/source/test/lux/data/binary.lux
@@ -77,8 +77,8 @@
 (the (utf8_conversion_does_not_alter? value)
   (Predicate Text)
   (|> value
-      (of utf8.format injection)
-      (of utf8.format projection)
+      (by utf8.format injection)
+      (by utf8.format projection)
       (pipe.when
         {try.#Success converted}
         (text.= value converted)
@@ -117,7 +117,7 @@
    (function (_ again)
      (let [random_sequence (is (Random (List Code))
                                (do [! random.monad]
-                                 [size (of ! each (n.% 2) random.natural)]
+                                 [size (by ! each (n.% 2) random.natural)]
                                  (random.list size again)))]
        (all random.and
             ..random_location
@@ -150,7 +150,7 @@
       (`` (all _.and
                (,, (template.with [  ]
                      [(do [! random.monad]
-                        [expected (of ! each (i64.and (i64.mask ))
+                        [expected (by ! each (i64.and (i64.mask ))
                                       random.natural)]
                         (_.coverage [  ]
                           (|> (\\injection.value  expected)
@@ -170,12 +170,12 @@
   (`` (all _.and
            (,, (template.with [ ]
                  [(do [! random.monad]
-                    [expected (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                    [expected (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                     (_.coverage [ ]
                       (|> (\\injection.value  expected)
                           (\\projection.value )
                           (!expect (^.multi {try.#Success actual}
-                                            (of /.equivalence = expected actual))))))]
+                                            (by /.equivalence = expected actual))))))]
 
                  [\\projection.binary_08 \\injection.binary_08]
                  [\\projection.binary_16 \\injection.binary_16]
@@ -193,7 +193,7 @@
                       (|> (\\injection.value  expected)
                           (\\projection.value )
                           (!expect (^.multi {try.#Success actual}
-                                            (of text.equivalence = expected actual))))))]
+                                            (by text.equivalence = expected actual))))))]
 
                  [\\projection.utf8_08 \\injection.utf8_08]
                  [\\projection.utf8_16 \\injection.utf8_16]
@@ -213,7 +213,7 @@
                           (\\injection.value ( \\injection.natural))
                           (\\projection.value ( \\projection.natural))
                           (!expect (^.multi {try.#Success actual}
-                                            (of (sequence.equivalence n.equivalence) = expected actual))))))]
+                                            (by (sequence.equivalence n.equivalence) = expected actual))))))]
 
                  [\\projection.sequence_08 \\injection.sequence_08]
                  [\\projection.sequence_16 \\injection.sequence_16]
@@ -232,7 +232,7 @@
                           (\\injection.value )
                           (\\projection.value )
                           (!expect (^.multi {try.#Success actual}
-                                            (of  = expected actual))))))]
+                                            (by  = expected actual))))))]
 
                  [\\projection.bit \\injection.bit random.bit bit.equivalence]
                  [\\projection.natural \\injection.natural random.natural n.equivalence]
@@ -247,11 +247,11 @@
                    (\\injection.value \\injection.decimal)
                    (\\projection.value \\projection.decimal)
                    (!expect (^.multi {try.#Success actual}
-                                     (or (of decimal.equivalence = expected actual)
+                                     (or (by decimal.equivalence = expected actual)
                                          (and (decimal.not_a_number? expected)
                                               (decimal.not_a_number? actual))))))))
            (do [! random.monad]
-             [expected (of ! each (|>> (i64.and (i64.mask \\projection.size_08))
+             [expected (by ! each (|>> (i64.and (i64.mask \\projection.size_08))
                                        (n.max 2))
                            random.natural)]
              (_.coverage [\\projection.not_a_bit]
@@ -273,7 +273,7 @@
                           (\\injection.value )
                           (\\projection.value )
                           (!expect (^.multi {try.#Success actual}
-                                            (of  = expected actual))))))]
+                                            (by  = expected actual))))))]
 
                  [\\projection.location \\injection.location random_location location_equivalence]
                  [\\projection.code \\injection.code random_code code.equivalence]
@@ -287,14 +287,14 @@
                           (\\injection.value )
                           (\\projection.value )
                           (!expect (^.multi {try.#Success actual}
-                                            (of  = expected actual))))))]
+                                            (by  = expected actual))))))]
 
                  [\\projection.maybe (\\projection.maybe \\projection.natural) \\injection.maybe (\\injection.maybe \\injection.natural) (random.maybe random.natural) (maybe.equivalence n.equivalence)]
                  [\\projection.list (\\projection.list \\projection.natural) \\injection.list (\\injection.list \\injection.natural) (random.list ..segment_size random.natural) (list.equivalence n.equivalence)]
                  [\\projection.set (\\projection.set n.hash \\projection.natural) \\injection.set (\\injection.set \\injection.natural) (random.set n.hash ..segment_size random.natural) set.equivalence]
                  [\\projection.symbol \\projection.symbol \\injection.symbol \\injection.symbol ..random_symbol symbol.equivalence]))
            (do [! random.monad]
-             [expected (of ! each (list.repeated ..segment_size) random.natural)]
+             [expected (by ! each (list.repeated ..segment_size) random.natural)]
              (_.coverage [\\projection.set_elements_are_not_unique]
                (|> expected
                    (\\injection.value (\\injection.list \\injection.natural))
@@ -309,11 +309,11 @@
                    (\\projection.value (is (\\projection.Projection (Either Bit Natural))
                                            (\\projection.or \\projection.bit \\projection.natural)))
                    (!expect (^.multi {try.#Success actual}
-                                     (of (sum.equivalence bit.equivalence n.equivalence) =
+                                     (by (sum.equivalence bit.equivalence n.equivalence) =
                                          expected
                                          actual))))))
            (do [! random.monad]
-             [tag (of ! each (|>> (i64.and (i64.mask \\projection.size_08))
+             [tag (by ! each (|>> (i64.and (i64.mask \\projection.size_08))
                                   (n.max 2))
                       random.natural)
               value random.bit]
@@ -337,7 +337,7 @@
                                                                (<>.and \\projection.natural
                                                                        again))))))
                    (!expect (^.multi {try.#Success actual}
-                                     (of (list.equivalence n.equivalence) =
+                                     (by (list.equivalence n.equivalence) =
                                          expected
                                          actual))))))
            )))
@@ -353,22 +353,22 @@
                      (\\projection.value \\projection.any)
                      (!expect {try.#Success _})))
                (do [! random.monad]
-                 [data (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                 [data (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                  (_.coverage [\\projection.binary_was_not_fully_read]
                    (|> data
                        (\\projection.value \\projection.any)
                        (!expect (^.multi {try.#Failure error}
                                          (exception.is? \\projection.binary_was_not_fully_read error))))))
                (do [! random.monad]
-                 [expected (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                 [expected (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                  (_.coverage [\\projection.segment \\injection.segment \\injection.value]
                    (|> expected
                        (\\injection.value (\\injection.segment ..segment_size))
                        (\\projection.value (\\projection.segment ..segment_size))
                        (!expect (^.multi {try.#Success actual}
-                                         (of /.equivalence = expected actual))))))
+                                         (by /.equivalence = expected actual))))))
                (do [! random.monad]
-                 [data (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                 [data (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                  (_.coverage [\\projection.end?]
                    (|> data
                        (\\projection.value (do <>.monad
@@ -379,8 +379,8 @@
                                                       post))))
                        (!expect {try.#Success .true}))))
                (do [! random.monad]
-                 [to_read (of ! each (n.% (++ ..segment_size)) random.natural)
-                  data (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                 [to_read (by ! each (n.% (++ ..segment_size)) random.natural)
+                  data (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                  (_.coverage [\\projection.Offset \\projection.offset]
                    (|> data
                        (\\projection.value (do <>.monad
@@ -394,8 +394,8 @@
                                                       (n.= ..segment_size nothing_left)))))
                        (!expect {try.#Success .true}))))
                (do [! random.monad]
-                 [to_read (of ! each (n.% (++ ..segment_size)) random.natural)
-                  data (of ! each (of utf8.format injection) (random.ascii ..segment_size))]
+                 [to_read (by ! each (n.% (++ ..segment_size)) random.natural)
+                  data (by ! each (by utf8.format injection) (random.ascii ..segment_size))]
                  (_.coverage [\\projection.remaining]
                    (|> data
                        (\\projection.value (do <>.monad
@@ -424,7 +424,7 @@
 
 (the random_specification
   (Random \\injection.Specification)
-  (of random.monad each \\injection.natural random.natural))
+  (by random.monad each \\injection.natural random.natural))
 
 (the \\injection
   Test
@@ -453,7 +453,7 @@
           [byte random.natural]
           (exec (try.trusted (/.has_08! idx byte output))
             (again (++ idx))))
-        (of random.monad in output)))))
+        (by random.monad in output)))))
 
 (the (throws? exception try)
   (for_any (_ e a)
@@ -495,13 +495,13 @@
   (<| (_.covering !._)
       (_.for [!.Binary])
       (do [! random.monad]
-        [.let [gen_size (|> random.natural (of ! each (|>> (n.% 100) (n.max 8))))]
+        [.let [gen_size (|> random.natural (by ! each (|>> (n.% 100) (n.max 8))))]
          size gen_size
          sample (..random size)
          value random.natural
-         .let [gen_idx (|> random.natural (of ! each (n.% size)))]
+         .let [gen_idx (|> random.natural (by ! each (n.% size)))]
          offset gen_idx
-         length (of ! each (n.% (n.- offset size)) random.natural)]
+         length (by ! each (n.% (n.- offset size)) random.natural)]
         (`` (all _.and
                  (_.for [!.=]
                         (equivalenceT.spec (function (_ left right)
@@ -539,7 +539,7 @@
                          reader (function (_ binary idx)
                                   (!.bits_08 idx binary))]
                      (and (n.= length (!.size random_slice))
-                          (of (list.equivalence n.equivalence) =
+                          (by (list.equivalence n.equivalence) =
                               (list#each (|>> (n.+ offset) (reader sample)) idxs)
                               (list#each (reader random_slice) idxs)))))
                  (_.coverage [!.copy!]
@@ -559,13 +559,13 @@
   (<| (_.covering /._)
       (_.for [/.Binary])
       (do [! random.monad]
-        [.let [gen_size (|> random.natural (of ! each (|>> (n.% 100) (n.max 8))))]
+        [.let [gen_size (|> random.natural (by ! each (|>> (n.% 100) (n.max 8))))]
          size gen_size
          sample (..random size)
          value random.natural
-         .let [gen_idx (|> random.natural (of ! each (n.% size)))]
-         offset (of ! each (n.max 1) gen_idx)
-         length (of ! each (n.% (n.- offset size)) random.natural)]
+         .let [gen_idx (|> random.natural (by ! each (n.% size)))]
+         offset (by ! each (n.max 1) gen_idx)
+         length (by ! each (n.% (n.- offset size)) random.natural)]
         (all _.and
              (_.for [/.equivalence /.=]
                     (static.when (same? /.equivalence /.=)
@@ -575,11 +575,11 @@
              (_.for [/.monoid]
                     (monoidT.spec /.equivalence /.monoid (..random size)))
              (_.coverage [/.mix]
-               (n.= (of list.mix mix n.+ 0 (..as_list sample))
+               (n.= (by list.mix mix n.+ 0 (..as_list sample))
                     (/.mix n.+ 0 sample)))
              
              (_.coverage [/.empty]
-               (of /.equivalence =
+               (by /.equivalence =
                    (/.empty size)
                    (/.empty size)))
              (_.coverage [/.size]
@@ -606,7 +606,7 @@
                       (when [(monad.each try.monad (|>> (n.+ offset) (reader sample)) idxs)
                              (monad.each try.monad (reader random_slice) idxs)]
                         [{try.#Success binary_vals} {try.#Success slice_vals}]
-                        (of (list.equivalence n.equivalence) = binary_vals slice_vals)
+                        (by (list.equivalence n.equivalence) = binary_vals slice_vals)
 
                         _
                         false))))
@@ -617,8 +617,8 @@
                         0 (not verdict)
                         _ verdict))))
              (_.coverage [/.after]
-               (and (of /.equivalence = sample (/.after 0 sample))
-                    (of /.equivalence = (/.empty 0) (/.after size sample))
+               (and (by /.equivalence = sample (/.after 0 sample))
+                    (by /.equivalence = (/.empty 0) (/.after size sample))
                     (n.= (n.- offset size) (/.size (/.after offset sample)))
                     (when (list.reversed (..as_list sample))
                       {.#End}
@@ -631,7 +631,7 @@
                (and (when (/.copy! size 0 sample 0 (/.empty size))
                       {try.#Success output}
                       (and (not (same? sample output))
-                           (of /.equivalence = sample output))
+                           (by /.equivalence = sample output))
 
                       {try.#Failure _}
                       false)
diff --git a/stdlib/source/test/lux/data/bit.lux b/stdlib/source/test/lux/data/bit.lux
index 35f14e24b7..5c2163550e 100644
--- a/stdlib/source/test/lux/data/bit.lux
+++ b/stdlib/source/test/lux/data/bit.lux
@@ -62,6 +62,6 @@
                     (text.= (/.as_text left) (/.as_text right))))
              (_.coverage [/.not_valid]
                (|> (%.message (/.as_text left) (/.as_text right))
-                   (of /.format projection)
+                   (by /.format projection)
                    (try.is? /.not_valid)))
              ))))
diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux
index a8c50588ae..e6702f9f71 100644
--- a/stdlib/source/test/lux/data/collection/array.lux
+++ b/stdlib/source/test/lux/data/collection/array.lux
@@ -47,7 +47,7 @@
 
 (the bounded_size
   (Random Natural)
-  (of random.monad each (|>> (n.% 20) ++)
+  (by random.monad each (|>> (n.% 20) ++)
       random.natural))
 
 (the structures
@@ -79,11 +79,11 @@
                choose (is (-> Natural (Maybe Text))
                           (function (_ value)
                             (if (n.even? value)
-                              {.#Some (of n.base_10 injection value)}
+                              {.#Some (by n.base_10 injection value)}
                               {.#None})))]
            (_.coverage [/.one]
              (when [(|> evens
-                        (/#each (of n.base_10 injection))
+                        (/#each (by n.base_10 injection))
                         (/.item 0))
                     (/.one choose evens)]
                [{try.#Success expected} {try.#Success actual}]
@@ -95,7 +95,7 @@
                _
                false)))
          (_.coverage [/.example]
-           (of (maybe.equivalence n.equivalence) =
+           (by (maybe.equivalence n.equivalence) =
                (/.example n.even? the_array)
                (list.example n.even? (/.list {.#None} the_array))))
          (_.coverage [/.example']
@@ -118,11 +118,11 @@
              _
              false))
          (_.coverage [/.every?]
-           (of bit.equivalence =
+           (by bit.equivalence =
                (list.every? n.even? (/.list {.#None} the_array))
                (/.every? n.even? the_array)))
          (_.coverage [/.any?]
-           (of bit.equivalence =
+           (by bit.equivalence =
                (list.any? n.even? (/.list {.#None} the_array))
                (/.any? n.even? the_array)))
          )))
@@ -222,7 +222,7 @@
                      (and (n.= expected (\\unsafe.item 0 the_array))
                           (n.= expected (\\unsafe.item 1 the_array)))))
                  (do !
-                   [occupancy (of ! each (n.% (++ size)) random.natural)]
+                   [occupancy (by ! each (n.% (++ size)) random.natural)]
                    (_.coverage [\\unsafe.occupancy \\unsafe.vacancy]
                      (let [the_array (loop (again [output (is (Array Natural)
                                                               (\\unsafe.empty size))
@@ -244,7 +244,7 @@
                                          random.natural)]
                    (_.coverage [\\unsafe.of_list \\unsafe.list]
                      (and (|> the_list \\unsafe.of_list (\\unsafe.list {.#None})
-                              (of (list.equivalence n.equivalence) = the_list))
+                              (by (list.equivalence n.equivalence) = the_list))
                           (|> the_array (\\unsafe.list {.#None}) \\unsafe.of_list
                               (\\unsafe.= n.equivalence the_array))
                           (exec
@@ -254,12 +254,12 @@
                                                (same? default value)))
                                          (\\unsafe.list {.#Some default} the_array))))))
                  (do !
-                   [amount (of ! each (n.% (++ size)) random.natural)]
+                   [amount (by ! each (n.% (++ size)) random.natural)]
                    (_.coverage [\\unsafe.copy!]
                      (let [copy (is (Array Natural)
                                     (\\unsafe.empty size))]
                        (exec (\\unsafe.copy! amount 0 the_array 0 copy)
-                         (of (list.equivalence n.equivalence) =
+                         (by (list.equivalence n.equivalence) =
                              (list.first amount (\\unsafe.list {.#None} the_array))
                              (\\unsafe.list {.#None} copy))))))
                  (_.coverage [\\unsafe.clone]
@@ -275,24 +275,24 @@
                             (n.= (list.size odds) (\\unsafe.vacancy the_array))
                             (|> the_array
                                 (\\unsafe.list {.#None})
-                                (of (list.equivalence n.equivalence) = evens))))))
+                                (by (list.equivalence n.equivalence) = evens))))))
                  (let [choose (is (-> Natural (Maybe Text))
                                   (function (_ value)
                                     (if (n.even? value)
-                                      {.#Some (of n.base_10 injection value)}
+                                      {.#Some (by n.base_10 injection value)}
                                       {.#None})))]
                    (_.coverage [\\unsafe.one]
                      (|> evens
                          (\\unsafe.one choose)
                          (maybe#each (text.= (|> evens
-                                                 (\\unsafe.each (of n.base_10 injection))
+                                                 (\\unsafe.each (by n.base_10 injection))
                                                  (\\unsafe.item 0))))
                          (maybe.else false))))
                  (_.coverage [\\unsafe.example]
                    (when [(\\unsafe.example n.even? the_array)
                           (list.example n.even? (\\unsafe.list {.#None} the_array))]
                      [{try.#Success expected} {try.#Success actual}]
-                     (of n.equivalence = expected actual)
+                     (by n.equivalence = expected actual)
 
                      [{try.#Failure _} {try.#Failure _}]
                      true
@@ -315,11 +315,11 @@
                      _
                      false))
                  (_.coverage [\\unsafe.every?]
-                   (of bit.equivalence =
+                   (by bit.equivalence =
                        (list.every? n.even? (\\unsafe.list {.#None} the_array))
                        (\\unsafe.every? n.even? the_array)))
                  (_.coverage [\\unsafe.any?]
-                   (of bit.equivalence =
+                   (by bit.equivalence =
                        (list.any? n.even? (\\unsafe.list {.#None} the_array))
                        (\\unsafe.any? n.even? the_array)))
                  )))))
@@ -412,7 +412,7 @@
                    _
                    false)))
              (do !
-               [occupancy (of ! each (n.% (++ size)) random.natural)]
+               [occupancy (by ! each (n.% (++ size)) random.natural)]
                (_.coverage [/.occupancy /.vacancy]
                  (let [the_array (loop (again [output (is (Array Natural)
                                                           (/.empty size))
@@ -434,9 +434,9 @@
                                      random.natural)]
                (_.coverage [/.of_list /.list]
                  (and (|> the_list /.of_list (/.list {.#None})
-                          (of (list.equivalence n.equivalence) = the_list))
+                          (by (list.equivalence n.equivalence) = the_list))
                       (|> the_array (/.list {.#None}) /.of_list
-                          (of (/.equivalence n.equivalence) = the_array))
+                          (by (/.equivalence n.equivalence) = the_array))
                       (exec
                         (/.only! n.even? the_array)
                         (list.every? (function (_ value)
@@ -444,18 +444,18 @@
                                            (same? default value)))
                                      (/.list {.#Some default} the_array))))))
              (do !
-               [amount (of ! each (n.% (++ size)) random.natural)]
+               [amount (by ! each (n.% (++ size)) random.natural)]
                (_.coverage [/.copy!]
                  (let [copy (is (Array Natural)
                                 (/.empty size))]
                    (exec (/.copy! amount 0 the_array 0 copy)
-                     (of (list.equivalence n.equivalence) =
+                     (by (list.equivalence n.equivalence) =
                          (list.first amount (/.list {.#None} the_array))
                          (/.list {.#None} copy))))))
              (_.coverage [/.clone]
                (let [clone (/.clone the_array)]
                  (and (not (same? the_array clone))
-                      (of (/.equivalence n.equivalence) = the_array clone))))
+                      (by (/.equivalence n.equivalence) = the_array clone))))
              (let [the_array (/.clone the_array)
                    evens (|> the_array (/.list {.#None}) (list.only n.even?))
                    odds (|> the_array (/.list {.#None}) (list.only n.odd?))]
@@ -463,7 +463,7 @@
                  (exec (/.only! n.even? the_array)
                    (and (n.= (list.size evens) (/.occupancy the_array))
                         (n.= (list.size odds) (/.vacancy the_array))
-                        (|> the_array (/.list {.#None}) (of (list.equivalence n.equivalence) = evens))))))
+                        (|> the_array (/.list {.#None}) (by (list.equivalence n.equivalence) = evens))))))
              (_.coverage [/.array]
                (expansion.let [ (static.random code.natural
                                                               (random#each (n.% 10) random.natural))
diff --git a/stdlib/source/test/lux/data/collection/bits.lux b/stdlib/source/test/lux/data/collection/bits.lux
index 73c9ff7980..a514380de7 100644
--- a/stdlib/source/test/lux/data/collection/bits.lux
+++ b/stdlib/source/test/lux/data/collection/bits.lux
@@ -23,16 +23,16 @@
 (the (size min max)
   (-> Natural Natural (Random Natural))
   (|> random.natural
-      (of random.monad each (|>> (n.% (++ max)) (n.max min)))))
+      (by random.monad each (|>> (n.% (++ max)) (n.max min)))))
 
 (the .public random
   (Random Bits)
   (do [! random.monad]
-    [size (of ! each (n.% 1,000) random.natural)]
+    [size (by ! each (n.% 1,000) random.natural)]
     (when size
       0 (in /.empty)
       _ (do [! random.monad]
-          [idx (|> random.natural (of ! each (n.% size)))]
+          [idx (|> random.natural (by ! each (n.% size)))]
           (in (/.one idx /.empty))))))
 
 (the .public test
@@ -53,8 +53,8 @@
              (/.empty? /.empty))
            
            (do [! random.monad]
-             [size (of ! each (|>> (n.% 1,000) ++) random.natural)
-              idx (of ! each (n.% size) random.natural)
+             [size (by ! each (|>> (n.% 1,000) ++) random.natural)
+              idx (by ! each (n.% size) random.natural)
               sample ..random]
              (all _.and
                   (_.coverage [/.bit /.one]
@@ -85,17 +85,17 @@
                   (_.coverage [/.not]
                     (and (same? /.empty (/.not /.empty))
                          (or (same? /.empty sample)
-                             (and (not (of /.equivalence = sample (/.not sample)))
-                                  (of /.equivalence = sample (/.not (/.not sample)))))))
+                             (and (not (by /.equivalence = sample (/.not sample)))
+                                  (by /.equivalence = sample (/.not (/.not sample)))))))
                   (_.coverage [/.xor]
                     (and (same? /.empty (/.xor sample sample))
                          (n.= (/.size (/.xor sample (/.not sample)))
                               (/.capacity sample))))
                   (_.coverage [/.or]
-                    (and (of /.equivalence = sample (/.or sample sample))
+                    (and (by /.equivalence = sample (/.or sample sample))
                          (n.= (/.size (/.or sample (/.not sample)))
                               (/.capacity sample))))
                   (_.coverage [/.and]
-                    (and (of /.equivalence = sample (/.and sample sample))
+                    (and (by /.equivalence = sample (/.and sample sample))
                          (same? /.empty (/.and sample (/.not sample)))))
                   )))))
diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux
index 51aa5cd48a..2cc8413961 100644
--- a/stdlib/source/test/lux/data/collection/dictionary.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary.lux
@@ -38,7 +38,7 @@
   Test
   (do [! random.monad]
     [.let [capped_natural (is (Random Natural)
-                              (of ! each (n.% 100) random.natural))]
+                              (by ! each (n.% 100) random.natural))]
      size capped_natural
      dict (random.dictionary n.hash size random.natural capped_natural)
      non_key (random.only (|>> (/.key? dict) not)
@@ -141,7 +141,7 @@
   Test
   (do [! random.monad]
     [.let [capped_natural (is (Random Natural)
-                              (of ! each (n.% 100) random.natural))]
+                              (by ! each (n.% 100) random.natural))]
      size capped_natural
      dict (random.dictionary n.hash size random.natural capped_natural)
      non_key (random.only (|>> (/.key? dict) not)
@@ -275,7 +275,7 @@
               /.#hash /.#root])
       (do [! random.monad]
         [.let [capped_natural (is (Random Natural)
-                                  (of ! each (n.% 100) random.natural))]
+                                  (by ! each (n.% 100) random.natural))]
          size capped_natural
          dict (random.dictionary n.hash size random.natural capped_natural)
          non_key (random.only (|>> (/.key? dict) not)
diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
index 70e3404faf..e68a994209 100644
--- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
@@ -49,7 +49,7 @@
       (_.for [/.Dictionary
               /.#order /.#root])
       (do [! random.monad]
-        [size (of ! each (n.% 100) random.natural)
+        [size (by ! each (n.% 100) random.natural)
          keys (random.set n.hash size random.natural)
          values (random.set n.hash size random.natural)
          extra_key (random.only (|>> (set.member? keys) not)
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index 1a3dc2f571..ef7450ba0e 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -50,7 +50,7 @@
 
 (the bounded_size
   (Random Natural)
-  (of random.monad each (n.% 100)
+  (by random.monad each (n.% 100)
       random.natural))
 
 (the random
@@ -59,7 +59,7 @@
     [size ..bounded_size]
     (|> random.natural
         (random.set n.hash size)
-        (of ! each set.list))))
+        (by ! each set.list))))
 
 (the signatures
   Test
@@ -68,7 +68,7 @@
               (equivalenceT.spec (/.equivalence n.equivalence) ..random))
        (_.for [/.hash]
               (|> random.natural
-                  (of random.monad each (|>> list))
+                  (by random.monad each (|>> list))
                   (hashT.spec (/.hash n.hash))))
        (_.for [/.monoid]
               (monoidT.spec (/.equivalence n.equivalence) /.monoid ..random))
@@ -105,12 +105,12 @@
   (do [! random.monad]
     [size ..bounded_size
      .let [(open "/#[0]") (/.equivalence n.equivalence)]
-     sample (of ! each set.list (random.set n.hash size random.natural))]
+     sample (by ! each set.list (random.set n.hash size random.natural))]
     (all _.and
          (_.coverage [/.size]
            (n.= size (/.size sample)))
          (_.coverage [/.empty?]
-           (of bit.equivalence =
+           (by bit.equivalence =
                (/.empty? sample)
                (n.= 0 (/.size sample))))
          (_.coverage [/.repeated]
@@ -194,7 +194,7 @@
            (do !
              [index (when size
                       0 random.natural
-                      _ (of ! each (n.% size) random.natural))
+                      _ (by ! each (n.% size) random.natural))
               .let [changed? (/#= sample (/.revised index ++ sample))
                     same? (/#= sample (/.revised size ++ sample))]]
              (_.coverage [/.revised]
@@ -212,8 +212,8 @@
       [sample (random.only (|>> /.size (n.> 0))
                            ..random)
        .let [size (/.size sample)]
-       idx (of ! each (n.% size) random.natural)
-       sub_size (of ! each (|>> (n.% size) ++) random.natural)]
+       idx (by ! each (n.% size) random.natural)
+       sub_size (by ! each (|>> (n.% size) ++) random.natural)]
       (all _.and
            (_.coverage [/.only]
              (let [positives (/.only n.even? sample)
@@ -357,10 +357,10 @@
                (and size_of_smaller_list!
                     can_extract_values!)))
            (_.coverage [/.zipped]
-             (and (of (/.equivalence (product.equivalence n.equivalence n.equivalence)) =
+             (and (by (/.equivalence (product.equivalence n.equivalence n.equivalence)) =
                       (/.zipped_2 sample/0 sample/1)
                       ((/.zipped 2) sample/0 sample/1))
-                  (of (/.equivalence (all product.equivalence n.equivalence n.equivalence n.equivalence)) =
+                  (by (/.equivalence (all product.equivalence n.equivalence n.equivalence n.equivalence)) =
                       (/.zipped_3 sample/0 sample/1 sample/2)
                       ((/.zipped 3) sample/0 sample/1 sample/2))))
 
@@ -393,7 +393,7 @@
         choice (is (-> Natural (Maybe Text))
                    (function (_ value)
                      (if (n.even? value)
-                       {.#Some (of n.base_10 injection value)}
+                       {.#Some (by n.base_10 injection value)}
                        {.#None})))]
     (do [! random.monad]
       [sample ..random]
@@ -401,7 +401,7 @@
            (_.coverage [/.one]
              (when [(|> sample
                         (/.only n.even?)
-                        (/#each (of n.base_10 injection))
+                        (/#each (by n.base_10 injection))
                         /.head)
                     (/.one choice sample)]
                [{try.#Success expected} {try.#Success actual}]
@@ -413,10 +413,10 @@
                _
                false))
            (_.coverage [/.all]
-             (of (/.equivalence text.equivalence) =
+             (by (/.equivalence text.equivalence) =
                  (|> sample
                      (/.only n.even?)
-                     (/#each (of n.base_10 injection)))
+                     (/#each (by n.base_10 injection)))
                  (/.all choice sample)))
            (_.coverage [/.example]
              (when (/.example n.even? sample)
@@ -509,7 +509,7 @@
                                           0)))))
                (_.coverage [/.mixes]
                  (/#= (/#each (function (_ index)
-                                (of /.mix mix n.+ 0 (/.first index sample)))
+                                (by /.mix mix n.+ 0 (/.first index sample)))
                               (/.indices (++ (/.size sample))))
                       (/.mixes n.+ 0 sample)))
                (do random.monad
diff --git a/stdlib/source/test/lux/data/collection/list/property.lux b/stdlib/source/test/lux/data/collection/list/property.lux
index e37129c6de..dc071d10d1 100644
--- a/stdlib/source/test/lux/data/collection/list/property.lux
+++ b/stdlib/source/test/lux/data/collection/list/property.lux
@@ -42,7 +42,7 @@
       (_.for [/.List])
       (do [! random.monad]
         [.let [gen_key (random.alphabetic 10)]
-         size (of ! each (n.% 100) random.natural)
+         size (by ! each (n.% 100) random.natural)
          sample (..random size gen_key random.natural)
 
          .let [keys (|> sample /.keys (set.of_list text.hash))]
@@ -67,7 +67,7 @@
              (_.coverage [/.empty]
                (/.empty? /.empty))
              (_.coverage [/.keys /.values]
-               (of (/.equivalence n.equivalence) =
+               (by (/.equivalence n.equivalence) =
                    sample
                    (list.zipped_2 (/.keys sample)
                                   (/.values sample))))
@@ -99,5 +99,5 @@
                (|> sample
                    (/.has extra_key extra_value)
                    (/.lacks extra_key)
-                   (of (/.equivalence n.equivalence) = sample)))
+                   (by (/.equivalence n.equivalence) = sample)))
              ))))
diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux
index 410c3e9555..5e92b0e469 100644
--- a/stdlib/source/test/lux/data/collection/queue.lux
+++ b/stdlib/source/test/lux/data/collection/queue.lux
@@ -36,7 +36,7 @@
       (_.for [/.Queue
               /.#front /.#rear])
       (do [! random.monad]
-        [size (of ! each (n.% 100) random.natural)
+        [size (by ! each (n.% 100) random.natural)
          members (random.set n.hash size random.natural)
          non_member (random.only (|>> (set.member? members) not)
                                  random.natural)
@@ -50,7 +50,7 @@
 
              (_.coverage [/.of_list /.list]
                (|> members /.of_list /.list
-                   (of (list.equivalence n.equivalence) = members)))
+                   (by (list.equivalence n.equivalence) = members)))
              (_.coverage [/.size]
                (n.= size (/.size sample)))
              (_.coverage [/.empty?]
@@ -61,7 +61,7 @@
 
                      all_empty_queues_look_the_same!
                      (bit.= (/.empty? sample)
-                            (of (/.equivalence n.equivalence) =
+                            (by (/.equivalence n.equivalence) =
                                 sample
                                 /.empty))]
                  (and empty_is_empty!
@@ -95,7 +95,7 @@
                      (/.member? n.equivalence pushed non_member)
 
                      has_expected_order!
-                     (of (list.equivalence n.equivalence) =
+                     (by (list.equivalence n.equivalence) =
                          (list#composite (/.list sample) (list non_member))
                          (/.list pushed))]
                  (and size_increases!
@@ -114,7 +114,7 @@
                        (not (/.member? n.equivalence popped target))
 
                        has_expected_order!
-                       (of (list.equivalence n.equivalence) =
+                       (by (list.equivalence n.equivalence) =
                            expected
                            (/.list popped))]
                    (and size_decreases!
diff --git a/stdlib/source/test/lux/data/collection/queue/priority.lux b/stdlib/source/test/lux/data/collection/queue/priority.lux
index 4adbecd291..a9b3a63374 100644
--- a/stdlib/source/test/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/test/lux/data/collection/queue/priority.lux
@@ -35,7 +35,7 @@
   (<| (_.covering /._)
       (_.for [/.Queue])
       (do [! random.monad]
-        [size (of ! each (n.% 100) random.natural)
+        [size (by ! each (n.% 100) random.natural)
          sample (..random size)
          non_member_priority random.natural
          non_member (random.only (|>> (/.member? n.equivalence sample) not)
diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux
index f78af7efb2..16dbe74bc1 100644
--- a/stdlib/source/test/lux/data/collection/sequence.lux
+++ b/stdlib/source/test/lux/data/collection/sequence.lux
@@ -41,7 +41,7 @@
 (the signatures
   Test
   (do [! random.monad]
-    [size (of ! each (n.% 100) random.natural)]
+    [size (by ! each (n.% 100) random.natural)]
     (all _.and
          (_.for [/.equivalence]
                 (equivalenceT.spec (/.equivalence n.equivalence) (/.random size random.natural)))
@@ -60,7 +60,7 @@
 (the whole
   Test
   (do [! random.monad]
-    [size (of ! each (n.% 100) random.natural)
+    [size (by ! each (n.% 100) random.natural)
      sample (random.set n.hash size random.natural)
      .let [sample (|> sample set.list /.of_list)]
      .let [(open "/#[0]") (/.equivalence n.equivalence)]]
@@ -101,10 +101,10 @@
 (the index_based
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 100) ++) random.natural)]
+    [size (by ! each (|>> (n.% 100) ++) random.natural)]
     (all _.and
          (do !
-           [good_index (|> random.natural (of ! each (n.% size)))
+           [good_index (|> random.natural (by ! each (n.% size)))
             .let [bad_index (n.+ size good_index)]
             sample (random.set n.hash size random.natural)
             non_member (random.only (|>> (set.member? sample) not)
@@ -157,7 +157,7 @@
       (_.for [/.Sequence
               /.#level /.#size /.#root /.#tail])
       (do [! random.monad]
-        [size (of ! each (|>> (n.% 100) ++) random.natural)]
+        [size (by ! each (|>> (n.% 100) ++) random.natural)]
         (all _.and
              ..signatures
              ..whole
@@ -237,11 +237,11 @@
                             choice (is (-> Natural (Maybe Text))
                                        (function (_ value)
                                          (if (n.even? value)
-                                           {.#Some (of n.base_10 injection value)}
+                                           {.#Some (by n.base_10 injection value)}
                                            {.#None})))]
                         (when [(|> sample
                                    (/.only n.even?)
-                                   (/#each (of n.base_10 injection))
+                                   (/#each (by n.base_10 injection))
                                    (/.item 0))
                                (/.one choice sample)]
                           [{try.#Success expected} {try.#Success actual}]
@@ -256,9 +256,9 @@
                       [.let [equivalence (/.equivalence n.equivalence)
                              random (/.random 2 random.natural)]
                        expected random
-                       actual (random.only (|>> (of equivalence = expected) not)
+                       actual (random.only (|>> (by equivalence = expected) not)
                                            random)]
                       (_.coverage [/.random]
-                        (not (of equivalence = expected actual))))
+                        (not (by equivalence = expected actual))))
                     ))
              ))))
diff --git a/stdlib/source/test/lux/data/collection/set.lux b/stdlib/source/test/lux/data/collection/set.lux
index 89db5a1115..ef4ea9590c 100644
--- a/stdlib/source/test/lux/data/collection/set.lux
+++ b/stdlib/source/test/lux/data/collection/set.lux
@@ -21,6 +21,8 @@
     ["[0]" random (.only Random)]
     [number
      ["n" natural]]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -28,7 +30,7 @@
 
 (the gen_natural
   (Random Natural)
-  (of random.monad each (n.% 100)
+  (by random.monad each (n.% 100)
       random.natural))
 
 (the .public test
@@ -38,11 +40,12 @@
       (do [! random.monad]
         [size ..gen_natural]
         (all _.and
-             (_.for [/.equivalence]
-                    (equivalenceT.spec /.equivalence (random.set n.hash size random.natural)))
+             (_.for [/.equivalence /.=]
+                    (static.when (same? /.equivalence /.=)
+                      (equivalenceT.spec /.equivalence (random.set n.hash size random.natural))))
              (_.for [/.hash]
                     (|> random.natural
-                        (of random.monad each (|>> list (/.of_list n.hash)))
+                        (by random.monad each (|>> list (/.of_list n.hash)))
                         (hashT.spec /.hash)))
              (_.for [/.monoid]
                     (monoidT.spec /.equivalence (/.monoid n.hash) (random.set n.hash size random.natural)))
@@ -58,7 +61,7 @@
                     (_.coverage [/.empty]
                       (/.empty? (/.empty n.hash)))
                     (do !
-                      [hash (of ! each (function (_ constant)
+                      [hash (by ! each (function (_ constant)
                                          (is (Hash Natural)
                                              (implementation
                                               (the equivalence n.equivalence)
diff --git a/stdlib/source/test/lux/data/collection/set/multi.lux b/stdlib/source/test/lux/data/collection/set/multi.lux
index 4508de6550..9b154b5e4a 100644
--- a/stdlib/source/test/lux/data/collection/set/multi.lux
+++ b/stdlib/source/test/lux/data/collection/set/multi.lux
@@ -33,7 +33,7 @@
 
 (the count
   (Random Natural)
-  (of random.monad each (|>> (n.% 10) ++) random.natural))
+  (by random.monad each (|>> (n.% 10) ++) random.natural))
 
 (the .public (random size hash count element)
   (for_any (_ a)
@@ -51,13 +51,13 @@
 (the signature
   Test
   (do [! random.monad]
-    [diversity (of ! each (n.% 10) random.natural)]
+    [diversity (by ! each (n.% 10) random.natural)]
     (all _.and
          (_.for [/.equivalence]
                 (equivalenceT.spec /.equivalence (..random diversity n.hash ..count random.natural)))
          (_.for [/.hash]
                 (|> random.natural
-                    (of random.monad each (function (_ single)
+                    (by random.monad each (function (_ single)
                                             (/.has 1 single (/.empty n.hash))))
                     (hashT.spec /.hash)))
          )))
@@ -65,7 +65,7 @@
 (the composition
   Test
   (do [! random.monad]
-    [diversity (of ! each (n.% 10) random.natural)
+    [diversity (by ! each (n.% 10) random.natural)
      sample (..random diversity n.hash ..count random.natural)
      another (..random diversity n.hash ..count random.natural)]
     (`` (all _.and
@@ -125,19 +125,19 @@
   (<| (_.covering /._)
       (_.for [/.Set])
       (do [! random.monad]
-        [diversity (of ! each (n.% 10) random.natural)
+        [diversity (by ! each (n.% 10) random.natural)
          sample (..random diversity n.hash ..count random.natural)
          non_member (random.only (predicate.complement (set.member? (/.support sample)))
                                  random.natural)
          addition_count ..count
-         partial_removal_count (of ! each (n.% addition_count) random.natural)
+         partial_removal_count (by ! each (n.% addition_count) random.natural)
          another (..random diversity n.hash ..count random.natural)]
         (all _.and
              (_.coverage [/.list /.of_list]
                (|> sample
                    /.list
                    (/.of_list n.hash)
-                   (of /.equivalence = sample)))
+                   (by /.equivalence = sample)))
              (_.coverage [/.size]
                (n.= (list.size (/.list sample))
                     (/.size sample)))
@@ -171,7 +171,7 @@
                (let [null_scenario!
                      (|> sample
                          (/.has 0 non_member)
-                         (of /.equivalence = sample))
+                         (by /.equivalence = sample))
 
                      normal_scenario!
                      (let [sample+ (/.has addition_count non_member sample)]
@@ -182,7 +182,7 @@
                       normal_scenario!)))
              (_.coverage [/.lacks]
                (let [null_scenario!
-                     (of /.equivalence =
+                     (by /.equivalence =
                          (|> sample
                              (/.has addition_count non_member))
                          (|> sample
@@ -202,7 +202,7 @@
                      (|> sample
                          (/.has addition_count non_member)
                          (/.lacks addition_count non_member)
-                         (of /.equivalence = sample))]
+                         (by /.equivalence = sample))]
                  (and null_scenario!
                       partial_scenario!
                       total_scenario!)))
@@ -214,12 +214,12 @@
                (let [unary (|> sample /.support /.of_set)]
                  (and (/.sub? sample unary)
                       (or (not (/.sub? unary sample))
-                          (of /.equivalence = sample unary)))))
+                          (by /.equivalence = sample unary)))))
              (_.coverage [/.super?]
                (let [unary (|> sample /.support /.of_set)]
                  (and (/.super? unary sample)
                       (or (not (/.super? sample unary))
-                          (of /.equivalence = sample unary)))))
+                          (by /.equivalence = sample unary)))))
              (_.coverage [/.difference]
                (let [|sample| (/.support sample)
                      |another| (/.support another)
diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux
index fd988544fa..5b4f6cb5b6 100644
--- a/stdlib/source/test/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/set/ordered.lux
@@ -30,7 +30,7 @@
 
 (the size
   (random.Random Natural)
-  (of random.monad each (n.% 100) random.natural))
+  (by random.monad each (n.% 100) random.natural))
 
 (the .public (random size order gen_value)
   (for_any (_ a)
@@ -58,7 +58,7 @@
          non_memberL (random.only (|>> (//.member? usetL) not)
                                   random.natural)
          .let [listL (//.list usetL)]
-         listR (|> (random.set n.hash sizeR random.natural) (of ! each //.list))
+         listR (|> (random.set n.hash sizeR random.natural) (by ! each //.list))
          .let [(open "/#[0]") /.equivalence
                setL (/.of_list n.order listL)
                setR (/.of_list n.order listR)
@@ -75,9 +75,9 @@
                  (_.coverage [/.empty]
                    (/.empty? (/.empty n.order)))
                  (_.coverage [/.list]
-                   (of (list.equivalence n.equivalence) =
+                   (by (list.equivalence n.equivalence) =
                        (/.list (/.of_list n.order listL))
-                       (list.sorted (of n.order <) listL)))
+                       (list.sorted (by n.order <) listL)))
                  (_.coverage [/.of_list]
                    (|> setL
                        /.list (/.of_list n.order)
@@ -112,7 +112,7 @@
                    (|> setL
                        (/.has non_memberL)
                        (/.lacks non_memberL)
-                       (of /.equivalence = setL)))
+                       (by /.equivalence = setL)))
                  (_.coverage [/.sub?]
                    (let [self!
                          (/.sub? setL setL)
@@ -137,7 +137,7 @@
                  (,, (template.with [  ]
                        [(_.coverage []
                           (let [self!
-                                (of /.equivalence =
+                                (by /.equivalence =
                                     setL
                                     ( setL setL))
 
@@ -146,12 +146,12 @@
                                      ( ( setL setR) setR))
 
                                 empty!
-                                (of /.equivalence =
+                                (by /.equivalence =
                                     (if  empty setL)
                                     ( setL empty))
 
                                 idempotence!
-                                (of /.equivalence =
+                                (by /.equivalence =
                                     ( setL ( setL setR))
                                     ( setR ( setL setR)))]
                             (and self!
@@ -166,19 +166,19 @@
                    (let [self!
                          (|> setL
                              (/.difference setL)
-                             (of /.equivalence = empty))
+                             (by /.equivalence = empty))
 
                          empty!
                          (|> setL
                              (/.difference empty)
-                             (of /.equivalence = setL))
+                             (by /.equivalence = setL))
 
                          difference!
                          (not (list.any? (/.member? (/.difference setL setR))
                                          (/.list setL)))
 
                          idempotence!
-                         (of /.equivalence =
+                         (by /.equivalence =
                              (/.difference setL setR)
                              (/.difference setL (/.difference setL setR)))]
                      (and self!
diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux
index 2341923465..50f2074b13 100644
--- a/stdlib/source/test/lux/data/collection/stack.lux
+++ b/stdlib/source/test/lux/data/collection/stack.lux
@@ -33,7 +33,7 @@
   (<| (_.covering /._)
       (_.for [/.Stack])
       (do random.monad
-        [size (of random.monad each (n.% 100) random.natural)
+        [size (by random.monad each (n.% 100) random.natural)
          sample (random.stack size random.natural)
          expected_top random.natural]
         (all _.and
@@ -62,7 +62,7 @@
                  (/.empty? sample)
                  
                  {try.#Success [top remaining]}
-                 (of (/.equivalence n.equivalence) =
+                 (by (/.equivalence n.equivalence) =
                      sample
                      (/.top top remaining))))
              (_.coverage [/.is_empty]
diff --git a/stdlib/source/test/lux/data/collection/stream.lux b/stdlib/source/test/lux/data/collection/stream.lux
index 4352c96303..e78b8fb1a2 100644
--- a/stdlib/source/test/lux/data/collection/stream.lux
+++ b/stdlib/source/test/lux/data/collection/stream.lux
@@ -32,7 +32,7 @@
         (Equivalence (/.Stream a))))
   (implementation
    (the (= expected actual)
-     (of (list.equivalence super) =
+     (by (list.equivalence super) =
          (/.first 100 expected)
          (/.first 100 actual)))))
 
@@ -52,9 +52,9 @@
       (let [(open "list#[0]") (list.equivalence n.equivalence)])
       (do [! random.monad]
         [repeated random.natural
-         index (of ! each (n.% 100) random.natural)
-         size (of ! each (|>> (n.% 10) ++) random.natural)
-         offset (of ! each (n.% 100) random.natural)
+         index (by ! each (n.% 100) random.natural)
+         size (by ! each (|>> (n.% 10) ++) random.natural)
+         offset (by ! each (n.% 100) random.natural)
          cycle_start random.natural
          cycle_next (random.list size random.natural)]
         (all _.and
diff --git a/stdlib/source/test/lux/data/collection/tree.lux b/stdlib/source/test/lux/data/collection/tree.lux
index 1a65695089..3a0f1f26e9 100644
--- a/stdlib/source/test/lux/data/collection/tree.lux
+++ b/stdlib/source/test/lux/data/collection/tree.lux
@@ -198,7 +198,7 @@
         (Random [Natural (Tree a)])))
   (do [! random.monad]
     [value gen_value
-     num_children (of ! each (n.% 2) random.natural)
+     num_children (by ! each (n.% 2) random.natural)
      children (random.list num_children (tree gen_value))]
     (in [(|> children
              (list#each product.left)
@@ -214,7 +214,7 @@
       (all _.and
            (_.for [/.equivalence]
                   (|> (..tree random.natural)
-                      (of random.monad each product.right)
+                      (by random.monad each product.right)
                       (equivalenceT.spec (/.equivalence n.equivalence))))
            (_.for [/.mix]
                   (mixT.spec /.leaf /.equivalence /.mix))
@@ -229,15 +229,15 @@
            (do random.monad
              [expected random.natural]
              (_.coverage [/.leaf]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list expected)
                    (/.flat (/.leaf expected)))))
            (do [! random.monad]
              [value random.natural
-              num_children (of ! each (n.% 3) random.natural)
+              num_children (by ! each (n.% 3) random.natural)
               children (random.list num_children random.natural)]
              (_.coverage [/.branch]
-               (of (list.equivalence n.equivalence) =
+               (by (list.equivalence n.equivalence) =
                    (list.partial value children)
                    (/.flat (/.branch value (list#each /.leaf children))))))
            (do random.monad
@@ -248,15 +248,15 @@
               expected/4 random.natural
               expected/5 random.natural]
              (_.coverage [/.tree]
-               (and (of (list.equivalence n.equivalence) =
+               (and (by (list.equivalence n.equivalence) =
                         (list expected/0)
                         (/.flat (/.tree expected/0)))
-                    (of (list.equivalence n.equivalence) =
+                    (by (list.equivalence n.equivalence) =
                         (list expected/0 expected/1 expected/2)
                         (/.flat (/.tree expected/0
                                         {expected/1 {}
                                                     expected/2 {}})))
-                    (of (list.equivalence n.equivalence) =
+                    (by (list.equivalence n.equivalence) =
                         (list expected/0 expected/1 expected/2
                               expected/3 expected/4 expected/5)
                         (/.flat (/.tree expected/0
diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux
index 9b4d7968ff..ebb9a31a61 100644
--- a/stdlib/source/test/lux/data/collection/tree/finger.lux
+++ b/stdlib/source/test/lux/data/collection/tree/finger.lux
@@ -48,21 +48,21 @@
                  true))
              (_.coverage [/.tag]
                (and (text.= tag_left
-                            (/.tag (of ..builder leaf tag_left expected_left)))
+                            (/.tag (by ..builder leaf tag_left expected_left)))
                     (text.= (text#composite tag_left tag_right)
-                            (/.tag (of ..builder branch
-                                       (of ..builder leaf tag_left expected_left)
-                                       (of ..builder leaf tag_right expected_right))))))
+                            (/.tag (by ..builder branch
+                                       (by ..builder leaf tag_left expected_left)
+                                       (by ..builder leaf tag_right expected_right))))))
              (_.coverage [/.root]
-               (and (when (/.root (of ..builder leaf tag_left expected_left))
+               (and (when (/.root (by ..builder leaf tag_left expected_left))
                       {.#Left actual}
                       (n.= expected_left actual)
                       
                       {.#Right _}
                       false)
-                    (when (/.root (of ..builder branch
-                                      (of ..builder leaf tag_left expected_left)
-                                      (of ..builder leaf tag_right expected_right)))
+                    (when (/.root (by ..builder branch
+                                      (by ..builder leaf tag_left expected_left)
+                                      (by ..builder leaf tag_right expected_right)))
                       {.#Left _}
                       false
                       
@@ -77,11 +77,11 @@
                         false))))
              (_.coverage [/.value]
                (and (n.= expected_left
-                         (/.value (of ..builder leaf tag_left expected_left)))
+                         (/.value (by ..builder leaf tag_left expected_left)))
                     (n.= expected_left
-                         (/.value (of ..builder branch
-                                      (of ..builder leaf tag_left expected_left)
-                                      (of ..builder leaf tag_right expected_right))))))
+                         (/.value (by ..builder branch
+                                      (by ..builder leaf tag_left expected_left)
+                                      (by ..builder leaf tag_right expected_right))))))
              (do random.monad
                [.let [tags_equivalence (list.equivalence text.equivalence)
                       values_equivalence (list.equivalence n.equivalence)]
@@ -91,37 +91,37 @@
                 values/T (random.list 5 random.natural)]
                (_.coverage [/.tags /.values]
                  (let [tree (list#mix (function (_ [tag value] tree)
-                                        (of builder branch tree (of builder leaf tag value)))
-                                      (of builder leaf tags/H values/H)
+                                        (by builder branch tree (by builder leaf tag value)))
+                                      (by builder leaf tags/H values/H)
                                       (list.zipped_2 tags/T values/T))]
-                   (and (of tags_equivalence = (list.partial tags/H tags/T) (/.tags tree))
-                        (of values_equivalence = (list.partial values/H values/T) (/.values tree))))))
+                   (and (by tags_equivalence = (list.partial tags/H tags/T) (/.tags tree))
+                        (by values_equivalence = (list.partial values/H values/T) (/.values tree))))))
              (_.coverage [/.one]
                (let [can_find_correct_one!
-                     (|> (of ..builder leaf tag_left expected_left)
+                     (|> (by ..builder leaf tag_left expected_left)
                          (/.one (text.contains? tag_left))
                          (maybe#each (n.= expected_left))
                          (maybe.else false))
 
                      cannot_find_incorrect_one!
-                     (|> (of ..builder leaf tag_right expected_right)
+                     (|> (by ..builder leaf tag_right expected_right)
                          (/.one (text.contains? tag_left))
                          (maybe#each (n.= expected_left))
                          (maybe.else false)
                          not)
 
                      can_find_left!
-                     (|> (of ..builder branch
-                             (of ..builder leaf tag_left expected_left)
-                             (of ..builder leaf tag_right expected_right))
+                     (|> (by ..builder branch
+                             (by ..builder leaf tag_left expected_left)
+                             (by ..builder leaf tag_right expected_right))
                          (/.one (text.contains? tag_left))
                          (maybe#each (n.= expected_left))
                          (maybe.else false))
 
                      can_find_right!
-                     (|> (of ..builder branch
-                             (of ..builder leaf tag_left expected_left)
-                             (of ..builder leaf tag_right expected_right))
+                     (|> (by ..builder branch
+                             (by ..builder leaf tag_left expected_left)
+                             (by ..builder leaf tag_right expected_right))
                          (/.one (text.contains? tag_right))
                          (maybe#each (n.= expected_right))
                          (maybe.else false))]
@@ -132,23 +132,23 @@
              (_.coverage [/.exists?]
                (let [can_find_correct_one!
                      (/.exists? (text.contains? tag_left)
-                                (of ..builder leaf tag_left expected_left))
+                                (by ..builder leaf tag_left expected_left))
 
                      cannot_find_incorrect_one!
                      (not (/.exists? (text.contains? tag_left)
-                                     (of ..builder leaf tag_right expected_right)))
+                                     (by ..builder leaf tag_right expected_right)))
 
                      can_find_left!
                      (/.exists? (text.contains? tag_left)
-                                (of ..builder branch
-                                    (of ..builder leaf tag_left expected_left)
-                                    (of ..builder leaf tag_right expected_right)))
+                                (by ..builder branch
+                                    (by ..builder leaf tag_left expected_left)
+                                    (by ..builder leaf tag_right expected_right)))
 
                      can_find_right!
                      (/.exists? (text.contains? tag_right)
-                                (of ..builder branch
-                                    (of ..builder leaf tag_left expected_left)
-                                    (of ..builder leaf tag_right expected_right)))]
+                                (by ..builder branch
+                                    (by ..builder leaf tag_left expected_left)
+                                    (by ..builder leaf tag_right expected_right)))]
                  (and can_find_correct_one!
                       cannot_find_incorrect_one!
                       can_find_left!
diff --git a/stdlib/source/test/lux/data/collection/tree/zipper.lux b/stdlib/source/test/lux/data/collection/tree/zipper.lux
index 36c836ce96..4f3dfe21ae 100644
--- a/stdlib/source/test/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/test/lux/data/collection/tree/zipper.lux
@@ -170,7 +170,7 @@
                (open "list#[0]") (list.equivalence n.equivalence)]]
         (all _.and
              (_.for [/.equivalence]
-                    (equivalenceT.spec (/.equivalence n.equivalence) (of ! each (|>> product.right /.zipper) (//.tree random.natural))))
+                    (equivalenceT.spec (/.equivalence n.equivalence) (by ! each (|>> product.right /.zipper) (//.tree random.natural))))
              (_.for [/.functor]
                     (functorT.spec (|>> tree.leaf /.zipper) /.equivalence /.functor))
              (_.for [/.comonad]
diff --git a/stdlib/source/test/lux/data/color/cmyk.lux b/stdlib/source/test/lux/data/color/cmyk.lux
index 38d1c4088c..83b03a543c 100644
--- a/stdlib/source/test/lux/data/color/cmyk.lux
+++ b/stdlib/source/test/lux/data/color/cmyk.lux
@@ -90,6 +90,6 @@
                          (|> expected_rgb
                              /.of_rgb
                              /.rgb
-                             (of rgb.equivalence = expected_rgb)))
+                             (by rgb.equivalence = expected_rgb)))
                        ))
            )))
diff --git a/stdlib/source/test/lux/data/color/hsb.lux b/stdlib/source/test/lux/data/color/hsb.lux
index fdbec59977..60e92d24bc 100644
--- a/stdlib/source/test/lux/data/color/hsb.lux
+++ b/stdlib/source/test/lux/data/color/hsb.lux
@@ -99,14 +99,14 @@
                        (_.coverage [/.hsb
                                     /.hue /.saturation /.brightness]
                          (|> (/.hsb (/.hue expected_hsb) (/.saturation expected_hsb) (/.brightness expected_hsb))
-                             (of /.equivalence = expected_hsb)))
+                             (by /.equivalence = expected_hsb)))
                        (_.coverage [/.of_rgb /.rgb]
                          (|> expected_rgb
                              /.of_rgb
                              /.rgb
-                             (of rgb.equivalence = expected_rgb)))
+                             (by rgb.equivalence = expected_rgb)))
                        (_.coverage [/.injection]
-                         (bit.= (of /.equivalence = left right)
+                         (bit.= (by /.equivalence = left right)
                                 (text.= (/.injection left) (/.injection right))))
                        ))
            )))
diff --git a/stdlib/source/test/lux/data/color/hsl.lux b/stdlib/source/test/lux/data/color/hsl.lux
index 1c283c4609..0531c9e046 100644
--- a/stdlib/source/test/lux/data/color/hsl.lux
+++ b/stdlib/source/test/lux/data/color/hsl.lux
@@ -118,12 +118,12 @@
                              (|> (/.hsl (its /.#hue expected_hsl)
                                         (its /.#saturation expected_hsl)
                                         (its /.#luminance expected_hsl))
-                                 (of /.equivalence = expected_hsl)))
+                                 (by /.equivalence = expected_hsl)))
                            (_.coverage [/.of_rgb /.rgb]
                              (|> expected_rgb
                                  /.of_rgb
                                  /.rgb
-                                 (of rgb.equivalence = expected_rgb)))
+                                 (by rgb.equivalence = expected_rgb)))
 
                            (_.coverage [/.saturated]
                              (d.> (its /.#saturation mediocre)
@@ -140,7 +140,7 @@
                                         d.abs
                                         (d.<= ..rgb_error_margin)))))
                            (_.coverage [/.injection]
-                             (bit.= (of /.equivalence = left right)
+                             (bit.= (by /.equivalence = left right)
                                     (text.= (/.injection left) (/.injection right))))
                            )))
            )))
diff --git a/stdlib/source/test/lux/data/color/named.lux b/stdlib/source/test/lux/data/color/named.lux
index c4d2c55174..bf8a13c6bc 100644
--- a/stdlib/source/test/lux/data/color/named.lux
+++ b/stdlib/source/test/lux/data/color/named.lux
@@ -224,7 +224,7 @@
          (the .public random
            (Random RGB)
            (do [! random.monad]
-             [choice (of ! each (n.% (set.size ..unique_colors))
+             [choice (by ! each (n.% (set.size ..unique_colors))
                          random.natural)]
              (in (maybe.trusted (list.item choice ..all_colors)))))
 
@@ -249,8 +249,8 @@
                               
                               ))
                         (_.coverage [/.aqua]
-                          (of rgb.equivalence = /.cyan /.aqua))
+                          (by rgb.equivalence = /.cyan /.aqua))
                         (_.coverage [/.fuchsia]
-                          (of rgb.equivalence = /.magenta /.fuchsia))
+                          (by rgb.equivalence = /.magenta /.fuchsia))
                         )))))
   )
diff --git a/stdlib/source/test/lux/data/color/rgb.lux b/stdlib/source/test/lux/data/color/rgb.lux
index 3d0275a70b..a7b45fda0c 100644
--- a/stdlib/source/test/lux/data/color/rgb.lux
+++ b/stdlib/source/test/lux/data/color/rgb.lux
@@ -138,8 +138,8 @@
                            (and (not (/.= expected ~expected))
                                 (/.= expected (/.complement ~expected)))))
                        (_.coverage [/.black /.white]
-                         (and (of /.equivalence = /.white (/.complement /.black))
-                              (of /.equivalence = /.black (/.complement /.white))))
+                         (and (by /.equivalence = /.white (/.complement /.black))
+                              (by /.equivalence = /.black (/.complement /.white))))
 
                        (_.coverage [/.interpolated]
                          (and (d.<= (distance/3 /.black colorful)
@@ -152,7 +152,7 @@
                               (d.<= (distance/3 /.white colorful)
                                     (distance/3 /.white (/.brighter ratio colorful)))))
                        (_.coverage [/.injection]
-                         (bit.= (of /.equivalence = left right)
+                         (bit.= (by /.equivalence = left right)
                                 (text.= (/.injection left) (/.injection right))))
                        ))
            )))
diff --git a/stdlib/source/test/lux/data/color/scheme.lux b/stdlib/source/test/lux/data/color/scheme.lux
index a4989980d7..f626d4e00f 100644
--- a/stdlib/source/test/lux/data/color/scheme.lux
+++ b/stdlib/source/test/lux/data/color/scheme.lux
@@ -32,15 +32,15 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [expected_hue (of ! each (|>> d.abs (d.% +0.9) (d.+ +0.05))
+        [expected_hue (by ! each (|>> d.abs (d.% +0.9) (d.+ +0.05))
                           random.unit_decimal)
          .let [expected_saturation +0.5]
-         variations (of ! each (|>> (n.% 3) (n.+ 2)) random.natural)
+         variations (by ! each (|>> (n.% 3) (n.+ 2)) random.natural)
          .let [max_spread (d./ (|> variations ++ .integer integer.decimal)
                                +1.0)
                min_spread (d./ +2.0 max_spread)
                spread_space (d.- min_spread max_spread)]
-         spread (of ! each (|>> d.abs (d.% spread_space) (d.+ min_spread))
+         spread (by ! each (|>> d.abs (d.% spread_space) (d.+ min_spread))
                     random.unit_decimal)])
       (`` (all _.and
                (,, (template.with []
diff --git a/stdlib/source/test/lux/data/color/terminal.lux b/stdlib/source/test/lux/data/color/terminal.lux
index 41c30a5824..793bff26fe 100644
--- a/stdlib/source/test/lux/data/color/terminal.lux
+++ b/stdlib/source/test/lux/data/color/terminal.lux
@@ -91,7 +91,7 @@
                         (and (text.contains? expected_text it)
                              (not (text.= expected_text it)))))
                     (_.coverage [/.foreground /.background]
-                      (not (of /.equivalence =
+                      (not (by /.equivalence =
                                (/.foreground color)
                                (/.background color))))
                     (`` (_.coverage [(,, (template.with []
@@ -104,7 +104,7 @@
                               true
 
                               {.#Item head tail}
-                              (and (list.every? (|>> (of /.equivalence = head) not) tail)
+                              (and (list.every? (|>> (by /.equivalence = head) not) tail)
                                    (again tail))))))
                     ))))
   )
diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux
index 36331e4fec..8b1f066373 100644
--- a/stdlib/source/test/lux/data/format/json.lux
+++ b/stdlib/source/test/lux/data/format/json.lux
@@ -40,6 +40,7 @@
      ["[0]" i64]]]
    ["[0]" meta (.only)
     ["[0]" code]
+    ["[0]" static]
     ["[0]" macro (.only)
      ["^" pattern]
      ["[0]" syntax]
@@ -74,23 +75,23 @@
       (_.for [\\projection.Projection])
       (`` (all _.and
                (do [! random.monad]
-                 [expected (of ! each (|>> {/.#String}) (random.unicode 1))]
+                 [expected (by ! each (|>> {/.#String}) (random.unicode 1))]
                  (_.coverage [\\projection.value \\projection.any]
                    (|> (\\projection.value \\projection.any expected)
                        (!expect (^.multi {try.#Success actual}
-                                         (of /.equivalence = expected actual))))))
+                                         (by /.equivalence = expected actual))))))
                (_.coverage [\\projection.null]
                  (|> (\\projection.value \\projection.null {/.#Null})
                      (!expect {try.#Success _})))
                (,, (template.with [     ]
                      [(do [! random.monad]
                         [expected 
-                         dummy (|>  (random.only (|>> (of  = expected) not)))]
+                         dummy (|>  (random.only (|>> (by  = expected) not)))]
                         (all _.and
                              (_.coverage []
                                (|> (\\projection.value  { expected})
                                    (!expect (^.multi {try.#Success actual}
-                                                     (of  = expected actual)))))
+                                                     (by  = expected actual)))))
                              (_.coverage []
                                (and (|> (\\projection.value ( expected) { expected})
                                         (!expect {try.#Success .true}))
@@ -115,7 +116,7 @@
                                          (exception.is? \\projection.unexpected_value error))))))
                (do [! random.monad]
                  [expected (random.unicode 1)
-                  dummy (|> (random.unicode 1) (random.only (|>> (of text.equivalence = expected) not)))]
+                  dummy (|> (random.unicode 1) (random.only (|>> (by text.equivalence = expected) not)))]
                  (_.coverage [\\projection.value_mismatch]
                    (|> (\\projection.value (\\projection.this_string expected) {/.#String dummy})
                        (!expect (^.multi {try.#Failure error}
@@ -125,21 +126,21 @@
                  (_.coverage [\\projection.nullable]
                    (and (|> (\\projection.value (\\projection.nullable \\projection.string) {/.#Null})
                             (!expect (^.multi {try.#Success actual}
-                                              (of (maybe.equivalence text.equivalence) = {.#None} actual))))
+                                              (by (maybe.equivalence text.equivalence) = {.#None} actual))))
                         (|> (\\projection.value (\\projection.nullable \\projection.string) {/.#String expected})
                             (!expect (^.multi {try.#Success actual}
-                                              (of (maybe.equivalence text.equivalence) = {.#Some expected} actual)))))))
+                                              (by (maybe.equivalence text.equivalence) = {.#Some expected} actual)))))))
                (do [! random.monad]
-                 [size (of ! each (natural.% 10) random.natural)
+                 [size (by ! each (natural.% 10) random.natural)
                   expected (|> (random.unicode 1)
                                (random.list size))]
                  (_.coverage [\\projection.array]
                    (|> (\\projection.value (\\projection.array (<>.some \\projection.string))
                                            {/.#Array (list#each (|>> {/.#String}) expected)})
                        (!expect (^.multi {try.#Success actual}
-                                         (of (list.equivalence text.equivalence) = expected actual))))))
+                                         (by (list.equivalence text.equivalence) = expected actual))))))
                (do [! random.monad]
-                 [expected (of ! each (|>> {/.#String}) (random.unicode 1))]
+                 [expected (by ! each (|>> {/.#String}) (random.unicode 1))]
                  (_.coverage [\\projection.unconsumed_input]
                    (|> (\\projection.value (\\projection.array \\projection.any) {/.#Array (list expected expected)})
                        (!expect (^.multi {try.#Failure error}
@@ -153,7 +154,7 @@
                   expected_number random.safe_decimal
                   expected_string (random.unicode 1)
                   [boolean_field number_field string_field] (|> (random.set text.hash 3 (random.unicode 3))
-                                                                (of ! each (|>> set.list
+                                                                (by ! each (|>> set.list
                                                                                 (pipe.when
                                                                                   (list boolean_field number_field string_field)
                                                                                   [boolean_field number_field string_field]
@@ -171,11 +172,11 @@
                                                                       [number_field {/.#Number expected_number}]
                                                                       [string_field {/.#String expected_string}]))})
                        (!expect (^.multi {try.#Success [actual_boolean actual_number actual_string]}
-                                         (and (of bit.equivalence = expected_boolean actual_boolean)
-                                              (of decimal.equivalence = expected_number actual_number)
-                                              (of text.equivalence = expected_string actual_string)))))))
+                                         (and (by bit.equivalence = expected_boolean actual_boolean)
+                                              (by decimal.equivalence = expected_number actual_number)
+                                              (by text.equivalence = expected_string actual_string)))))))
                (do [! random.monad]
-                 [size (of ! each (natural.% 10) random.natural)
+                 [size (by ! each (natural.% 10) random.natural)
                   keys (random.list size (random.unicode 1))
                   values (random.list size (random.unicode 1))
                   .let [expected (dictionary.of_list text.hash (list.zipped_2 keys values))]]
@@ -187,7 +188,7 @@
                                                 (list.zipped_2 keys)
                                                 (dictionary.of_list text.hash))})
                        (!expect (^.multi {try.#Success actual}
-                                         (of (dictionary.equivalence text.equivalence) = expected actual))))))
+                                         (by (dictionary.equivalence text.equivalence) = expected actual))))))
                ))))
 
 (every Variant
@@ -224,7 +225,7 @@
 (the gen_arbitrary
   (Random Arbitrary)
   (do [! random.monad]
-    [size (of ! each (natural.% 2) random.natural)]
+    [size (by ! each (natural.% 2) random.natural)]
     (all random.and
          (random.maybe random.unit_decimal)
          ..gen_recursive)))
@@ -248,9 +249,9 @@
   (random.rec
    (function (_ again)
      (do [! random.monad]
-       [size (of ! each (natural.% 2) random.natural)]
+       [size (by ! each (natural.% 2) random.natural)]
        (all random.or
-            (of ! in [])
+            (by ! in [])
             random.bit
             random.unit_decimal
             (random.lower_cased size)
@@ -281,8 +282,9 @@
   (<| (_.covering /._)
       (_.for [/.JSON])
       (`` (all _.and
-               (_.for [/.equivalence]
-                      (equivalenceT.spec /.equivalence ..random))
+               (_.for [/.equivalence /.=]
+                      (static.when (same? /.equivalence /.=)
+                        (equivalenceT.spec /.equivalence ..random)))
                (_.for [/.any]
                       (all _.and
                            (formatT.spec any.equivalence /.any (random#in []))
@@ -376,16 +378,16 @@
                              [expected (random.lower_cased 1)]
                              (_.coverage [/.#String]
                                (|> {/.#String expected}
-                                   (of /.format injection)
-                                   (of /.format projection)
-                                   (try#each (of /.equivalence = {/.#String expected}))
+                                   (by /.format injection)
+                                   (by /.format projection)
+                                   (try#each (by /.equivalence = {/.#String expected}))
                                    (try.else false))))
                            ))
 
                (do random.monad
                  [sample ..random]
                  (_.coverage [/.Null /.#Null /.null?]
-                   (of bit.equivalence =
+                   (by bit.equivalence =
                        (/.null? sample)
                        (when sample
                          {/.#Null} true
@@ -395,7 +397,7 @@
                  (_.coverage [/.as_text]
                    (|> expected
                        /.as_text
-                       (of /.format projection)
+                       (by /.format projection)
                        (try#each (/.= expected))
                        (try.else false))))
                (do random.monad
@@ -408,7 +410,7 @@
                       (_.coverage [/.object /.fields]
                         (when (/.fields object)
                           {try.#Success actual}
-                          (of (list.equivalence text.equivalence) =
+                          (by (list.equivalence text.equivalence) =
                               (list#each product.left expected)
                               actual)
                           
@@ -423,7 +425,7 @@
                       ))
                (do random.monad
                  [key (random.alphabetic 1)
-                  unknown (random.only (|>> (of text.equivalence = key) not)
+                  unknown (random.only (|>> (by text.equivalence = key) not)
                                        (random.alphabetic 1))
                   expected random.unit_decimal]
                  (_.coverage [/.has]
@@ -452,7 +454,7 @@
                         (_.coverage [  ]
                           (|> (/.object (list [key { value}]))
                               ( key)
-                              (try#each (of  = value))
+                              (try#each (by  = value))
                               (try.else false))))]
 
                      [/.Boolean /.boolean_field /.#Boolean random.bit bit.equivalence]
diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux
index 8dbfe12e5f..4a3278434a 100644
--- a/stdlib/source/test/lux/data/format/tar.lux
+++ b/stdlib/source/test/lux/data/format/tar.lux
@@ -114,8 +114,8 @@
   Test
   (_.for [/.Small]
          (do [! random.monad]
-           [expected (|> random.natural (of ! each (n.% /.small_limit)))
-            invalid (|> random.natural (of ! each (n.max /.small_limit)))]
+           [expected (|> random.natural (by ! each (n.% /.small_limit)))
+            invalid (|> random.natural (by ! each (n.max /.small_limit)))]
            (`` (all _.and
                     (_.coverage [/.small /.from_small]
                       (when (/.small expected)
@@ -138,8 +138,8 @@
   Test
   (_.for [/.Big]
          (do [! random.monad]
-           [expected (|> random.natural (of ! each (n.% /.big_limit)))
-            invalid (|> random.natural (of ! each (n.max /.big_limit)))]
+           [expected (|> random.natural (by ! each (n.% /.big_limit)))
+            invalid (|> random.natural (by ! each (n.max /.big_limit)))]
            (`` (all _.and
                     (_.coverage [/.big /.from_big]
                       (when (/.big expected)
@@ -164,14 +164,14 @@
   Test
   (do [! random.monad]
     [expected_path (random.lower_cased (-- /.path_size))
-     expected_moment (of ! each (|>> (n.% 1,0,00,00,00,00,000) .integer instant.of_millis)
+     expected_moment (by ! each (|>> (n.% 1,0,00,00,00,00,000) .integer instant.of_millis)
                          random.natural)
      chunk (random.lower_cased chunk_size)
-     chunks (of ! each (n.% 100) random.natural)
+     chunks (by ! each (n.% 100) random.natural)
      .let [content (|> chunk
                        (list.repeated chunks)
                        text.together
-                       (of utf8.format injection))]]
+                       (by utf8.format injection))]]
     (`` (all _.and
              (,, (template.with [ ]
                    [(_.coverage []
@@ -408,7 +408,7 @@
                (|> sequence.empty
                    (\\injection.value /.injection)
                    (.value /.projection)
-                   (of try.monad each sequence.empty?)
+                   (by try.monad each sequence.empty?)
                    (try.else false)))
              (_.coverage [/.invalid_end_of_archive]
                (let [dump (\\injection.value /.injection sequence.empty)]
diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux
index e8d83f0232..30b63db928 100644
--- a/stdlib/source/test/lux/data/format/xml.lux
+++ b/stdlib/source/test/lux/data/format/xml.lux
@@ -26,6 +26,7 @@
     [number
      ["n" natural]]]
    [meta
+    ["[0]" static]
     ["[0]" symbol]
     ["[0]" type]
     [macro
@@ -83,7 +84,7 @@
                      [[(<>#in expected)
                        {/.#Text expected}]])
            (do [! random.monad]
-             [expected (of ! each (|>> {/.#Text}) (random.alphabetic 1))]
+             [expected (by ! each (|>> {/.#Text}) (random.alphabetic 1))]
              (_.coverage [\\projection.any]
                (|> (\\projection.value \\projection.any (list expected))
                    (try#each (/.= expected))
@@ -173,7 +174,7 @@
                                             (<>#in []))
                                       _ (<>.some \\projection.any)]
                                      (in [])))]
-              repetitions (of ! each (n.% 10) random.natural)]
+              repetitions (by ! each (n.% 10) random.natural)]
              (all _.and
                   (_.coverage [\\projection.somewhere]
                     (|> (\\projection.value projection
@@ -200,7 +201,7 @@
 (the character
   (Random Natural)
   (do [! random.monad]
-    [idx (|> random.natural (of ! each (n.% (text.size character_range))))]
+    [idx (|> random.natural (by ! each (n.% (text.size character_range))))]
     (in (maybe.trusted (text.character idx character_range)))))
 
 (the (size bottom top)
@@ -235,8 +236,9 @@
   (<| (_.covering /._)
       (_.for [/.XML /.#Text /.#Node])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..random))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..random)))
            (_.for [/.format]
                   (formatT.spec /.equivalence /.format ..random))
 
@@ -261,8 +263,8 @@
              (_.coverage [/.as_text]
                (|> expected
                    /.as_text
-                   (of /.format projection)
-                   (try#each (of /.equivalence = expected))
+                   (by /.format projection)
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
 
            ..\\projection
diff --git a/stdlib/source/test/lux/data/product.lux b/stdlib/source/test/lux/data/product.lux
index 913b278c77..bc8c3dfb66 100644
--- a/stdlib/source/test/lux/data/product.lux
+++ b/stdlib/source/test/lux/data/product.lux
@@ -36,9 +36,9 @@
                 right random.natural]
                (_.coverage [/.hash]
                  (let [hash (/.hash i.hash n.hash)]
-                   (n.= (n.+ (of i.hash hash left)
-                             (of n.hash hash right))
-                        (of hash hash [left right])))))
+                   (n.= (n.+ (by i.hash hash left)
+                             (by n.hash hash right))
+                        (by hash hash [left right])))))
              
              (<| (_.coverage [/.left])
                  (n.= expected (/.left [expected dummy])))
diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux
index 732a07b09c..d3db185411 100644
--- a/stdlib/source/test/lux/data/sum.lux
+++ b/stdlib/source/test/lux/data/sum.lux
@@ -72,25 +72,25 @@
                         (/.then (n.+ shift) (n.- shift))
                         (pipe.when {#1 actual} (n.= (n.- shift expected) actual) _ false))))
              (do !
-               [size (of ! each (n.% 5) random.natural)
+               [size (by ! each (n.% 5) random.natural)
                 expected (random.list size random.natural)]
                (all _.and
                     (_.coverage [/.lefts]
                       (let [actual (is (List (Or Natural Natural))
                                        (list#each /.left expected))]
-                        (and (of (list.equivalence n.equivalence) =
+                        (and (by (list.equivalence n.equivalence) =
                                  expected
                                  (/.lefts actual))
-                             (of (list.equivalence n.equivalence) =
+                             (by (list.equivalence n.equivalence) =
                                  (list)
                                  (/.rights actual)))))
                     (_.coverage [/.rights]
                       (let [actual (is (List (Or Natural Natural))
                                        (list#each /.right expected))]
-                        (and (of (list.equivalence n.equivalence) =
+                        (and (by (list.equivalence n.equivalence) =
                                  expected
                                  (/.rights actual))
-                             (of (list.equivalence n.equivalence) =
+                             (by (list.equivalence n.equivalence) =
                                  (list)
                                  (/.lefts actual)))))
                     (_.coverage [/.partition]
@@ -101,10 +101,10 @@
                                                               (/.right value))))
                                                (is (List (Or Natural Natural)))
                                                /.partition)]
-                        (and (of (list.equivalence n.equivalence) =
+                        (and (by (list.equivalence n.equivalence) =
                                  (list.only n.even? expected)
                                  lefts)
-                             (of (list.equivalence n.equivalence) =
+                             (by (list.equivalence n.equivalence) =
                                  (list.only (|>> n.even? not) expected)
                                  rights))))
                     ))
diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux
index e900112d68..d35534f90e 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -101,7 +101,7 @@
                  [(do random.monad
                     [sample ]
                     (_.coverage []
-                      (/.= (of  injection sample)
+                      (/.= (by  injection sample)
                            ( sample))))]
 
                  [\\injection.natural natural.base_10 random.natural]
@@ -127,13 +127,13 @@
            (,, (template.with [  ]
                  [(do [! random.monad]
                     [sample 
-                     .let [limit (|> (of natural.interval top)
+                     .let [limit (|> (by natural.interval top)
                                      
                                      /.size
                                      ++)]
-                     expected_size (of ! each (natural.% limit) random.natural)]
+                     expected_size (by ! each (natural.% limit) random.natural)]
                     (_.coverage [ \\injection.padded]
-                      (/.= (of (natural.padded expected_size ) injection sample)
+                      (/.= (by (natural.padded expected_size ) injection sample)
                            (\\injection.padded expected_size  sample))))]
 
                  [\\injection.natural_02 natural.binary random.natural]
@@ -143,7 +143,7 @@
                  ))
            (,, (template.with [ ]
                  [(do [! random.monad]
-                    [it (of ! each (|>> 
+                    [it (by ! each (|>> 
                                         decimal.integer
                                         integer.decimal
                                         (decimal./ ( +1.0)))
@@ -212,10 +212,10 @@
                  [modulus (random.one (|>> modulus.modulus
                                            try.maybe)
                                       random.integer)
-                  sample (of ! each (modular.modular modulus)
+                  sample (by ! each (modular.modular modulus)
                              random.integer)]
                  (_.coverage [\\injection.mod]
-                   (/.= (of (modular.format modulus) injection sample)
+                   (/.= (by (modular.format modulus) injection sample)
                         (\\injection.mod sample))))
                ))))
 
@@ -252,7 +252,7 @@
   (-> Text (\\projection.Projection Text) Bit)
   (|> expected
       (\\projection.value projection)
-      (of try.functor each (/.= expected))
+      (by try.functor each (/.= expected))
       (try.else false)))
 
 (the (should_pass! expected projection)
@@ -263,13 +263,13 @@
   Test
   (all _.and
        (do [! random.monad]
-         [offset (of ! each (natural.% 50) random.natural)
-          range (of ! each (|>> (natural.% 50) (natural.+ 10)) random.natural)
+         [offset (by ! each (natural.% 50) random.natural)
+          range (by ! each (|>> (natural.% 50) (natural.+ 10)) random.natural)
           .let [limit (natural.+ offset range)]
-          expected (of ! each (|>> (natural.% range) (natural.+ offset) /.of_character) random.natural)
+          expected (by ! each (|>> (natural.% range) (natural.+ offset) /.of_character) random.natural)
           out_of_range (when offset
-                         0 (of ! each (|>> (natural.% 10) ++ (natural.+ limit) /.of_character) random.natural)
-                         _ (of ! each (|>> (natural.% offset) /.of_character) random.natural))]
+                         0 (by ! each (|>> (natural.% 10) ++ (natural.+ limit) /.of_character) random.natural)
+                         _ (by ! each (|>> (natural.% offset) /.of_character) random.natural))]
          (_.coverage [\\projection.range]
            (and (..should_pass expected (\\projection.range offset limit))
                 (..should_fail out_of_range (\\projection.range offset limit)))))
@@ -288,22 +288,22 @@
            (and (..should_pass (/.of_character expected) \\projection.lower)
                 (..should_fail (/.of_character invalid) \\projection.lower))))
        (do [! random.monad]
-         [expected (of ! each (natural.% 10) random.natural)
+         [expected (by ! each (natural.% 10) random.natural)
           invalid (random.character (unicode.set [unicode/block.number_forms (list)]))]
          (_.coverage [\\projection.decimal]
-           (and (..should_pass (of natural.base_10 injection expected) \\projection.decimal)
+           (and (..should_pass (by natural.base_10 injection expected) \\projection.decimal)
                 (..should_fail (/.of_character invalid) \\projection.decimal))))
        (do [! random.monad]
-         [expected (of ! each (natural.% 8) random.natural)
+         [expected (by ! each (natural.% 8) random.natural)
           invalid (random.character (unicode.set [unicode/block.number_forms (list)]))]
          (_.coverage [\\projection.octal]
-           (and (..should_pass (of natural.octal injection expected) \\projection.octal)
+           (and (..should_pass (by natural.octal injection expected) \\projection.octal)
                 (..should_fail (/.of_character invalid) \\projection.octal))))
        (do [! random.monad]
-         [expected (of ! each (natural.% 16) random.natural)
+         [expected (by ! each (natural.% 16) random.natural)
           invalid (random.character (unicode.set [unicode/block.number_forms (list)]))]
          (_.coverage [\\projection.hexadecimal]
-           (and (..should_pass (of natural.hex injection expected) \\projection.hexadecimal)
+           (and (..should_pass (by natural.hex injection expected) \\projection.hexadecimal)
                 (..should_fail (/.of_character invalid) \\projection.hexadecimal))))
        (do [! random.monad]
          [expected (random.character unicode.alphabetic)
@@ -346,10 +346,10 @@
          [.let [num_options 3]
           options (|> (random.character unicode.character)
                       (random.set natural.hash num_options)
-                      (of ! each (|>> set.list
+                      (by ! each (|>> set.list
                                       (list#each /.of_character)
                                       /.together)))
-          expected (of ! each (function (_ value)
+          expected (by ! each (function (_ value)
                                 (|> options
                                     (/.character (natural.% num_options value))
                                     maybe.trusted))
@@ -372,10 +372,10 @@
          [.let [num_options 3]
           options (|> (random.character unicode.character)
                       (random.set natural.hash num_options)
-                      (of ! each (|>> set.list
+                      (by ! each (|>> set.list
                                       (list#each /.of_character)
                                       /.together)))
-          invalid (of ! each (function (_ value)
+          invalid (by ! each (function (_ value)
                                (|> options
                                    (/.character (natural.% num_options value))
                                    maybe.trusted))
@@ -401,26 +401,26 @@
   (let [octal! (\\projection.one_of! "01234567")]
     (all _.and
          (do [! random.monad]
-           [left (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)
-            right (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)
+           [left (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)
+            right (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)
             .let [expected (\\injection.message left right)]
             invalid (|> random.natural
-                        (of ! each (natural.% 16))
+                        (by ! each (natural.% 16))
                         (random.only (natural.>= 8))
-                        (of ! each (of natural.hex injection)))]
+                        (by ! each (by natural.hex injection)))]
            (_.coverage [\\projection.many \\projection.many!]
              (and (..should_pass expected (\\projection.many \\projection.octal))
                   (..should_fail invalid (\\projection.many \\projection.octal))
 
                   (..should_pass! expected (\\projection.many! octal!)))))
          (do [! random.monad]
-           [left (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)
-            right (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)
+           [left (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)
+            right (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)
             .let [expected (\\injection.message left right)]
             invalid (|> random.natural
-                        (of ! each (natural.% 16))
+                        (by ! each (natural.% 16))
                         (random.only (natural.>= 8))
-                        (of ! each (of natural.hex injection)))]
+                        (by ! each (by natural.hex injection)))]
            (_.coverage [\\projection.some \\projection.some!]
              (and (..should_pass expected (\\projection.some \\projection.octal))
                   (..should_pass "" (\\projection.some \\projection.octal))
@@ -429,7 +429,7 @@
                   (..should_pass! expected (\\projection.some! octal!))
                   (..should_pass! "" (\\projection.some! octal!)))))
          (do [! random.monad]
-           [.let [octal (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)]
+           [.let [octal (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)]
             first octal
             second octal
             third octal]
@@ -442,7 +442,7 @@
                   (..should_fail (\\injection.message first second third) (\\projection.exactly! 2 octal!))
                   (..should_fail (\\injection.message first) (\\projection.exactly! 2 octal!)))))
          (do [! random.monad]
-           [.let [octal (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)]
+           [.let [octal (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)]
             first octal
             second octal
             third octal]
@@ -455,7 +455,7 @@
                   (..should_pass! (\\injection.message first) (\\projection.at_most! 2 octal!))
                   (..should_fail (\\injection.message first second third) (\\projection.at_most! 2 octal!)))))
          (do [! random.monad]
-           [.let [octal (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)]
+           [.let [octal (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)]
             first octal
             second octal
             third octal]
@@ -468,7 +468,7 @@
                   (..should_pass! (\\injection.message first second third) (\\projection.at_least! 2 octal!))
                   (..should_fail (\\injection.message first) (\\projection.at_least! 2 octal!)))))
          (do [! random.monad]
-           [.let [octal (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)]
+           [.let [octal (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)]
             first octal
             second octal
             third octal]
@@ -580,7 +580,7 @@
                                          (\\projection.this output)))
                    (!expect {try.#Success _}))))
            (do [! random.monad]
-             [expected (of ! each (|>> (natural.% 8) (of natural.octal injection)) random.natural)]
+             [expected (by ! each (|>> (natural.% 8) (by natural.octal injection)) random.natural)]
              (_.coverage [\\projection.then]
                (|> (list (code.text expected))
                    (.value (\\projection.then \\projection.octal .text))
@@ -636,12 +636,12 @@
 (the bounded_size
   (random.Random Natural)
   (|> random.natural
-      (of random.monad each (|>> (natural.% 20) (natural.+ 1)))))
+      (by random.monad each (|>> (natural.% 20) (natural.+ 1)))))
 
 (the size
   Test
   (do [! random.monad]
-    [size (of ! each (natural.% 10) random.natural)
+    [size (by ! each (natural.% 10) random.natural)
      sample (random.unicode size)]
     (all _.and
          (_.coverage [/.size]
@@ -654,11 +654,11 @@
   Test
   (do [! random.monad]
     [inner (random.unicode 1)
-     outer (random.only (|>> (of /.equivalence = inner) not)
+     outer (random.only (|>> (by /.equivalence = inner) not)
                         (random.unicode 1))
      left (random.unicode 1)
      right (random.unicode 1)
-     .let [full (of /.monoid composite inner outer)
+     .let [full (by /.monoid composite inner outer)
            fake_index (-- 0)]]
     (`` (all _.and
              (,, (template.with [ ]
@@ -683,23 +683,23 @@
   Test
   (do [! random.monad]
     [inner (random.unicode 1)
-     outer (random.only (|>> (of /.equivalence = inner) not)
+     outer (random.only (|>> (by /.equivalence = inner) not)
                         (random.unicode 1))
      .let [fake_index (-- 0)]]
     (all _.and
          (_.coverage [/.contains?]
-           (let [full (of /.monoid composite inner outer)]
+           (let [full (by /.monoid composite inner outer)]
              (and (/.contains? inner full)
                   (/.contains? outer full))))
          (_.coverage [/.index]
-           (and (|> (/.index inner (of /.monoid composite inner outer))
+           (and (|> (/.index inner (by /.monoid composite inner outer))
                     (maybe.else fake_index)
                     (natural.= 0))
-                (|> (/.index outer (of /.monoid composite inner outer))
+                (|> (/.index outer (by /.monoid composite inner outer))
                     (maybe.else fake_index)
                     (natural.= 1))))
          (_.coverage [/.index_since]
-           (let [full (of /.monoid composite inner outer)]
+           (let [full (by /.monoid composite inner outer)]
              (and (|> (/.index_since 0 inner full)
                       (maybe.else fake_index)
                       (natural.= 0))
@@ -717,7 +717,7 @@
                       (maybe.else fake_index)
                       (natural.= fake_index)))))
          (_.coverage [/.last_index]
-           (let [full (all (of /.monoid composite) outer inner outer)]
+           (let [full (all (by /.monoid composite) outer inner outer)]
              (and (|> (/.last_index inner full)
                       (maybe.else fake_index)
                       (natural.= 1))
@@ -733,7 +733,7 @@
               (`` (all _.and
                        (,, (template.with [ ]
                              [(_.coverage [ ]
-                                (of /.equivalence =  ))]
+                                (by /.equivalence =  ))]
 
                              [/.\0  /.null]
                              [/.\a  /.alarm]
@@ -745,13 +745,13 @@
                              [/.\r  /.carriage_return]
                              [/.\'' /.double_quote]))
                        (_.coverage [/.line_feed]
-                         (of /.equivalence = /.new_line /.line_feed))
+                         (by /.equivalence = /.new_line /.line_feed))
                        )))
        (do [! random.monad]
-         [size (of ! each (|>> (natural.% 10) ++) random.natural)
+         [size (by ! each (|>> (natural.% 10) ++) random.natural)
           characters (random.set /.hash size (random.alphabetic 1))
           .let [sample (|> characters set.list /.together)]
-          expected (of ! each (natural.% size) random.natural)]
+          expected (by ! each (natural.% size) random.natural)]
          (_.coverage [/.character]
            (when (/.character expected sample)
              {.#Some character}
@@ -780,13 +780,13 @@
 (the manipulation
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (natural.% 10) (natural.+ 2)) random.natural)
+    [size (by ! each (|>> (natural.% 10) (natural.+ 2)) random.natural)
      characters (random.set /.hash size (random.alphabetic 1))
      separator (random.only (|>> (set.member? characters) not)
                             (random.alphabetic 1))
      .let [with_no_separator (|> characters set.list /.together)]
      static (random.alphabetic 1)
-     .let [dynamic (random.only (|>> (of /.equivalence = static) not)
+     .let [dynamic (random.only (|>> (by /.equivalence = static) not)
                                 (random.alphabetic 1))]
      pre dynamic
      post dynamic
@@ -802,19 +802,19 @@
                     (/.interposed separator)
                     (/.all_split_by separator)
                     (set.of_list /.hash)
-                    (of set.equivalence = characters))
-                (of /.equivalence =
+                    (by set.equivalence = characters))
+                (by /.equivalence =
                     (/.together (set.list characters))
                     (/.interposed "" (set.list characters)))))
          (_.coverage [/.replaced_once]
-           (of /.equivalence =
-               (of /.monoid composite post static)
-               (/.replaced_once pre post (of /.monoid composite pre static))))
+           (by /.equivalence =
+               (by /.monoid composite post static)
+               (/.replaced_once pre post (by /.monoid composite pre static))))
          (_.coverage [/.split_by]
-           (when (/.split_by static (all (of /.monoid composite) pre static post))
+           (when (/.split_by static (all (by /.monoid composite) pre static post))
              {.#Some [left right]}
-             (and (of /.equivalence = pre left)
-                  (of /.equivalence = post right))
+             (and (by /.equivalence = pre left)
+                  (by /.equivalence = post right))
              
              {.#None}
              false))
@@ -822,19 +822,19 @@
            (let [effectiveness!
                  (|> upper
                      /.lower_cased
-                     (of /.equivalence = upper)
+                     (by /.equivalence = upper)
                      not)
 
                  idempotence!
                  (|> lower
                      /.lower_cased
-                     (of /.equivalence = lower))
+                     (by /.equivalence = lower))
                  
                  inverse!
                  (|> lower
                      /.upper_cased
                      /.lower_cased
-                     (of /.equivalence = lower))]
+                     (by /.equivalence = lower))]
              (and effectiveness!
                   idempotence!
                   inverse!)))
@@ -842,19 +842,19 @@
            (let [effectiveness!
                  (|> lower
                      /.upper_cased
-                     (of /.equivalence = lower)
+                     (by /.equivalence = lower)
                      not)
 
                  idempotence!
                  (|> upper
                      /.upper_cased
-                     (of /.equivalence = upper))
+                     (by /.equivalence = upper))
                  
                  inverse!
                  (|> upper
                      /.lower_cased
                      /.upper_cased
-                     (of /.equivalence = upper))]
+                     (by /.equivalence = upper))]
              (and effectiveness!
                   idempotence!
                   inverse!)))
@@ -922,7 +922,7 @@
                     ... can make text replacement work improperly.
                     ... Because of that, I restrict the charset.
                     normal_character_gen (is (Random Character)
-                                             (of ! each (|>> (natural.% 128) (natural.max 1)) random.natural))]
+                                             (by ! each (|>> (natural.% 128) (natural.max 1)) random.natural))]
               sep1 (random.text normal_character_gen 1)
               sep2 (random.text normal_character_gen 1)
               .let [part_gen (|> (random.text normal_character_gen sizeP)
diff --git a/stdlib/source/test/lux/data/text/buffer.lux b/stdlib/source/test/lux/data/text/buffer.lux
index 844b066859..239ccf6724 100644
--- a/stdlib/source/test/lux/data/text/buffer.lux
+++ b/stdlib/source/test/lux/data/text/buffer.lux
@@ -21,7 +21,7 @@
 (the part
   (Random Text)
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)]
+    [size (by ! each (|>> (n.% 10) ++) random.natural)]
     (random.alphabetic size)))
 
 (the .public test
diff --git a/stdlib/source/test/lux/data/text/encoding.lux b/stdlib/source/test/lux/data/text/encoding.lux
index 8f3e86855e..b73a9804de 100644
--- a/stdlib/source/test/lux/data/text/encoding.lux
+++ b/stdlib/source/test/lux/data/text/encoding.lux
@@ -218,7 +218,7 @@
            (Random /.Encoding)
            (let [options (list.size ..all_encodings)]
              (do [! random.monad]
-               [choice (of ! each (n.% options) random.natural)]
+               [choice (by ! each (n.% options) random.natural)]
                (in (maybe.trusted (list.item choice ..all_encodings))))))
 
          (the .public test
diff --git a/stdlib/source/test/lux/data/text/escape.lux b/stdlib/source/test/lux/data/text/escape.lux
index 3fb7c15964..a12eaac384 100644
--- a/stdlib/source/test/lux/data/text/escape.lux
+++ b/stdlib/source/test/lux/data/text/escape.lux
@@ -39,7 +39,7 @@
 (the (range max min)
   (-> Character Character (Random Character))
   (let [range (n.- min max)]
-    (of random.monad each
+    (by random.monad each
         (|>> (n.% range) (n.+ min))
         random.natural)))
 
@@ -125,7 +125,7 @@
                    (text.= expected (/.escaped expected))))))
            (do [! random.monad]
              [dummy (|> (random.character unicode.character)
-                        (of ! each text.of_character))]
+                        (by ! each text.of_character))]
              (_.coverage [/.dangling_escape]
                (when (/.un_escaped (%.message (/.escaped dummy) "\"))
                  {try.#Success _}
@@ -136,7 +136,7 @@
            (do [! random.monad]
              [dummy (|> (random.character unicode.character)
                         (random.only (|>> (set.member? ..valid_sigils) not))
-                        (of ! each text.of_character))]
+                        (by ! each text.of_character))]
              (_.coverage [/.invalid_escape]
                (when (/.un_escaped (%.message "\" dummy))
                  {try.#Success _}
@@ -146,10 +146,10 @@
                  (exception.is? /.invalid_escape error))))
            (do [! random.monad]
              [too_short (|> (random.character unicode.character)
-                            (of ! each (n.% (hex "1000"))))
+                            (by ! each (n.% (hex "1000"))))
               code (|> (random.unicode 4)
                        (random.only (function (_ code)
-                                      (when (of n.hex projection code)
+                                      (when (by n.hex projection code)
                                         {try.#Failure error} true
                                         {try.#Success _} false))))]
              (_.coverage [/.invalid_unicode_escape]
@@ -160,7 +160,7 @@
 
                                  {try.#Failure error}
                                  (exception.is? /.invalid_unicode_escape error))]]
-                 (and (!invalid (of n.hex injection too_short))
+                 (and (!invalid (by n.hex injection too_short))
                       (!invalid code)))))
            (_.coverage [/.literal]
              (expansion.let [ (..static_sample)]
diff --git a/stdlib/source/test/lux/data/text/unicode/block.lux b/stdlib/source/test/lux/data/text/unicode/block.lux
index 853efb2af3..dcdfee9f75 100644
--- a/stdlib/source/test/lux/data/text/unicode/block.lux
+++ b/stdlib/source/test/lux/data/text/unicode/block.lux
@@ -22,6 +22,7 @@
     [number (.only hex)
      ["n" natural]]]
    [meta
+    ["[0]" static]
     [macro
      ["[0]" template]
      ["[0]" expansion]]]
@@ -33,8 +34,8 @@
 (the .public random
   (Random /.Block)
   (do [! random.monad]
-    [start (of ! each (n.% 1,000,000) random.natural)
-     additional (of ! each (n.% 1,000,000) random.natural)]
+    [start (by ! each (n.% 1,000,000) random.natural)
+     additional (by ! each (n.% 1,000,000) random.natural)]
     (in (/.block start additional))))
 
 (expansion.let [ (these [blocks/0
@@ -181,18 +182,19 @@
                  [.let [top_start (hex "AC00")
                         top_end (hex "D7AF")
                         end_range (n.- top_start top_end)]
-                  start (of ! each (|>> (n.% top_start) ++) random.natural)
-                  end (of ! each (|>> (n.% end_range) (n.+ top_start)) random.natural)
+                  start (by ! each (|>> (n.% top_start) ++) random.natural)
+                  end (by ! each (|>> (n.% end_range) (n.+ top_start)) random.natural)
                   .let [additional (n.- start end)
                         sample (/.block start additional)
                         size (/.size sample)]
-                  inside (of ! each
+                  inside (by ! each
                              (|>> (n.% size)
                                   (n.+ (/.start sample)))
                              random.natural)]
                  (`` (all _.and
-                          (_.for [/.equivalence]
-                                 (equivalenceT.spec /.equivalence ..random))
+                          (_.for [/.equivalence /.=]
+                                 (static.when (same? /.equivalence /.=)
+                                   (equivalenceT.spec /.equivalence ..random)))
                           (_.for [/.hash]
                                  (hashT.spec /.hash ..random))
                           (_.for [/.monoid]
diff --git a/stdlib/source/test/lux/data/text/unicode/set.lux b/stdlib/source/test/lux/data/text/unicode/set.lux
index 32e4545f4d..19fece09b1 100644
--- a/stdlib/source/test/lux/data/text/unicode/set.lux
+++ b/stdlib/source/test/lux/data/text/unicode/set.lux
@@ -16,6 +16,7 @@
     [number
      ["n" natural]]]
    [meta
+    ["[0]" static]
     [macro
      ["[0]" template]]]
    [test
@@ -41,7 +42,7 @@
       (_.for [/.Set])
       (do [! random.monad]
         [block //block.random
-         inside (of ! each
+         inside (by ! each
                     (|>> (n.% (block.size block))
                          (n.+ (block.start block)))
                     random.natural)
@@ -50,8 +51,9 @@
          .let [equivalence (product.equivalence n.equivalence
                                                 n.equivalence)]]
         (`` (all _.and
-                 (_.for [/.equivalence]
-                        (equivalenceT.spec /.equivalence ..random))
+                 (_.for [/.equivalence /.=]
+                        (static.when (same? /.equivalence /.=)
+                          (equivalenceT.spec /.equivalence ..random)))
                  
                  (_.coverage [/.set]
                    (and (n.= (block.start left)
diff --git a/stdlib/source/test/lux/documentation.lux b/stdlib/source/test/lux/documentation.lux
index 92c7a3f73e..b3be0f7568 100644
--- a/stdlib/source/test/lux/documentation.lux
+++ b/stdlib/source/test/lux/documentation.lux
@@ -40,7 +40,7 @@
 
 (the description
   (syntax.macro (_ [])
-    (of meta.monad each
+    (by meta.monad each
         (|>> %.natural code.text list)
         meta.seed)))
 
diff --git a/stdlib/source/test/lux/documentation/remember.lux b/stdlib/source/test/lux/documentation/remember.lux
index 23c98cef01..9d9b7f0979 100644
--- a/stdlib/source/test/lux/documentation/remember.lux
+++ b/stdlib/source/test/lux/documentation/remember.lux
@@ -34,7 +34,7 @@
  [\\library
   ["[0]" /]])
 
-(the deadline (Random Date) (of random.functor each instant.date instant.random))
+(the deadline (Random Date) (by random.functor each instant.date instant.random))
 (the message (Random Text) (random#each bit.as_text random.bit))
 (the focus (Random Code) (random#each code.bit random.bit))
 
diff --git a/stdlib/source/test/lux/ffi.js.lux b/stdlib/source/test/lux/ffi.js.lux
index 3593d3028e..67e117ebad 100644
--- a/stdlib/source/test/lux/ffi.js.lux
+++ b/stdlib/source/test/lux/ffi.js.lux
@@ -58,9 +58,9 @@
   Test
   (do [! random.monad]
     [boolean random.bit
-     number (of ! each (|>> (natural.% 100) natural.decimal) random.natural)
+     number (by ! each (|>> (natural.% 100) natural.decimal) random.natural)
      string (random.ascii 5)
-     function (of ! each (function (_ shift)
+     function (by ! each (function (_ shift)
                            (is (-> Natural Natural)
                                (natural.+ shift)))
                   random.natural)
diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux
index 377f9505a6..9feef00283 100644
--- a/stdlib/source/test/lux/ffi.jvm.lux
+++ b/stdlib/source/test/lux/ffi.jvm.lux
@@ -91,13 +91,13 @@
 (the for_conversions
   Test
   (do [! random.monad]
-    [long (of ! each (|>> /.as_long) random.integer)
-     integer (of ! each (|>> /.as_int) random.integer)
-     byte (of ! each (|>> /.as_byte) random.integer)
-     short (of ! each (|>> /.as_short) random.integer)
+    [long (by ! each (|>> /.as_long) random.integer)
+     integer (by ! each (|>> /.as_int) random.integer)
+     byte (by ! each (|>> /.as_byte) random.integer)
+     short (by ! each (|>> /.as_short) random.integer)
      float (|> random.decimal
                (random.only (|>> d.not_a_number? not))
-               (of ! each (|>> /.as_float)))]
+               (by ! each (|>> /.as_float)))]
     (`` (all _.and
              (,, (template.with [ <=>  ]
                    [(_.coverage [ ]
@@ -126,9 +126,9 @@
 (the for_arrays
   Test
   (do [! random.monad]
-    [size (|> random.natural (of ! each (|>> (n.% 100) (n.max 1))))
-     idx (|> random.natural (of ! each (n.% size)))
-     value (of ! each (|>> /.as_long) random.integer)]
+    [size (|> random.natural (by ! each (|>> (n.% 100) (n.max 1))))
+     idx (|> random.natural (by ! each (n.% size)))
+     value (by ! each (|>> /.as_long) random.integer)]
     (all _.and
          (_.coverage [/.array /.length]
            (|> size
@@ -152,21 +152,21 @@
 (the for_miscellaneous
   Test
   (`` (do [! random.monad]
-        [sample (of ! each (|>> (as java/lang/Object))
+        [sample (by ! each (|>> (as java/lang/Object))
                     (random.ascii 1))
-         boolean (of ! each (|>> /.as_boolean) random.bit)
-         byte (of ! each (|>> /.as_byte) random.integer)
-         short (of ! each (|>> /.as_short) random.integer)
-         integer (of ! each (|>> /.as_int) random.integer)
-         long (of ! each (|>> /.as_long) random.integer)
+         boolean (by ! each (|>> /.as_boolean) random.bit)
+         byte (by ! each (|>> /.as_byte) random.integer)
+         short (by ! each (|>> /.as_short) random.integer)
+         integer (by ! each (|>> /.as_int) random.integer)
+         long (by ! each (|>> /.as_long) random.integer)
          float (|> random.decimal
                    (random.only (|>> d.not_a_number? not))
-                   (of ! each (|>> /.as_float)))
+                   (by ! each (|>> /.as_float)))
          double (|> random.decimal
                     (random.only (|>> d.not_a_number? not))
-                    (of ! each (|>> /.as_double)))
-         character (of ! each (|>> /.as_int /.int_to_char) random.integer)
-         string (of ! each (|>> /.as_string)
+                    (by ! each (|>> /.as_double)))
+         character (by ! each (|>> /.as_int /.int_to_char) random.integer)
+         string (by ! each (|>> /.as_string)
                     (random.ascii 1))
 
          bit/0 random.bit]
@@ -621,7 +621,7 @@
                   (/.of_long (test/TestInterface4::actual4 [(/.as_long left) (/.as_long right)] object_8))))]
 
      .let [random_long (is (Random java/lang/Long)
-                           (of ! each (|>> /.as_long)
+                           (by ! each (|>> /.as_long)
                                random.integer))]
      dummy/0 random_long
      dummy/1 random_long
diff --git a/stdlib/source/test/lux/ffi/export.jvm.lux b/stdlib/source/test/lux/ffi/export.jvm.lux
index 14dc667ca2..77aa2c7631 100644
--- a/stdlib/source/test/lux/ffi/export.jvm.lux
+++ b/stdlib/source/test/lux/ffi/export.jvm.lux
@@ -132,8 +132,8 @@
           (<| (_.covering /._)
               (do [! random.monad]
                 [(,, (template.with [  ]
-                       [(,, (template.symbol [left_ ])) (of ! each (|>> ) )
-                        (,, (template.symbol [right_ ])) (of ! each (|>> ) )]
+                       [(,, (template.symbol [left_ ])) (by ! each (|>> ) )
+                        (,, (template.symbol [right_ ])) (by ! each (|>> ) )]
 
                        [boolean //.as_boolean random.bit]
                        [byte //.as_byte ..tiny_integer]
diff --git a/stdlib/source/test/lux/math/arithmetic/fixed_point.lux b/stdlib/source/test/lux/math/arithmetic/fixed_point.lux
index b8706d3075..5fd2d08ef3 100644
--- a/stdlib/source/test/lux/math/arithmetic/fixed_point.lux
+++ b/stdlib/source/test/lux/math/arithmetic/fixed_point.lux
@@ -34,7 +34,7 @@
     (-> (/.Point @)
         (Random (/.Fixed @))))
   (do [! random.monad]
-    [units (of ! each (i.% +1,000) random.integer)
+    [units (by ! each (i.% +1,000) random.integer)
      sub_units random.revolution]
     (in (/.fixed @ units sub_units))))
 
@@ -43,7 +43,7 @@
   (<| (_.covering /._)
       (do [! random.monad]
         [candidate_point random.natural
-         expected_point (of ! each (n.% (++ /.maximum)) random.natural)
+         expected_point (by ! each (n.% (++ /.maximum)) random.natural)
          .let [@ (try.trusted (/.point expected_point))]
          expected (..random @)
          parameter (..random @)
diff --git a/stdlib/source/test/lux/math/arithmetic/modular.lux b/stdlib/source/test/lux/math/arithmetic/modular.lux
index 6f0f26d9ff..f620c81d00 100644
--- a/stdlib/source/test/lux/math/arithmetic/modular.lux
+++ b/stdlib/source/test/lux/math/arithmetic/modular.lux
@@ -43,7 +43,7 @@
   (for_any (_ %)
     (-> (//.Modulus %)
         (Random (/.Mod %))))
-  (of random.monad each
+  (by random.monad each
       (/.modular modulus)
       random.integer))
 
@@ -77,8 +77,8 @@
 
                  (_.coverage [/.incorrect_modulus]
                    (when (|> param
-                             (of (/.format param::%) injection)
-                             (of (/.format subject::%) projection))
+                             (by (/.format param::%) injection)
+                             (by (/.format subject::%) projection))
                      {try.#Failure error}
                      (exception.is? /.incorrect_modulus error)
                      
diff --git a/stdlib/source/test/lux/math/geometry/circle.lux b/stdlib/source/test/lux/math/geometry/circle.lux
index 4394872ff1..b779f7ccb2 100644
--- a/stdlib/source/test/lux/math/geometry/circle.lux
+++ b/stdlib/source/test/lux/math/geometry/circle.lux
@@ -30,7 +30,7 @@
     (|> normal
         forward
         backward
-        (of (d.approximately ..margin_of_error) = normal))))
+        (by (d.approximately ..margin_of_error) = normal))))
 
 (the .public test
   Test
@@ -38,7 +38,7 @@
       (all _.and
            (do [! random.monad]
              [.let [~= (d.approximately ..margin_of_error)]
-              angle (|> random.unit_decimal (of ! each (d.* /.tau)))]
+              angle (|> random.unit_decimal (by ! each (d.* /.tau)))]
              (`` (all _.and
                       (,, (template.with [,short ,arc_short
                                           ,long ,arc_long]
@@ -77,8 +77,8 @@
                             /.pi))
                       )))
            (do [! random.monad]
-             [x (of ! each (|>> (d.* +10.0) d.abs) random.unit_decimal)
-              y (of ! each (|>> (d.* +10.0) d.abs) random.unit_decimal)]
+             [x (by ! each (|>> (d.* +10.0) d.abs) random.unit_decimal)
+              y (by ! each (|>> (d.* +10.0) d.abs) random.unit_decimal)]
              (_.coverage [/.hypotenuse]
                (let [h (/.hypotenuse x y)]
                  (and (d.>= x h)
@@ -86,8 +86,8 @@
            (do [! random.monad]
              [.let [~= (d.approximately ..margin_of_error)
                     tau/4 (d./ +4.0 /.tau)]
-              x (of ! each (d.* tau/4) random.unit_decimal)
-              y (of ! each (d.* tau/4) random.unit_decimal)]
+              x (by ! each (d.* tau/4) random.unit_decimal)
+              y (by ! each (d.* tau/4) random.unit_decimal)]
              (_.coverage [/.atan_2
                           /.arc_tangent_2]
                (and (let [expected (/.atan_2 x y)
@@ -105,7 +105,7 @@
                (`` (all _.and
                         (,, (template.with [,factor ,unit]
                               [(_.coverage [,unit]
-                                 (of (d.approximately ..margin_of_error) =  /.tau (d.* ,factor ,unit)))]
+                                 (by (d.approximately ..margin_of_error) =  /.tau (d.* ,factor ,unit)))]
 
                               [+1.0 /.turn]
                               [/.tau /.radian]
diff --git a/stdlib/source/test/lux/math/geometry/hyperbola.lux b/stdlib/source/test/lux/math/geometry/hyperbola.lux
index c3df919bb2..81e20b93e7 100644
--- a/stdlib/source/test/lux/math/geometry/hyperbola.lux
+++ b/stdlib/source/test/lux/math/geometry/hyperbola.lux
@@ -28,9 +28,9 @@
   (<| (_.covering /._)
       (do [! random.monad]
         [.let [~= (d.approximately ..margin_of_error)]
-         angle (of ! each (d.* circle.tau) random.unit_decimal)
-         sample (of ! each d.abs random.unit_decimal)
-         big (of ! each (d.* +1,000,000,000.00) random.unit_decimal)]
+         angle (by ! each (d.* circle.tau) random.unit_decimal)
+         sample (by ! each d.abs random.unit_decimal)
+         big (by ! each (d.* +1,000,000,000.00) random.unit_decimal)]
         (template.let [(odd! ,function ,alias)
                        [(_.coverage [,function
                                      ,alias]
diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux
index 7deca541d7..25f8a8eabc 100644
--- a/stdlib/source/test/lux/math/logic/fuzzy.lux
+++ b/stdlib/source/test/lux/math/logic/fuzzy.lux
@@ -43,9 +43,9 @@
   (do [! random.monad]
     [sample random.revolution
      
-     threshold_0 (of ! each (r.% .5)
+     threshold_0 (by ! each (r.% .5)
                      random.revolution)
-     threshold_1 (of ! each (|>> (r.% .5) (r.+ .5))
+     threshold_1 (by ! each (|>> (r.% .5) (r.+ .5))
                      random.revolution)
 
      .let [bottom (r.min threshold_0 threshold_1)
@@ -93,7 +93,7 @@
      [bottom middle_bottom middle_top top]
      (|> random.revolution
          (random.set r.hash 4)
-         (of ! each (|>> set.list (list.sorted r.<)))
+         (by ! each (|>> set.list (list.sorted r.<)))
          (random.one (function (_ thresholds)
                        (when thresholds
                          (list threshold_0 threshold_1 threshold_2 threshold_3)
@@ -177,7 +177,7 @@
          [bottom middle_bottom middle_top top]
          (|> random.revolution
              (random.set r.hash 4)
-             (of ! each (|>> set.list (list.sorted r.<)))
+             (by ! each (|>> set.list (list.sorted r.<)))
              (random.one (function (_ thresholds)
                            (when thresholds
                              (list threshold_0 threshold_1 threshold_2 threshold_3)
diff --git a/stdlib/source/test/lux/math/modulus.lux b/stdlib/source/test/lux/math/modulus.lux
index 10af438d5d..93daf53fe9 100644
--- a/stdlib/source/test/lux/math/modulus.lux
+++ b/stdlib/source/test/lux/math/modulus.lux
@@ -36,7 +36,7 @@
     (-> Integer
         (Random (/.Modulus %))))
   (|> random.integer
-      (of random.monad each (i.% range))
+      (by random.monad each (i.% range))
       (random.one (|>> /.modulus try.maybe))))
 
 (the .public test
diff --git a/stdlib/source/test/lux/math/number/complex.lux b/stdlib/source/test/lux/math/number/complex.lux
index 6e02f4f0ab..a3ac24ba7c 100644
--- a/stdlib/source/test/lux/math/number/complex.lux
+++ b/stdlib/source/test/lux/math/number/complex.lux
@@ -48,7 +48,7 @@
 
 (the angle
   (Random /.Complex)
-  (of random.monad each
+  (by random.monad each
       (|>> d.abs
            (d.* circle.tau)
            (/.polar +1.0))
@@ -68,7 +68,7 @@
                   (and (d.= real (its /.#real r+i))
                        (d.= +0.0 (its /.#imaginary r+i))))))
          (_.coverage [/.approximately]
-           (of (/.approximately ..margin_of_error) =
+           (by (/.approximately ..margin_of_error) =
                (/.complex real imaginary)
                (/.complex real imaginary)))
          (_.coverage [/.not_a_number?]
@@ -126,7 +126,7 @@
          (_.coverage [/.argument]
            (let [sample (/.complex real imaginary)]
              (or (/.= /.zero sample)
-                 (of (/.approximately ..margin_of_error) =
+                 (by (/.approximately ..margin_of_error) =
                      sample
                      (/.*' (/.abs sample)
                            (/.exp (/.* /.i (/.complex (/.argument sample)))))))))
@@ -156,27 +156,27 @@
                                              (its /.#imaginary x))))))
 
                  inverse!
-                 (and (|> x (/.+ y) (/.- y) (of (/.approximately ..margin_of_error) = x))
-                      (|> x (/.- y) (/.+ y) (of (/.approximately ..margin_of_error) = x)))]
+                 (and (|> x (/.+ y) (/.- y) (by (/.approximately ..margin_of_error) = x))
+                      (|> x (/.- y) (/.+ y) (by (/.approximately ..margin_of_error) = x)))]
              (and normal!
                   inverse!)))
          (_.coverage [/.* /./]
            (|> x
                (/.* y)
                (/./ y)
-               (of (/.approximately ..margin_of_error) = x)))
+               (by (/.approximately ..margin_of_error) = x)))
          (_.coverage [/.*' /./']
            (|> x
                (/.*' factor)
                (/./' factor)
-               (of (/.approximately ..margin_of_error) = x)))
+               (by (/.approximately ..margin_of_error) = x)))
          (_.coverage [/.%]
            (let [rem (/.% y x)
                  quotient (|> x (/.- rem) (/./ y))
                  floored (|> quotient
                              (revised /.#real d.floor)
                              (revised /.#imaginary d.floor))]
-             (of (/.approximately +0.000000000001) =
+             (by (/.approximately +0.000000000001) =
                  x
                  (|> quotient (/.* y) (/.+ rem)))))
          )))
@@ -194,10 +194,10 @@
                        (its /.#imaginary cx)))))
          (_.coverage [/.reciprocal]
            (let [reciprocal!
-                 (|> x (/.* (/.reciprocal x)) (of (/.approximately ..margin_of_error) = /.+one))
+                 (|> x (/.* (/.reciprocal x)) (by (/.approximately ..margin_of_error) = /.+one))
                  
                  own_inverse!
-                 (|> x /.reciprocal /.reciprocal (of (/.approximately ..margin_of_error) = x))]
+                 (|> x /.reciprocal /.reciprocal (by (/.approximately ..margin_of_error) = x))]
              (and reciprocal!
                   own_inverse!)))
          (_.coverage [/.signum]
@@ -227,7 +227,7 @@
     (|> normal
         forward
         backward
-        (of (/.approximately ..margin_of_error) = normal))))
+        (by (/.approximately ..margin_of_error) = normal))))
 
 (the trigonometry
   Test
@@ -248,15 +248,15 @@
     [angle ..angle]
     (all _.and
          (_.coverage [/.sinh]
-           (of (/.approximately ..margin_of_error) =
+           (by (/.approximately ..margin_of_error) =
                (|> angle (/.* /.i) /.sin (/.* /.i) (/.* /.-one))
                (/.sinh angle)))
          (_.coverage [/.cosh]
-           (of (/.approximately ..margin_of_error) =
+           (by (/.approximately ..margin_of_error) =
                (|> angle (/.* /.i) /.cos)
                (/.cosh angle)))
          (_.coverage [/.tanh]
-           (of (/.approximately ..margin_of_error) =
+           (by (/.approximately ..margin_of_error) =
                (|> angle (/.* /.i) /.tan (/.* /.i) (/.* /.-one))
                (/.tanh angle)))
          )))
@@ -270,29 +270,29 @@
            (|> it
                /.root_2
                (/.pow (/.complex +2.0))
-               (of (/.approximately ..margin_of_error) = it)))
+               (by (/.approximately ..margin_of_error) = it)))
          (_.coverage [/.pow']
            (|> it
                (/.pow' +0.5)
                (/.pow' +2.0)
-               (of (/.approximately ..margin_of_error) = it)))
+               (by (/.approximately ..margin_of_error) = it)))
          (_.coverage [/.log /.exp]
            (|> it
                /.log
                /.exp
-               (of (/.approximately ..margin_of_error) = it)))
+               (by (/.approximately ..margin_of_error) = it)))
          )))
 
 (the root
   Test
   (do [! random.monad]
     [sample ..random
-     degree (|> random.natural (of ! each (|>> (n.max 1) (n.% 5))))]
+     degree (|> random.natural (by ! each (|>> (n.max 1) (n.% 5))))]
     (_.coverage [/.roots]
       (|> sample
           (/.roots degree)
           (list#each (/.pow' (|> degree .integer i.decimal)))
-          (list.every? (of (/.approximately ..margin_of_error) = sample))))))
+          (list.every? (by (/.approximately ..margin_of_error) = sample))))))
 
 (the polar
   Test
@@ -305,7 +305,7 @@
            (and (d.>= (d.* -1.0 circle.pi) (/.phase it))
                 (d.<= circle.pi (/.phase it))))
          (_.coverage [/.polar]
-           (of (/.approximately ..margin_of_error) =
+           (by (/.approximately ..margin_of_error) =
                it
                (/.polar (/.magnitude it) (/.phase it))))
          )))
diff --git a/stdlib/source/test/lux/math/number/decimal.lux b/stdlib/source/test/lux/math/number/decimal.lux
index e29827c1dd..1e5e99bcdf 100644
--- a/stdlib/source/test/lux/math/number/decimal.lux
+++ b/stdlib/source/test/lux/math/number/decimal.lux
@@ -42,7 +42,7 @@
 (the (positive range)
   (-> Natural
       (Random Decimal))
-  (of random.monad each
+  (by random.monad each
       (|>> (n.% (++ range))
            n.decimal
            (/./ (n.decimal range)))
@@ -82,7 +82,7 @@
   Test
   (do [! random.monad]
     [sample (..random 1,000,000)
-     shift (of ! each /.abs (..random 1,000,000))]
+     shift (by ! each /.abs (..random 1,000,000))]
     (all _.and
          (_.coverage [/.negative?]
            (bit.= (/.negative? sample)
@@ -94,8 +94,8 @@
            (bit.= (/.zero? sample)
                   (/.= +0.0 sample)))
          (_.coverage [/.approximately]
-           (and (of (/.approximately /.smallest) = sample sample)
-                (of (/.approximately (/.+ +1.0 shift)) = sample (/.+ shift sample))))
+           (and (by (/.approximately /.smallest) = sample sample)
+                (by (/.approximately (/.+ +1.0 shift)) = sample (/.+ shift sample))))
          (_.coverage [/.number?]
            (and (not (/.number? /.not_a_number))
                 (not (/.number? /.positive_infinity))
@@ -107,15 +107,15 @@
   Test
   (all _.and
        (do [! random.monad]
-         [expected (of ! each (n.% 1,000,000) random.natural)]
+         [expected (by ! each (n.% 1,000,000) random.natural)]
          (_.coverage [/.natural]
            (|> expected n.decimal /.natural (n.= expected))))
        (do [! random.monad]
-         [expected (of ! each (i.% +1,000,000) random.integer)]
+         [expected (by ! each (i.% +1,000,000) random.integer)]
          (_.coverage [/.integer]
            (|> expected i.decimal /.integer (i.= expected))))
        (do [! random.monad]
-         [expected (of ! each (|>> (i64.left_shifted 52) .revolution)
+         [expected (by ! each (|>> (i64.left_shifted 52) .revolution)
                        random.natural)]
          (_.coverage [/.revolution]
            (|> expected r.decimal /.revolution (r.= expected))))
@@ -187,7 +187,7 @@
   Test
   (all _.and
        (do [! random.monad]
-         [sample (|> random.unit_decimal (of ! each (/.* +1000.0)))]
+         [sample (|> random.unit_decimal (by ! each (/.* +1000.0)))]
          (all _.and
               (_.coverage [/.ceil]
                 (let [ceil'd (/.ceil sample)]
@@ -208,20 +208,20 @@
                   (|> sample
                       /.root_2
                       (/.pow +2.0)
-                      (of (/.approximately ..margin_of_error) = sample))))
+                      (by (/.approximately ..margin_of_error) = sample))))
               (_.coverage [/.root_3]
                 (|> sample
                     /.root_3
                     (/.pow +3.0)
-                    (of (/.approximately ..margin_of_error) = sample)))
+                    (by (/.approximately ..margin_of_error) = sample)))
               ))
        (do [! random.monad]
          [.let [~= (/.approximately ..margin_of_error)]
-          sample (of ! each (/.* +10.0) random.unit_decimal)
-          power (of ! each (|>> (n.% 10) ++ n.decimal) random.natural)]
+          sample (by ! each (/.* +10.0) random.unit_decimal)
+          power (by ! each (|>> (n.% 10) ++ n.decimal) random.natural)]
          (all _.and
               (_.coverage [/.exp /.log]
-                (|> sample /.exp /.log (of (/.approximately +0.000000000000001) = sample)))
+                (|> sample /.exp /.log (by (/.approximately +0.000000000000001) = sample)))
               (_.coverage [/.e]
                 (~= +1.0 (/.log /.e)))
               (_.coverage [/.pow /.log_by]
@@ -232,7 +232,7 @@
                       (~= power))))
               ))
        (do [! random.monad]
-         [of (of ! each (|>> (n.% 10) ++) random.natural)]
+         [of (by ! each (|>> (n.% 10) ++) random.natural)]
          (_.coverage [/.factorial]
            (and (n.= 1 (/.factorial 0))
                 (|> (/.factorial of) (n.% of) (n.= 0)))))
@@ -280,7 +280,7 @@
                       (_.coverage [/.%]
                         (let [rem (/.% left right)
                               div (|> right (/.- rem) (/./ left))]
-                          (of (/.approximately +0.0000000001) =
+                          (by (/.approximately +0.0000000001) =
                               right
                               (|> div (/.* left) (/.+ rem)))))
                       (_.coverage [/./%]
@@ -360,14 +360,14 @@
                                change_of_scale!
                                (|> expected
                                    
-                                   (of (/.approximately threshold) = expected)
+                                   (by (/.approximately threshold) = expected)
                                    not)
 
                                iso_morphism!
                                (|> expected
                                    
                                    
-                                   (of (/.approximately threshold) = expected))]]
+                                   (by (/.approximately threshold) = expected))]]
                         (_.coverage [ ]
                           (and change_of_scale!
                                iso_morphism!)))]
diff --git a/stdlib/source/test/lux/math/number/fraction.lux b/stdlib/source/test/lux/math/number/fraction.lux
index c9b686f706..1790c2d90d 100644
--- a/stdlib/source/test/lux/math/number/fraction.lux
+++ b/stdlib/source/test/lux/math/number/fraction.lux
@@ -74,14 +74,14 @@
                             .let [change_of_scale!
                                   (|> expected
                                       
-                                      (of (/.approximately threshold) = expected)
+                                      (by (/.approximately threshold) = expected)
                                       not)
 
                                   iso_morphism!
                                   (|> expected
                                       
                                       
-                                      (of (/.approximately threshold) = expected))]]
+                                      (by (/.approximately threshold) = expected))]]
                            (_.coverage [ ]
                              (and change_of_scale!
                                   iso_morphism!)))
@@ -107,7 +107,7 @@
                       (static.when (same? /.equivalence /.=)
                         (equivalenceT.spec /.equivalence ..random)))
                (_.for [/.order /.<]
-                      (static.when (same? (of /.order <) /.<)
+                      (static.when (same? (by /.order <) /.<)
                         (orderT.spec /.order ..random)))
                (,, (template.with [ ]
                      [(_.for [ ]
@@ -125,7 +125,7 @@
                  (and (alias? /.Fraction /.Number)
                       (alias? /.Fraction /.Q+)))
                (_.coverage [/.as_text]
-                 (alias? (of /.format injection)
+                 (alias? (by /.format injection)
                          /.as_text))
                (_.coverage [/.zero]
                  (and (/.= expected (/.+ /.zero expected))
diff --git a/stdlib/source/test/lux/math/number/i08.lux b/stdlib/source/test/lux/math/number/i08.lux
index e1ce7485c9..e6281811f6 100644
--- a/stdlib/source/test/lux/math/number/i08.lux
+++ b/stdlib/source/test/lux/math/number/i08.lux
@@ -22,7 +22,7 @@
 
 (the .public random
   (Random /.I08)
-  (of random.functor each /.i08 random.i64))
+  (by random.functor each /.i08 random.i64))
 
 (the .public test
   Test
@@ -33,7 +33,7 @@
                          //i64.mask
                          .integer
                          ++)]
-         expected (of ! each (i.% limit) random.integer)]
+         expected (by ! each (i.% limit) random.integer)]
         (all _.and
              (_.for [/.equivalence /.=]
                     (static.when (same? /.equivalence /.=)
@@ -43,5 +43,5 @@
                (alias? /.I08 /.Number))
              (_.coverage [/.i08 /.i64 /.width]
                (let [actual (|> expected .i64 /.i08 /.i64)]
-                 (of //i64.equivalence = expected actual)))
+                 (by //i64.equivalence = expected actual)))
              ))))
diff --git a/stdlib/source/test/lux/math/number/i16.lux b/stdlib/source/test/lux/math/number/i16.lux
index abe6847128..132163fe44 100644
--- a/stdlib/source/test/lux/math/number/i16.lux
+++ b/stdlib/source/test/lux/math/number/i16.lux
@@ -22,7 +22,7 @@
 
 (the .public random
   (Random /.I16)
-  (of random.functor each /.i16 random.i64))
+  (by random.functor each /.i16 random.i64))
 
 (the .public test
   Test
@@ -33,7 +33,7 @@
                          //i64.mask
                          .integer
                          ++)]
-         expected (of ! each (i.% limit) random.integer)]
+         expected (by ! each (i.% limit) random.integer)]
         (all _.and
              (_.for [/.equivalence /.=]
                     (static.when (same? /.equivalence /.=)
@@ -43,5 +43,5 @@
                (alias? /.I16 /.Number))
              (_.coverage [/.i16 /.i64 /.width]
                (let [actual (|> expected .i64 /.i16 /.i64)]
-                 (of //i64.equivalence = expected actual)))
+                 (by //i64.equivalence = expected actual)))
              ))))
diff --git a/stdlib/source/test/lux/math/number/i32.lux b/stdlib/source/test/lux/math/number/i32.lux
index 9bf47e457e..8b09608a56 100644
--- a/stdlib/source/test/lux/math/number/i32.lux
+++ b/stdlib/source/test/lux/math/number/i32.lux
@@ -29,7 +29,7 @@
                          //i64.mask
                          .integer
                          ++)]
-         expected (of ! each (i.% limit) random.integer)]
+         expected (by ! each (i.% limit) random.integer)]
         (all _.and
              (_.for [/.equivalence /.=]
                     (static.when (same? /.equivalence /.=)
@@ -39,5 +39,5 @@
                (alias? /.I32 /.Number))
              (_.coverage [/.i32 /.i64 /.width]
                (let [actual (|> expected .i64 /.i32 /.i64)]
-                 (of //i64.equivalence = expected actual)))
+                 (by //i64.equivalence = expected actual)))
              ))))
diff --git a/stdlib/source/test/lux/math/number/i64.lux b/stdlib/source/test/lux/math/number/i64.lux
index e75d3663a5..43c6f7617d 100644
--- a/stdlib/source/test/lux/math/number/i64.lux
+++ b/stdlib/source/test/lux/math/number/i64.lux
@@ -18,6 +18,8 @@
     ["[0]" bit]]
    [math
     ["[0]" random (.only Random)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -30,7 +32,7 @@
   Test
   (do [! random.monad]
     [pattern random.natural
-     idx (of ! each (n.% /.width) random.natural)]
+     idx (by ! each (n.% /.width) random.natural)]
     (all _.and
          (_.coverage [/.one? /.one]
            (if (/.one? idx pattern)
@@ -56,7 +58,7 @@
     [pattern random.natural]
     (all _.and
          (do !
-           [idx (of ! each (|>> (n.% (-- /.width)) ++) random.natural)]
+           [idx (by ! each (|>> (n.% (-- /.width)) ++) random.natural)]
            (_.coverage [/.left_shifted /.right_shifted]
              (let [nullity!
                    (and (/.= pattern (/.left_shifted 0 pattern))
@@ -82,7 +84,7 @@
   (<| (_.for [/.Mask])
       (do [! random.monad]
         [pattern random.natural
-         idx (of ! each (n.% /.width) random.natural)
+         idx (by ! each (n.% /.width) random.natural)
          signed random.integer]
         (all _.and
              (_.coverage [/.sign]
@@ -106,9 +108,9 @@
                       empty!
                       full!)))
              (do !
-               [size (of ! each (n.% /.width) random.natural)
+               [size (by ! each (n.% /.width) random.natural)
                 .let [spare (n.- size /.width)]
-                offset (of ! each (n.% spare) random.natural)]
+                offset (by ! each (n.% spare) random.natural)]
                (_.coverage [/.region]
                  (when size
                    0 (/.= /.false (/.region offset size))
@@ -130,7 +132,7 @@
   Test
   (_.for [/.Sub]
          (do [! random.monad]
-           [size (of ! each (n.% /.width) random.natural)]
+           [size (by ! each (n.% /.width) random.natural)]
            (when (/.sub size)
              {try.#Failure _}
              (_.coverage [/.sub]
@@ -138,28 +140,29 @@
 
              {try.#Success sub}
              (do [! random.monad]
-               [.let [limit (|> (-- (of sub bits))
+               [.let [limit (|> (-- (by sub bits))
                                 /.mask
                                 .integer
                                 ++)]
-                expected (of ! each (i.% limit) random.integer)
+                expected (by ! each (i.% limit) random.integer)
                 .let [random (is (for_any (_ size)
                                    (-> (-> I64 (I64 size))
                                        (Random (I64 size))))
                                  (function (_ narrow)
-                                   (of random.functor each narrow random.i64)))]]
+                                   (by random.functor each narrow random.i64)))]]
                (all _.and
-                    (equivalenceT.spec (of sub sub_equivalence) (random (of sub narrow)))
+                    (equivalenceT.spec (by sub sub_equivalence) (random (by sub narrow)))
                     (_.coverage [/.sub]
-                      (let [actual (|> expected .i64 (of sub narrow) (of sub wide))]
+                      (let [actual (|> expected .i64 (by sub narrow) (by sub wide))]
                         (/.= expected actual)))
                     ))))))
 
 (the signature
   Test
   (all _.and
-       (_.for [/.equivalence]
-              (equivalenceT.spec /.equivalence random.i64))
+       (_.for [/.equivalence /.=]
+              (static.when (same? /.equivalence /.=)
+                (equivalenceT.spec /.equivalence random.i64)))
        (_.for [/.hash]
               (hashT.spec /.hash random.i64))
        (_.for [/.disjunction]
@@ -174,7 +177,7 @@
       (_.for [.I64])
       (do [! random.monad]
         [pattern random.natural
-         idx (of ! each (n.% /.width) random.natural)
+         idx (by ! each (n.% /.width) random.natural)
 
          left random.natural
          right random.natural]
diff --git a/stdlib/source/test/lux/math/number/integer.lux b/stdlib/source/test/lux/math/number/integer.lux
index 526a304f4a..3c12ec44c5 100644
--- a/stdlib/source/test/lux/math/number/integer.lux
+++ b/stdlib/source/test/lux/math/number/integer.lux
@@ -195,7 +195,7 @@
                   ))
            (do [! random.monad]
              [.let [random (|> random.integer
-                               (of ! each (|>> (/.% +1,000) /.absolute))
+                               (by ! each (|>> (/.% +1,000) /.absolute))
                                (random.only (/.> +0)))]
               left random
               right random]
@@ -236,14 +236,14 @@
                  (and subtraction!
                       inverse!))))
            (do [! random.monad]
-             [expected (of ! each (/.% +1,000,000) random.integer)
+             [expected (by ! each (/.% +1,000,000) random.integer)
               sample random.integer]
              (_.coverage [/.decimal]
                (and (|> expected /.decimal d.integer (/.= expected))
                     (d.number? (/.decimal sample)))))
            (do [! random.monad]
              [pattern random.integer
-              idx (of ! each (n.% i64.width) random.natural)]
+              idx (by ! each (n.% i64.width) random.natural)]
              (_.coverage [/.right_shifted]
                (let [nullity!
                      (/.= pattern (/.right_shifted 0 pattern))
diff --git a/stdlib/source/test/lux/math/number/natural.lux b/stdlib/source/test/lux/math/number/natural.lux
index d532fcea8a..59b7e1129a 100644
--- a/stdlib/source/test/lux/math/number/natural.lux
+++ b/stdlib/source/test/lux/math/number/natural.lux
@@ -62,11 +62,11 @@
                  ))
            (,, (template.with []
                  [(do [! random.monad]
-                    [.let [limit (|> (of /.interval top)
-                                     (of  injection)
+                    [.let [limit (|> (by /.interval top)
+                                     (by  injection)
                                      text.size
                                      ++)]
-                     expected_size (of ! each (/.% limit) random.natural)]
+                     expected_size (by ! each (/.% limit) random.natural)]
                     (_.for [ /.padded]
                            (all _.and
                                 (formatT.spec /.equivalence  random.natural)
@@ -141,7 +141,7 @@
                            (/.= rem (/.% left right)))))
                   ))
            (do [! random.monad]
-             [.let [random (of ! each (|>> (/.% 1,000) ++) random.natural)]
+             [.let [random (by ! each (|>> (/.% 1,000) ++) random.natural)]
               left random
               right random]
              (all _.and
@@ -158,7 +158,7 @@
                            (/.= 0 (/.% right lcm)))))
                   ))
            (do [! random.monad]
-             [expected (of ! each (/.% 1,000,000) random.natural)
+             [expected (by ! each (/.% 1,000,000) random.natural)
               sample random.natural]
              (_.coverage [/.decimal]
                (and (|> expected /.decimal d.natural (/.= expected))
diff --git a/stdlib/source/test/lux/math/number/rational.lux b/stdlib/source/test/lux/math/number/rational.lux
index 1f15662b0c..5bef17ef86 100644
--- a/stdlib/source/test/lux/math/number/rational.lux
+++ b/stdlib/source/test/lux/math/number/rational.lux
@@ -75,14 +75,14 @@
                             .let [change_of_scale!
                                   (|> expected
                                       
-                                      (of (/.approximately threshold) = expected)
+                                      (by (/.approximately threshold) = expected)
                                       not)
 
                                   iso_morphism!
                                   (|> expected
                                       
                                       
-                                      (of (/.approximately threshold) = expected))]]
+                                      (by (/.approximately threshold) = expected))]]
                            (_.coverage [ ]
                              (and change_of_scale!
                                   iso_morphism!)))
@@ -108,7 +108,7 @@
                       (static.when (same? /.equivalence /.=)
                         (equivalenceT.spec /.equivalence ..random)))
                (_.for [/.order /.<]
-                      (static.when (same? (of /.order <) /.<)
+                      (static.when (same? (by /.order <) /.<)
                         (orderT.spec /.order ..random)))
                (,, (template.with [ ]
                      [(_.for [ ]
@@ -126,7 +126,7 @@
                  (and (alias? /.Rational /.Number)
                       (alias? /.Rational /.Q)))
                (_.coverage [/.as_text]
-                 (alias? (of /.format injection)
+                 (alias? (by /.format injection)
                          /.as_text))
                (_.coverage [/.zero]
                  (and (/.= expected (/.+ /.zero expected))
@@ -176,10 +176,10 @@
                       (/.= expected (/.opposite (/.opposite expected)))))
                (_.coverage [/.decimal]
                  (let [margin_of_error +0.000,000,000,000,1]
-                   (and (of (d.approximately margin_of_error) =
+                   (and (by (d.approximately margin_of_error) =
                             (/.decimal (/.whole expected))
                             (d.whole (/.decimal expected)))
-                        (of (d.approximately margin_of_error) =
+                        (by (d.approximately margin_of_error) =
                             (/.decimal (/.partial expected))
                             (d.partial (/.decimal expected))))))
                
diff --git a/stdlib/source/test/lux/math/number/revolution.lux b/stdlib/source/test/lux/math/number/revolution.lux
index c91f30826b..d28ae2f3d3 100644
--- a/stdlib/source/test/lux/math/number/revolution.lux
+++ b/stdlib/source/test/lux/math/number/revolution.lux
@@ -73,10 +73,10 @@
            (_.coverage [/.base_16]
              (same? /.hex /.base_16))
            (_.coverage [/.arithmetic]
-             (and (same? /.+ (of /.arithmetic +))
-                  (same? /.- (of /.arithmetic -))
-                  (same? /.* (of /.arithmetic *))
-                  (same? /./ (of /.arithmetic /))))
+             (and (same? /.+ (by /.arithmetic +))
+                  (same? /.- (by /.arithmetic -))
+                  (same? /.* (by /.arithmetic *))
+                  (same? /./ (by /.arithmetic /))))
            )))
 
 (the .public test
@@ -118,10 +118,10 @@
                         (/.< right (/.* left right)))))
                (do [! random.monad]
                  [.let [dividend (is (Random Revolution)
-                                     (of ! each (i64.and (hex "FFFF"))
+                                     (by ! each (i64.and (hex "FFFF"))
                                          random.revolution))
                         divisor (is (Random Revolution)
-                                    (of ! each (|>> (i64.and (hex "F"))
+                                    (by ! each (|>> (i64.and (hex "F"))
                                                     (i64.or (hex "1"))
                                                     (i64.right_rotated 8)
                                                     .revolution)
@@ -130,14 +130,14 @@
                   divisor/0 divisor
                   divisor/1 (random.only (|>> (/.= divisor/0) not)
                                          divisor)
-                  scale (of ! each (|>> (n.% 10) ++)
+                  scale (by ! each (|>> (n.% 10) ++)
                             random.natural)]
                  (all _.and
                       (_.coverage [/./]
                         (bit.= (/.< divisor/0 divisor/1)
                                (/.> (/./ divisor/0 dividend) (/./ divisor/1 dividend))))
                       (_.coverage [/.%]
-                        (of i64.equivalence =
+                        (by i64.equivalence =
                             (.i64 (n.% (.natural divisor/0) (.natural dividend)))
                             (.i64 (/.% divisor/0 dividend))))
                       (_.coverage [/.up /.down]
@@ -186,7 +186,7 @@
                    (/.= (/.reciprocal sample)
                         (|> sample /.reciprocal .natural /.reciprocal .natural /.reciprocal))))
                (do [! random.monad]
-                 [expected (of ! each (|>> d.abs (d.% +1.0))
+                 [expected (by ! each (|>> d.abs (d.% +1.0))
                                random.unit_decimal)
                   sample random.revolution]
                  (_.coverage [/.decimal]
diff --git a/stdlib/source/test/lux/math/random.lux b/stdlib/source/test/lux/math/random.lux
index 41665e1777..fbe169fb1c 100644
--- a/stdlib/source/test/lux/math/random.lux
+++ b/stdlib/source/test/lux/math/random.lux
@@ -49,7 +49,7 @@
 
 (the injection
   (Injection Random)
-  (of /.monad in))
+  (by /.monad in))
 
 (the (comparison increase,seed)
   (-> /.PCG_32
@@ -68,9 +68,9 @@
         (Random Bit)))
   (do /.monad
     [reference random
-     example (/.only (|>> (of equivalence = reference) not)
+     example (/.only (|>> (by equivalence = reference) not)
                      random)]
-    (in (not (of equivalence = reference example)))))
+    (in (not (by equivalence = reference example)))))
 
 (the .public test
   Test
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux
index 5dbdaa56f3..037f19ae99 100644
--- a/stdlib/source/test/lux/meta.lux
+++ b/stdlib/source/test/lux/meta.lux
@@ -85,12 +85,12 @@
                          .#host            []]]]
     (all _.and
          (_.coverage [/.value]
-           (|> (of /.monad in expected)
+           (|> (by /.monad in expected)
                (/.value expected_lux)
                (!expect (^.multi {try.#Success actual}
                                  (n.= expected actual)))))
          (_.coverage [/.value']
-           (|> (of /.monad in expected)
+           (|> (by /.monad in expected)
                (/.value' expected_lux)
                (!expect (^.multi {try.#Success [actual_lux actual]}
                                  (and (same? expected_lux actual_lux)
@@ -160,7 +160,7 @@
                     (!expect (^.multi {try.#Failure actual_error}
                                       (text.= expected_error actual_error))))))
          (_.coverage [/.either]
-           (and (|> (/.either (of /.monad in expected)
+           (and (|> (/.either (by /.monad in expected)
                               (is (Meta Natural)
                                   (/.failure expected_error)))
                     (/.value expected_lux)
@@ -168,7 +168,7 @@
                                       (n.= expected actual))))
                 (|> (/.either (is (Meta Natural)
                                   (/.failure expected_error))
-                              (of /.monad in expected))
+                              (by /.monad in expected))
                     (/.value expected_lux)
                     (!expect (^.multi {try.#Success actual}
                                       (n.= expected actual))))
@@ -180,8 +180,8 @@
                     (!expect (^.multi {try.#Failure actual_error}
                                       (text.= (location.with location.dummy expected_error)
                                               actual_error))))
-                (|> (/.either (of /.monad in expected)
-                              (of /.monad in dummy))
+                (|> (/.either (by /.monad in expected)
+                              (by /.monad in dummy))
                     (/.value expected_lux)
                     (!expect (^.multi {try.#Success actual}
                                       (n.= expected actual))))
@@ -192,7 +192,7 @@
                     (!expect (^.multi {try.#Success {try.#Failure actual_error}}
                                       (text.= (location.with location.dummy expected_error)
                                               actual_error))))
-                (|> (/.try (of /.monad in expected))
+                (|> (/.try (by /.monad in expected))
                     (/.value expected_lux)
                     (!expect (^.multi {try.#Success {try.#Success actual}}
                                       (same? expected actual))))))
@@ -211,7 +211,7 @@
      version (random.upper_cased 1)
      source_code (random.upper_cased 1)
      expected_current_module (random.upper_cased 1)
-     expected_type (of ! each (function (_ name)
+     expected_type (by ! each (function (_ name)
                                 {.#Nominal name (list)})
                        (random.upper_cased 1))
      expected_seed random.natural
@@ -274,7 +274,7 @@
 
 (the injection
   (Injection Meta)
-  (of /.monad in))
+  (by /.monad in))
 
 (the (comparison init)
   (-> Lux (Comparison Meta))
@@ -301,7 +301,7 @@
                       version (random.upper_cased 1)
                       source_code (random.upper_cased 1)
                       expected_current_module (random.upper_cased 1)
-                      expected_type (of ! each (function (_ name)
+                      expected_type (by ! each (function (_ name)
                                                  {.#Nominal name (list)})
                                         (random.upper_cased 1))
                       expected_seed random.natural
diff --git a/stdlib/source/test/lux/meta/binding.lux b/stdlib/source/test/lux/meta/binding.lux
index 189238c313..1c1ddbedc9 100644
--- a/stdlib/source/test/lux/meta/binding.lux
+++ b/stdlib/source/test/lux/meta/binding.lux
@@ -120,7 +120,7 @@
      expected_macro_module (random.only (|>> (text.= expected_current_module) not)
                                         (random.upper_cased 1))
      expected_short (random.upper_cased 1)
-     expected_type (of ! each (function (_ name)
+     expected_type (by ! each (function (_ name)
                                 {.#Nominal name (list)})
                        (random.upper_cased 1))
      expected_value (random.either (in .the)
@@ -239,7 +239,7 @@
      expected_macro_module (random.only (|>> (text.= expected_current_module) not)
                                         (random.upper_cased 1))
      expected_short (random.upper_cased 1)
-     expected_type (of ! each (function (_ name)
+     expected_type (by ! each (function (_ name)
                                 {.#Nominal name (list)})
                        (random.upper_cased 1))
      expected_value (random.either (in .the)
diff --git a/stdlib/source/test/lux/meta/binding/local.lux b/stdlib/source/test/lux/meta/binding/local.lux
index a0bbae7e8d..4fb8f56ec1 100644
--- a/stdlib/source/test/lux/meta/binding/local.lux
+++ b/stdlib/source/test/lux/meta/binding/local.lux
@@ -33,7 +33,7 @@
         [current_module (random.upper_cased 1)
          [name_0 name_1 name_2 name_3 name_4] (|> (random.upper_cased 1)
                                                   (random.set text.hash 5)
-                                                  (of ! each set.list)
+                                                  (by ! each set.list)
                                                   (random.one (function (_ values)
                                                                 (when values
                                                                   (list name_0 name_1 name_2 name_3 name_4)
@@ -108,25 +108,25 @@
                                         type.equivalence))))]
                  (|> /.all
                      (///.value expected_lux)
-                     (try#each (of equivalence = (list (list [name_3 type_3])
+                     (try#each (by equivalence = (list (list [name_3 type_3])
                                                        (list [name_1 type_1]
                                                              [name_2 type_2]))))
                      (try.else false))))
              (_.coverage [/.type]
                (and (|> (/.type name_0)
                         (///.value expected_lux)
-                        (try#each (of type.equivalence = type_0))
+                        (try#each (by type.equivalence = type_0))
                         (try.else false))
                     (|> (/.type name_1)
                         (///.value expected_lux)
-                        (try#each (of type.equivalence = type_1))
+                        (try#each (by type.equivalence = type_1))
                         (try.else false))
                     (|> (/.type name_2)
                         (///.value expected_lux)
-                        (try#each (of type.equivalence = type_2))
+                        (try#each (by type.equivalence = type_2))
                         (try.else false))
                     (|> (/.type name_3)
                         (///.value expected_lux)
-                        (try#each (of type.equivalence = type_3))
+                        (try#each (by type.equivalence = type_3))
                         (try.else false))))
              ))))
diff --git a/stdlib/source/test/lux/meta/code.lux b/stdlib/source/test/lux/meta/code.lux
index c8f87399b6..2a920cf8af 100644
--- a/stdlib/source/test/lux/meta/code.lux
+++ b/stdlib/source/test/lux/meta/code.lux
@@ -76,7 +76,7 @@
       (_.for [\\projection.Projection])
       (`` (all _.and
                (do [! random.monad]
-                 [expected (of ! each /.bit random.bit)]
+                 [expected (by ! each /.bit random.bit)]
                  (_.coverage [\\projection.value]
                    (and (|> (\\projection.value \\projection.any (list expected))
                             (!expect {try.#Success _}))
@@ -85,12 +85,12 @@
                (,, (template.with [    ]
                      [(do [! random.monad]
                         [expected 
-                         dummy (|>  (random.only (|>> (of  = expected) not)))]
+                         dummy (|>  (random.only (|>> (by  = expected) not)))]
                         (all _.and
                              (_.coverage []
                                (|> (\\projection.value  (list ( expected)))
                                    (!expect (^.multi {try.#Success actual}
-                                                     (of  = expected actual)))))
+                                                     (by  = expected actual)))))
                              (_.coverage []
                                (and (|> (\\projection.value ( expected) (list ( expected)))
                                         (!expect {try.#Success []}))
@@ -98,7 +98,7 @@
                                         (!expect {try.#Failure _}))))
                              ))]
 
-                     [\\projection.any \\projection.this (of ! each /.bit random.bit) function.identity /.equivalence]
+                     [\\projection.any \\projection.this (by ! each /.bit random.bit) function.identity /.equivalence]
                      [\\projection.bit \\projection.this_bit random.bit /.bit bit.equivalence]
                      [\\projection.natural \\projection.this_natural random.natural /.natural natural.equivalence]
                      [\\projection.integer \\projection.this_integer random.integer /.integer integer.equivalence]
@@ -118,8 +118,8 @@
                                                   (list ( (list (/.natural expected_left)
                                                                       (/.integer expected_right)))))
                               (!expect (^.multi {try.#Success [actual_left actual_right]}
-                                                (and (of natural.equivalence = expected_left actual_left)
-                                                     (of integer.equivalence = expected_right actual_right)))))))]
+                                                (and (by natural.equivalence = expected_left actual_left)
+                                                     (by integer.equivalence = expected_right actual_right)))))))]
 
                      [\\projection.form /.form]
                      [\\projection.variant /.variant]
@@ -133,10 +133,10 @@
                                                    \\projection.integer)
                                            (list (/.integer expected_global)))
                        (!expect (^.multi {try.#Success [actual_local actual_global]}
-                                         (and (of natural.equivalence = expected_local actual_local)
-                                              (of integer.equivalence = expected_global actual_global)))))))
+                                         (and (by natural.equivalence = expected_local actual_local)
+                                              (by integer.equivalence = expected_global actual_global)))))))
                (do [! random.monad]
-                 [dummy (of ! each /.bit random.bit)]
+                 [dummy (by ! each /.bit random.bit)]
                  (_.coverage [\\projection.end?]
                    (|> (\\projection.value (do <>.monad
                                              [pre \\projection.end?
@@ -148,14 +148,14 @@
                        (!expect (^.multi {try.#Success verdict}
                                          verdict)))))
                (do [! random.monad]
-                 [dummy (of ! each /.bit random.bit)]
+                 [dummy (by ! each /.bit random.bit)]
                  (_.coverage [\\projection.end]
                    (and (|> (\\projection.value \\projection.end (list))
                             (!expect {try.#Success []}))
                         (|> (\\projection.value \\projection.end (list dummy))
                             (!expect {try.#Failure _})))))
                (do [! random.monad]
-                 [expected (of ! each /.bit random.bit)]
+                 [expected (by ! each /.bit random.bit)]
                  (_.coverage [\\projection.next]
                    (|> (\\projection.value (do <>.monad
                                              [pre \\projection.next
@@ -165,7 +165,7 @@
                                            (list expected))
                        (!expect {try.#Success _}))))
                (do [! random.monad]
-                 [expected (of ! each /.bit random.bit)]
+                 [expected (by ! each /.bit random.bit)]
                  (_.coverage [\\projection.not]
                    (and (|> (\\projection.value (\\projection.not \\projection.natural) (list expected))
                             (!expect (^.multi {try.#Success actual}
@@ -193,7 +193,7 @@
     (-> (Random a)
         (Random (List a))))
   (do [! random.monad]
-    [size (|> random.natural (of ! each (natural.% 3)))]
+    [size (|> random.natural (by ! each (natural.% 3)))]
     (random.list size random)))
 
 (the .public random
@@ -233,7 +233,7 @@
    (function (_ replacement_simulation)
      (let [for_sequence (is (-> (-> (List Code) Code) (Random [Code Code]))
                             (function (_ to_code)
-                              (random.only (|>> product.left (of /.equivalence = original) not)
+                              (random.only (|>> product.left (by /.equivalence = original) not)
                                            (do [! random.monad]
                                              [parts (..random_sequence replacement_simulation)]
                                              (in [(to_code (list#each product.left parts))
@@ -241,7 +241,7 @@
        (all random.either
             (random#in [original substitute])
             (do [! random.monad]
-              [sample (random.only (|>> (of /.equivalence = original) not)
+              [sample (random.only (|>> (by /.equivalence = original) not)
                                    (all random.either
                                         (random#each /.bit random.bit)
                                         (random#each /.natural random.natural)
@@ -266,13 +266,13 @@
                     (_.coverage []
                       (and (when (..read (format ( expected)))
                              {try.#Success actual}
-                             (of /.equivalence =
+                             (by /.equivalence =
                                  actual
                                  ( expected))
                              
                              {try.#Failure error}
                              false)
-                           (of /.equivalence =
+                           (by /.equivalence =
                                [location.dummy { expected}]
                                ( expected)))))]
 
@@ -292,13 +292,13 @@
                     (_.coverage []
                       (and (when (..read (format ( expected)))
                              {try.#Success actual}
-                             (of /.equivalence =
+                             (by /.equivalence =
                                  actual
                                  ( expected))
                              
                              {try.#Failure error}
                              false)
-                           (of /.equivalence =
+                           (by /.equivalence =
                                [location.dummy { ["" expected]}]
                                ( expected)))
                       ))]
@@ -322,13 +322,13 @@
            
            (do [! random.monad]
              [[original substitute] (random.only (function (_ [original substitute])
-                                                   (not (of /.equivalence = original substitute)))
+                                                   (not (by /.equivalence = original substitute)))
                                                  (random.and ..random ..random))
               [sample expected] (random.only (function (_ [sample expected])
-                                               (not (of /.equivalence = sample expected)))
+                                               (not (by /.equivalence = sample expected)))
                                              (..replacement_simulation [original substitute]))]
              (_.coverage [/.replaced]
-               (of /.equivalence =
+               (by /.equivalence =
                    expected
                    (/.replaced original substitute sample))))
 
diff --git a/stdlib/source/test/lux/meta/compiler/arity.lux b/stdlib/source/test/lux/meta/compiler/arity.lux
index b831c13ecf..d4c0c6364e 100644
--- a/stdlib/source/test/lux/meta/compiler/arity.lux
+++ b/stdlib/source/test/lux/meta/compiler/arity.lux
@@ -22,7 +22,7 @@
   (<| (_.covering /._)
       (_.for [/.Arity])
       (do [! random.monad]
-        [arity (of ! each (n.% 3) random.natural)]
+        [arity (by ! each (n.% 3) random.natural)]
         (all _.and
              (_.coverage [/.nullary?]
                (bit.= (n.= 0 arity) (/.nullary? arity)))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux.lux b/stdlib/source/test/lux/meta/compiler/language/lux.lux
index c9dc0a86b1..ef9ab0be2d 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux.lux
@@ -130,7 +130,7 @@
              (|> expected
                  (!binary.value /.injection)
                  (?binary.value /.projection)
-                 (try#each (of module_equivalence = (has .#module_state {.#Cached} expected)))
+                 (try#each (by module_equivalence = (has .#module_state {.#Cached} expected)))
                  (try.else false)))
            (_.coverage [/.key]
              (let [it (key.signature /.key)]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux
index 3fcfbf4c6e..975653c78a 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux
@@ -88,13 +88,13 @@
         []
         (`` (all _.and
                  (do [! random.monad]
-                   [expected (of ! each (|>> /.bit) random.bit)]
+                   [expected (by ! each (|>> /.bit) random.bit)]
                    (_.coverage [\\projection.value \\projection.any]
                      (|> (list expected)
                          (\\projection.value \\projection.any)
                          (pipe.when
                            {try.#Success actual}
-                           (of /.equivalence = expected actual)
+                           (by /.equivalence = expected actual)
 
                            {try.#Failure _}
                            false))))
@@ -604,7 +604,7 @@
              (_.for [/.State]
                     ..test|state)
              (_.coverage [/.injection]
-               (bit.= (of /.equivalence = left right)
+               (bit.= (by /.equivalence = left right)
                       (text.= (/.injection left) (/.injection right))))
 
              /complex.test
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux
index 3c668c1e51..b35c62a8c0 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux
@@ -26,8 +26,8 @@
 (the test|tag
   Test
   (do [! random.monad]
-    [multiplicity (of ! each (n.max 2) random.natural)
-     tag (of ! each (n.% multiplicity) random.natural)
+    [multiplicity (by ! each (n.max 2) random.natural)
+     tag (by ! each (n.% multiplicity) random.natural)
      lefts random.natural
      right? random.bit]
     (all _.and
@@ -77,6 +77,6 @@
                [left random
                 right random]
                (_.coverage [/.injection]
-                 (bit.= (of (/.equivalence n.equivalence) = left right)
+                 (bit.= (by (/.equivalence n.equivalence) = left right)
                         (text.= (/.injection %.natural left) (/.injection %.natural right)))))
              ))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux
index eb08022d45..29abf98f76 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux
@@ -68,8 +68,8 @@
                    whens (random.set n.hash whens ..random_tag)]
                   (|> whens
                       set.list
-                      (monad.each ! (function (_ when) (of ! each (|>> [when]) again)))
-                      (of ! each (dictionary.of_list n.hash))))
+                      (monad.each ! (function (_ when) (by ! each (|>> [when]) again)))
+                      (by ! each (dictionary.of_list n.hash))))
                 )
            (random.and again again)
            (random.and again again)
@@ -105,7 +105,7 @@
                      ))
                
                (do [! random.monad]
-                 [tag (of ! each ++ ..random_tag)
+                 [tag (by ! each ++ ..random_tag)
                   right? random.bit
                   .let [lefts (//complex.lefts right? tag)]
                   [sub_coverage sub_pattern] again]
@@ -212,7 +212,7 @@
         [[expected/0 pattern/0] ..random_partial_pattern
          [expected/1 pattern/1] (random.only (|>> product.left (/#= expected/0) not)
                                              ..random_partial_pattern)
-         expected_maximum (of ! each (n.+ 2) ..random_tag)
+         expected_maximum (by ! each (n.+ 2) ..random_tag)
          .let [random_tag (random#each (n.% expected_maximum) random.natural)]
          tag/0 random_tag
          tag/1 (random.only (|>> (n.= tag/0) not) random_tag)
@@ -259,7 +259,7 @@
          decimal random.unit_decimal
          text (random.unicode 1)
          
-         arity (of ! each (n.+ 2) ..random_tag)
+         arity (by ! each (n.+ 2) ..random_tag)
          .let [random_tag (random#each (n.% arity) random.natural)]
          tag/0 random_tag
          tag/1 (random.only (|>> (n.= tag/0) not) random_tag)]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux
index f4dfcfffd8..beeb55203e 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux
@@ -110,7 +110,7 @@
      expected ..nominal
      name ($symbol.random 1 1)
      [type/0 term/0] ..simple_parameter
-     arity (of ! each (n.% 10) random.natural)
+     arity (by ! each (n.% 10) random.natural)
      naturals (random.list arity random.natural)]
     (all _.and
          (_.coverage [/.general]
@@ -130,7 +130,7 @@
                     (/phase.value state)
                     (try#each (function (_ [actual analysis/*])
                                 (and (type.= expected actual)
-                                     (of (list.equivalence //.equivalence) =
+                                     (by (list.equivalence //.equivalence) =
                                          (list#each (|>> //.natural) naturals)
                                          analysis/*))))
                     (try.else false))
@@ -223,12 +223,12 @@
      .let [state [/extension.#bundle (/extension/analysis.bundle ..eval)
                   /extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
      [type/0 term/0] ..simple_parameter
      [type/1 term/1] (random.only (|>> product.left (same? type/0) not)
                                   ..simple_parameter)
      types/*,terms/* (random.list arity ..simple_parameter)
-     tag (of ! each (n.% arity) random.natural)
+     tag (by ! each (n.% arity) random.natural)
      .let [[lefts right?] (//complex.choice arity tag)]
      arbitrary_right? random.bit]
     (all _.and
@@ -332,7 +332,7 @@
      .let [state [/extension.#bundle (/extension/analysis.bundle ..eval)
                   /extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
      [type/0 term/0] ..simple_parameter
      [type/1 term/1] (random.only (|>> product.left (same? type/0) not)
                                   ..simple_parameter)
@@ -409,7 +409,7 @@
          [type/0 term/0] ..simple_parameter
          [type/1 term/1] (random.only (|>> product.left (same? type/0) not)
                                       ..simple_parameter)
-         lefts (of ! each (n.% 10) random.natural)
+         lefts (by ! each (n.% 10) random.natural)
          right? random.bit]
         (all _.and
              ..test|general
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux
index 342f528c7f..d943c155f5 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux
@@ -52,9 +52,9 @@
   (<| (_.covering /._)
       (_.for [/.Expander])
       (do [! random.monad]
-        [multiplicity (of ! each (|>> (n.% 8) (n.+ 2))
+        [multiplicity (by ! each (|>> (n.% 8) (n.+ 2))
                           random.natural)
-         choice (of ! each (n.% multiplicity)
+         choice (by ! each (n.% multiplicity)
                     random.natural)
          expected_error (random.upper_cased 5)
 
@@ -82,7 +82,7 @@
            (_.coverage [/.expansion]
              (|> (/.expansion ..expander name multiple (list mono))
                  (meta.value lux)
-                 (try#each (of (list.equivalence code.equivalence) =
+                 (try#each (by (list.equivalence code.equivalence) =
                                (list.repeated multiplicity mono)))
                  (try.else false)))
            (_.coverage [/.expansion_failed]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux
index db2aec274e..490c242d25 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux
@@ -207,13 +207,13 @@
 
      public? random.bit
      def_type ..nominal
-     arity (of ! each (|>> (n.% 10) ++) random.natural)
+     arity (by ! each (|>> (n.% 10) ++) random.natural)
      labels|head (random.lower_cased 1)
      labels|tail (|> (random.lower_cased 1)
                      (random.only (|>> (text.= labels|head) not))
                      (random.set text.hash (-- arity))
-                     (of ! each set.list))
-     index (of ! each (n.% arity) random.natural)
+                     (by ! each set.list))
+     index (by ! each (n.% arity) random.natural)
      .let [definition {.#Definition [public? def_type []]}
            alias {.#Alias [module_name def_name]}]]
     (all _.and
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux
index 4f6c4450b9..8148c2b3bc 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux
@@ -54,7 +54,7 @@
                       (equivalenceT.spec /.equivalence ..random))
                
                (_.coverage [/.injection]
-                 (bit.= (of /.equivalence = left right)
+                 (bit.= (by /.equivalence = left right)
                         (text.= (/.injection left) (/.injection right))))
                (_.coverage [/.unit]
                  (when (/.unit)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux
index b1ae3dab7a..86ec2c3357 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux
@@ -44,6 +44,6 @@
              [left ..random
               right ..random]
              (_.coverage [/.injection]
-               (bit.= (of /.equivalence = left right)
+               (bit.= (by /.equivalence = left right)
                       (text.= (/.injection left) (/.injection right)))))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux
index 848384c33c..c16ef6e2f1 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux
@@ -93,7 +93,7 @@
                       _
                       false))
                 (|> (/.of_try {try.#Success expected})
-                    (of /.functor each (same? expected))
+                    (by /.functor each (same? expected))
                     (/.value state)
                     (try.else false))))
          (_.coverage [/.except]
@@ -130,24 +130,24 @@
     (all _.and
          (_.coverage [/.state]
            (|> /.state
-               (of /.functor each (same? state))
+               (by /.functor each (same? state))
                (/.value state)
                (try.else false)))
          (_.coverage [/.with]
            (|> (do /.monad
                  [_ (/.with state)]
                  /.state)
-               (of /.functor each (same? state))
+               (by /.functor each (same? state))
                (/.value dummy)
                (try.else false)))
          (_.coverage [/.sub]
-           (|> (/.sub [(of n.hex injection)
+           (|> (/.sub [(by n.hex injection)
                        (function (_ new old)
-                         (|> new (of n.hex projection) (try.else dummy)))]
+                         (|> new (by n.hex projection) (try.else dummy)))]
                       (do /.monad
                         [state/hex /.state]
                         (in (|> state
-                                (of n.hex injection)
+                                (by n.hex injection)
                                 (text.= state/hex)))))
                (/.value' state)
                (pipe.when {try.#Success [state' verdict]}
@@ -170,7 +170,7 @@
                 (monadT.spec ..injection (..comparison state) /.monad))
 
          (_.coverage [/.value]
-           (|> (of /.monad in expected)
+           (|> (by /.monad in expected)
                (/.value state)
                (pipe.when {try.#Success actual}
                  (same? expected actual)
@@ -178,7 +178,7 @@
                  _
                  false)))
          (_.coverage [/.value']
-           (|> (of /.monad in expected)
+           (|> (by /.monad in expected)
                (/.value' state)
                (pipe.when {try.#Success [state' actual]}
                  (and (same? state state')
@@ -205,10 +205,10 @@
          (_.coverage [/.composite]
            (let [phase (/.composite (is (/.Phase Natural Integer Decimal)
                                         (function (_ archive input)
-                                          (of /.monad in (i.decimal input))))
+                                          (by /.monad in (i.decimal input))))
                                     (is (/.Phase Revolution Decimal Text)
                                         (function (_ archive input)
-                                          (of /.monad in (%.decimal input)))))]
+                                          (by /.monad in (%.decimal input)))))]
              (|> (phase archive.empty expected)
                  (/.value' [state/0 state/1])
                  (pipe.when {try.#Success [[state/0' state/1'] actual]}
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux
index 6451432297..dd383d0343 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux
@@ -923,10 +923,10 @@
          @left (random.lower_cased 9)
          @right (random.lower_cased 10)
 
-         $abstraction/0 (of ! each code.local (random.lower_cased 11))
-         $parameter/0 (of ! each code.local (random.lower_cased 12))
-         $abstraction/1 (of ! each code.local (random.lower_cased 13))
-         $parameter/1 (of ! each code.local (random.lower_cased 14))])
+         $abstraction/0 (by ! each code.local (random.lower_cased 11))
+         $parameter/0 (by ! each code.local (random.lower_cased 12))
+         $abstraction/1 (by ! each code.local (random.lower_cased 13))
+         $parameter/1 (by ! each code.local (random.lower_cased 14))])
       (all _.and
            (_.coverage [/.phase]
              (and (..can_analyse_unit! lux module/0)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux
index a13b9a634f..c30261b806 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux
@@ -138,9 +138,9 @@
      .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                   //extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
      types/*,terms/* (random.list arity ..simple_parameter)
-     tag (of ! each (n.% arity) random.natural)
+     tag (by ! each (n.% arity) random.natural)
      .let [[lefts right?] (//complex.choice arity tag)
            [tagT tagC] (|> types/*,terms/*
                            (list.item tag)
@@ -221,13 +221,13 @@
      .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                   //extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
      types/*,terms/* (random.list arity ..simple_parameter)
-     tag (of ! each (n.% arity) random.natural)
+     tag (by ! each (n.% arity) random.natural)
      .let [[lefts right?] (//complex.choice arity tag)]
      tags (|> (random.lower_cased 1)
               (random.set text.hash arity)
-              (of ! each set.list))
+              (by ! each set.list))
      .let [module (product.left name)
            sumT (type.variant (list#each product.left types/*,terms/*))
            variantT {.#Named name sumT}
@@ -294,7 +294,7 @@
      .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                   //extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
      types/*,terms/* (random.list arity ..simple_parameter)
      [type/0 term/0] ..simple_parameter
      [type/1 term/1] ..simple_parameter
@@ -438,8 +438,8 @@
      .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                   //extension.#state lux]]
      name ($symbol.random 1 1)
-     arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
-     slice (of ! each (|>> (n.% (-- arity)) ++) random.natural)
+     arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+     slice (by ! each (|>> (n.% (-- arity)) ++) random.natural)
      [type/0 term/0] ..simple_parameter
      slot/0 (random.lower_cased 1)
      types/*,terms/* (random.list arity ..simple_parameter)
@@ -517,7 +517,7 @@
                                     (pipe.when
                                       {try.#Success {.#Some [actual_arity actual_tuple actual_type]}}
                                       (and (n.= arity actual_arity)
-                                           (of code.equivalence = (code.tuple tuple) (code.tuple actual_tuple))
+                                           (by code.equivalence = (code.tuple tuple) (code.tuple actual_tuple))
                                            (type.= :record: actual_type))
 
                                       _
@@ -638,11 +638,11 @@
         [lux ..random_state
          .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                       //extension.#state lux]]
-         arity (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+         arity (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
          types/*,terms/* (random.list arity ..simple_parameter)
          [type/0 term/0] ..simple_parameter
          [type/1 term/1] ..simple_parameter
-         tag (of ! each (n.% arity) random.natural)
+         tag (by ! each (n.% arity) random.natural)
          .let [[lefts right?] (//complex.choice arity tag)]]
         (all _.and
              ..test|sum
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/when.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/when.lux
index 78fff5555c..0969244b15 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/when.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/when.lux
@@ -64,13 +64,13 @@
      .let [state [//extension.#bundle (//extension/analysis.bundle ..eval)
                   //extension.#state lux]]
      module/0 (random.lower_cased 1)
-     name/0 (of ! each (|>> [module/0]) (random.lower_cased 2))
+     name/0 (by ! each (|>> [module/0]) (random.lower_cased 2))
      [input/0 simple/0] $//inference.simple_parameter
      [input/1 simple/1] $//inference.simple_parameter
      [input/2 simple/2] $//inference.simple_parameter
-     $binding/0 (of ! each code.local (random.lower_cased 3))
-     $binding/1 (of ! each code.local (random.lower_cased 4))
-     $binding/2 (of ! each code.local (random.lower_cased 5))]
+     $binding/0 (by ! each code.local (random.lower_cased 3))
+     $binding/1 (by ! each code.local (random.lower_cased 4))
+     $binding/2 (by ! each code.local (random.lower_cased 5))]
     (all _.and
          (_.coverage [/.tuple]
            (let [tuple? (is (-> Type Type Bit)
@@ -513,10 +513,10 @@
          [output/0 body/0] $//inference.simple_parameter
          [output/1 body/1] (random.only (|>> product.left (same? output/0) not)
                                         $//inference.simple_parameter)
-         $binding/0 (of ! each code.local (random.lower_cased 3))
-         $binding/1 (of ! each code.local (random.lower_cased 4))
-         $binding/2 (of ! each code.local (random.lower_cased 5))
-         extension/0 (of ! each code.text (random.lower_cased 6))
+         $binding/0 (by ! each code.local (random.lower_cased 3))
+         $binding/1 (by ! each code.local (random.lower_cased 4))
+         $binding/2 (by ! each code.local (random.lower_cased 5))
+         extension/0 (by ! each code.text (random.lower_cased 6))
          bit/0 random.bit
          natural/0 random.natural]
         (all _.and
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux
index 758ea2317e..7434846aed 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux
@@ -52,7 +52,7 @@
          (_.coverage [/.read]
            (|> (is (/.Operation Integer Natural Natural Text)
                    (/.read %.integer))
-               (of phase.functor each (text.= (%.integer state)))
+               (by phase.functor each (text.= (%.integer state)))
                (phase.value [/.#bundle /.empty
                              /.#state state])
                (try.else false)))
@@ -61,7 +61,7 @@
                    (do phase.monad
                      [_ (/.update ++)]
                      (/.read %.integer)))
-               (of phase.functor each (text.= (%.integer (++ state))))
+               (by phase.functor each (text.= (%.integer (++ state))))
                (phase.value [/.#bundle /.empty
                              /.#state state])
                (try.else false)))
@@ -71,7 +71,7 @@
                      [|state'| (/.temporary ++ (/.read %.integer))
                       |state| (/.read %.integer)]
                      (in (%.message |state'| " " |state|))))
-               (of phase.functor each (text.= (%.message (%.integer (++ state)) " " (%.integer state))))
+               (by phase.functor each (text.= (%.message (%.integer (++ state)) " " (%.integer state))))
                (phase.value [/.#bundle /.empty
                              /.#state state])
                (try.else false)))
@@ -84,7 +84,7 @@
                                            (/.read %.integer))
                       |state'| (/.read %.integer)]
                      (in (%.message |state'| " " |state|))))
-               (of phase.functor each (text.= (%.message (%.integer (i.+ +2 state))
+               (by phase.functor each (text.= (%.message (%.integer (i.+ +2 state))
                                                          " " (%.integer (i.+ +1 state)))))
                (phase.value [/.#bundle /.empty
                              /.#state state])
@@ -98,12 +98,12 @@
 (the handler/0
   (/.Handler Integer Natural Natural)
   (function (_ @self phase archive inputs)
-    (of phase.monad in (list#mix n.+ 0 inputs))))
+    (by phase.monad in (list#mix n.+ 0 inputs))))
 
 (the handler/1
   (/.Handler Integer Natural Natural)
   (function (_ @self phase archive inputs)
-    (of phase.monad in (list#mix n.* 1 inputs))))
+    (by phase.monad in (list#mix n.* 1 inputs))))
 
 (the test|name
   Test
@@ -127,7 +127,7 @@
                  false)))
          (_.coverage [/.unknown]
            (|> (/.apply archive.empty (function (_ archive input)
-                                        (of phase.monad in (++ input)))
+                                        (by phase.monad in (++ input)))
                         [extension (list left right)])
                (phase.value [/.#bundle /.empty
                              /.#state state])
@@ -143,7 +143,7 @@
   Test
   (let [phase (is (/.Phase Integer Natural Natural)
                   (function (_ archive input)
-                    (of phase.monad in (++ input))))]
+                    (by phase.monad in (++ input))))]
     (do [! random.monad]
       [state random.integer
 
@@ -159,7 +159,7 @@
                       (|> (do phase.monad
                             [_ (/.install extender extension handler/0)]
                             (/.apply archive.empty phase [extension (list left right)]))
-                          (of phase.functor each (n.= (n.+ left right)))
+                          (by phase.functor each (n.= (n.+ left right)))
                           (phase.value [/.#bundle /.empty
                                         /.#state state])
                           (try.else false)))
@@ -169,11 +169,11 @@
                                           (let [! phase.monad]
                                             (|> inputs
                                                 (monad.each ! (phase archive))
-                                                (of ! each (list#mix n.+ 0))))))]
+                                                (by ! each (list#mix n.+ 0))))))]
                         (|> (do phase.monad
                               [_ (/.install extender extension handler)]
                               (/.apply archive.empty phase [extension (list left right)]))
-                            (of phase.functor each (n.= (n.+ (++ left) (++ right))))
+                            (by phase.functor each (n.= (n.+ (++ left) (++ right))))
                             (phase.value [/.#bundle /.empty
                                           /.#state state])
                             (try.else false))))
@@ -181,9 +181,9 @@
                       (|> (do phase.monad
                             [_ (/.with extender (dictionary.of_list text.hash (list [extension handler/1])))]
                             (/.apply archive.empty (function (_ archive input)
-                                                     (of phase.monad in (++ input)))
+                                                     (by phase.monad in (++ input)))
                                      [extension (list left right)]))
-                          (of phase.functor each (n.= (n.* left right)))
+                          (by phase.functor each (n.= (n.* left right)))
                           (phase.value [/.#bundle /.empty
                                         /.#state state])
                           (try.else false)))
@@ -215,7 +215,7 @@
                                      (/.lifted (do phase.monad
                                                  []
                                                  (in expected))))
-                                 (of phase.functor each (same? expected))
+                                 (by phase.functor each (same? expected))
                                  (phase.value [/.#bundle /.empty
                                                /.#state state])
                                  (try.else false))
@@ -236,7 +236,7 @@
                             (is (/.Operation Integer Natural Natural Natural))
                             /.up
                             (is (phase.Operation Integer Natural))
-                            (of phase.functor each (same? expected))
+                            (by phase.functor each (same? expected))
                             (phase.value state)
                             (try.else false)))
                       ))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
index c9ad72fa46..48e010c4a8 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
@@ -79,9 +79,9 @@
 (the i64
   Test
   (do [! r.monad]
-    [subjectC (|> r.natural (of ! each code.natural))
-     signedC (|> r.integer (of ! each code.integer))
-     paramC (|> r.natural (of ! each code.natural))]
+    [subjectC (|> r.natural (by ! each code.natural))
+     signedC (|> r.integer (by ! each code.integer))
+     paramC (|> r.natural (by ! each code.natural))]
     (all _.and
          (_.test "i64 'and'."
            (check_success+ (symbol .i64_and#) (list paramC subjectC) Natural))
@@ -106,8 +106,8 @@
 (the integer
   Test
   (do [! r.monad]
-    [subjectC (|> r.integer (of ! each code.integer))
-     paramC (|> r.integer (of ! each code.integer))]
+    [subjectC (|> r.integer (by ! each code.integer))
+     paramC (|> r.integer (by ! each code.integer))]
     (all _.and
          (_.test "Can multiply integers."
            (check_success+ (symbol .int_*#) (list paramC subjectC) Integer))
@@ -126,8 +126,8 @@
 (the decimal
   Test
   (do [! r.monad]
-    [subjectC (|> r.unit_decimal (of ! each code.decimal))
-     paramC (|> r.unit_decimal (of ! each code.decimal))]
+    [subjectC (|> r.unit_decimal (by ! each code.decimal))
+     paramC (|> r.unit_decimal (by ! each code.decimal))]
     (all _.and
          (_.test "Can add decimal numbers."
            (check_success+ (symbol .f64_+#) (list paramC subjectC) Decimal))
@@ -150,11 +150,11 @@
 (the text
   Test
   (do [! r.monad]
-    [subjectC (|> (r.unicode 5) (of ! each code.text))
-     paramC (|> (r.unicode 5) (of ! each code.text))
-     replacementC (|> (r.unicode 5) (of ! each code.text))
-     fromC (|> r.natural (of ! each code.natural))
-     toC (|> r.natural (of ! each code.natural))]
+    [subjectC (|> (r.unicode 5) (by ! each code.text))
+     paramC (|> (r.unicode 5) (by ! each code.text))
+     replacementC (|> (r.unicode 5) (by ! each code.text))
+     fromC (|> r.natural (by ! each code.natural))
+     toC (|> r.natural (by ! each code.natural))]
     (all _.and
          (_.test "Can test text equivalence."
            (check_success+ (symbol .text_=#) (list paramC subjectC) Bit))
@@ -175,8 +175,8 @@
 (the io
   Test
   (do [! r.monad]
-    [logC (|> (r.unicode 5) (of ! each code.text))
-     exitC (|> r.integer (of ! each code.integer))]
+    [logC (|> (r.unicode 5) (by ! each code.text))
+     exitC (|> r.integer (by ! each code.integer))]
     (all _.and
          (_.test "Can log messages to standard output."
            (check_success+ (symbol .log!#) (list logC) Any))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux
index 786a2ababf..f800d22f10 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux
@@ -89,7 +89,7 @@
 
 (the (random_unit output?)
   Scenario
-  (of random.monad in
+  (by random.monad in
       [true
        (synthesis.text synthesis.unit)
        (analysis.unit)]))
@@ -156,7 +156,7 @@
 (the (random_variable arity output?)
   (-> Arity Scenario)
   (do [! random.monad]
-    [register (of ! each (|>> (n.% arity) ++) random.natural)]
+    [register (by ! each (|>> (n.% arity) ++) random.natural)]
     (in [(not (n.= 0 register))
          (synthesis.local register)
          (if (n.= arity register)
@@ -186,7 +186,7 @@
      text_test (random.unicode 1)
      [loop?_input expected_input actual_input] (random_value false)
      [loop?_output expected_output actual_output] (random_value output?)
-     lefts (|> random.natural (of ! each (n.% 10)))
+     lefts (|> random.natural (by ! each (n.% 10)))
      right? random.bit
      .let [side|member (if right?
                          {.#Right lefts}
@@ -288,7 +288,7 @@
 (the (random_get random_value output?)
   (-> Scenario Scenario)
   (do [! random.monad]
-    [lefts (|> random.natural (of ! each (n.% 10)))
+    [lefts (|> random.natural (by ! each (n.% 10)))
      right? random.bit
      [loop?_record expected_record actual_record] (random_value false)]
     (in [loop?_record
@@ -352,7 +352,7 @@
   Scenario
   (do [! random.monad]
     [[loop?_output expected_output actual_output] (..random_natural output?)
-     arity (|> random.natural (of ! each (|>> (n.% 5) ++)))
+     arity (|> random.natural (by ! each (|>> (n.% 5) ++)))
      .let [environment (all list#composite
                             (list#each (|>> {variable.#Foreign})
                                        (list.indices arity))
@@ -372,7 +372,7 @@
   (-> Scenario Scenario)
   (do [! random.monad]
     [[loop?_abstraction expected_abstraction actual_abstraction] (..random_natural output?)
-     arity (|> random.natural (of ! each (|>> (n.% 5) ++)))
+     arity (|> random.natural (by ! each (|>> (n.% 5) ++)))
      inputs (random.list arity (random_value false))]
     (in [(list#mix (function (_ new old)
                      (and new old))
@@ -428,7 +428,7 @@
 (the random_abstraction
   (Random [Synthesis Analysis])
   (do [! random.monad]
-    [arity (|> random.natural (of ! each (|>> (n.% 5) ++)))
+    [arity (|> random.natural (by ! each (|>> (n.% 5) ++)))
      [loop? expected_body actual_body] (random_body arity true)]
     (in [(..n_function loop? arity expected_body)
          (..n_abstraction arity actual_body)])))
@@ -442,12 +442,12 @@
           (//.phase archive.empty)
           (phase.value [///bundle.empty synthesis.init])
           (!expect (^.multi {try.#Success actual}
-                            (of synthesis.equivalence = expected actual)))))))
+                            (by synthesis.equivalence = expected actual)))))))
 
 (the application
   Test
   (do [! random.monad]
-    [arity (|> random.natural (of ! each (|>> (n.% 10) (n.max 1))))
+    [arity (|> random.natural (by ! each (|>> (n.% 10) (n.max 1))))
      funcA //primitive.primitive
      argsA (random.list arity //primitive.primitive)]
     (_.coverage [/.apply]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
index 5d9693e3fb..75e1703ecf 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux
@@ -39,13 +39,13 @@
   (`` (all random.either
            (,, (template.with [ ]
                  [(do [! random.monad]
-                    [example (of ! each (|>> ) )]
+                    [example (by ! each (|>> ) )]
                     (in [next
                          [example
                           example]]))]
 
                  [//.bit random.bit]
-                 [//.i64 (of ! each .i64 random.natural)]
+                 [//.i64 (by ! each .i64 random.natural)]
                  [//.f64 random.decimal]
                  [//.text (random.unicode 1)]
                  ))
@@ -63,7 +63,7 @@
 (the (variable offset arity next)
   (Scenario Variable)
   (let [local (do [! random.monad]
-                [register (of ! each (|>> (n.% arity) ++) random.natural)]
+                [register (by ! each (|>> (n.% arity) ++) random.natural)]
                 (in [next
                      [{variable.#Local (/.register_optimization offset register)}
                       {variable.#Local register}]]))]
@@ -72,7 +72,7 @@
       _ (all random.either
              local
              (do [! random.monad]
-               [foreign (of ! each (n.% offset) random.natural)]
+               [foreign (by ! each (n.% offset) random.natural)]
                (in [next
                     [{variable.#Local foreign}
                      {variable.#Foreign foreign}]]))))))
@@ -125,19 +125,19 @@
                                             //.path/pop]])
                                (,, (template.with [ ]
                                      [(do [! random.monad]
-                                        [example (of ! each (|>> ) )]
+                                        [example (by ! each (|>> ) )]
                                         (in [next
                                              [example
                                               example]]))]
 
                                      [//.path/bit random.bit]
-                                     [//.path/i64 (of ! each .i64 random.natural)]
+                                     [//.path/i64 (by ! each .i64 random.natural)]
                                      [//.path/f64 random.decimal]
                                      [//.path/text (random.unicode 1)]
                                      ))
                                (,, (template.with []
                                      [(do [! random.monad]
-                                        [example (of ! each (|>> )
+                                        [example (by ! each (|>> )
                                                      (random.or random.natural
                                                                 random.natural))]
                                         (in [next
@@ -190,7 +190,7 @@
          (all random.either
               (do [! random.monad]
                 [[next [recordE recordA]] (..reference offset arity next)
-                 path_length (of ! each (|>> (n.% 5) ++) random.natural)
+                 path_length (by ! each (|>> (n.% 5) ++) random.natural)
                  path (random.list path_length random_member)]
                 (in [next
                      [(//.get [path recordE])
@@ -227,7 +227,7 @@
        (do [! random.monad]
          [[next [firstE firstA]] (..variable offset arity next)
           [next [secondE secondA]] (..variable offset arity next)
-          arity (of ! each (n.max 1) random.natural)
+          arity (by ! each (n.max 1) random.natural)
           [next [bodyE bodyA]] (..primitive 0 arity next)]
          (in [next
               [(//.abstraction
@@ -274,10 +274,10 @@
   (<| (_.covering /._)
       (all _.and
            (do [! random.monad]
-             [expected_offset (of ! each (|>> (n.% 5) (n.+ 2)) random.natural)
-              arity (of ! each (|>> (n.% 5) ++) random.natural)
+             [expected_offset (by ! each (|>> (n.% 5) (n.+ 2)) random.natural)
+              arity (by ! each (|>> (n.% 5) ++) random.natural)
               expected_inits (|> random.natural
-                                 (of ! each (|>> .i64 //.i64))
+                                 (by ! each (|>> .i64 //.i64))
                                  (random.list arity))
               [_ [expected iteration]] (..scenario expected_offset arity 0)]
              (_.coverage [/.Transform /.optimization /.register_optimization]
@@ -291,10 +291,10 @@
                                     actual])}
                  (and (n.= expected_offset
                            actual_offset)
-                      (of (list.equivalence //.equivalence) =
+                      (by (list.equivalence //.equivalence) =
                           expected_inits
                           actual_inits)
-                      (of //.equivalence = expected actual))
+                      (by //.equivalence = expected actual))
                  
                  _
                  false)))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux
index ee03352365..9e13b18d3b 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux
@@ -42,8 +42,8 @@
 (the variant
   Test
   (do [! r.monad]
-    [size (|> r.natural (of ! each (|>> (n.% 10) (n.+ 2))))
-     tagA (|> r.natural (of ! each (n.% size)))
+    [size (|> r.natural (by ! each (|>> (n.% 10) (n.+ 2))))
+     tagA (|> r.natural (by ! each (n.% size)))
      .let [right? (n.= (-- size) tagA)
            lefts (if right?
                    (-- tagA)
@@ -66,7 +66,7 @@
 (the tuple
   Test
   (do [! r.monad]
-    [size (|> r.natural (of ! each (|>> (n.% 10) (n.max 2))))
+    [size (|> r.natural (by ! each (|>> (n.% 10) (n.max 2))))
      membersA (r.list size //primitive.primitive)]
     (_.test "Can synthesize tuple."
       (|> (////analysis.tuple membersA)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
index ebe3f52e08..b98978dc33 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux
@@ -57,7 +57,7 @@
             ( value)])))]
 
   [bit_scenario synthesis.bit random.bit]
-  [i64_scenario synthesis.i64 (of ! each .i64 random.natural)]
+  [i64_scenario synthesis.i64 (by ! each .i64 random.natural)]
   [f64_scenario synthesis.f64 random.decimal]
   [text_scenario synthesis.text (random.unicode 1)]
   )
@@ -103,7 +103,7 @@
 (the (tuple_scenario context)
   (Scenario Synthesis)
   (let [registers (dictionary.entries (its #necessary context))]
-    (of random.monad in
+    (by random.monad in
         [(synthesis.tuple (list#each (|>> product.left synthesis.local) registers))
          (synthesis.tuple (list#each (|>> product.right synthesis.local) registers))])))
 
@@ -150,7 +150,7 @@
 (the (get_scenario scenario context)
   (-> (Scenario Synthesis) (Scenario Synthesis))
   (do [! random.monad]
-    [length (of ! each (|>> (n.% 5) ++) random.natural)
+    [length (by ! each (|>> (n.% 5) ++) random.natural)
      path (random.list length ..random_member)
      [expected_record actual_record] (scenario context)]
     (in [(synthesis.get [path expected_record])
@@ -194,7 +194,7 @@
                                               {synthesis.#Then actual_then}}]))]
 
                       [synthesis.#Bit random.bit]
-                      [synthesis.#I64 (of ! each .i64 random.natural)]
+                      [synthesis.#I64 (by ! each .i64 random.natural)]
                       [synthesis.#F64 random.decimal]
                       [synthesis.#Text (random.unicode 1)]
                       )))
@@ -290,7 +290,7 @@
 (the (apply_scenario scenario context)
   (-> (Scenario Synthesis) (Scenario Synthesis))
   (do [! random.monad]
-    [abstraction (of ! each (|>> synthesis.constant)
+    [abstraction (by ! each (|>> synthesis.constant)
                      (random.and (random.unicode 1)
                                  (random.unicode 1)))
      inputs (random.list ..scope_arity (scenario context))]
@@ -338,5 +338,5 @@
              (_.coverage [/.optimization]
                (|> (/.optimization input)
                    (!expect (^.multi {try.#Success actual}
-                                     (of synthesis.equivalence = expected actual))))))
+                                     (by synthesis.equivalence = expected actual))))))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/when.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/when.lux
index 5289613c7b..99a47785af 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/when.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/when.lux
@@ -50,7 +50,7 @@
   Test
   (do [! random.monad]
     [maskedA //primitive.primitive
-     temp (|> random.natural (of ! each (n.% 100)))
+     temp (|> random.natural (by ! each (n.% 100)))
      .let [maskA (analysis.when
                    [maskedA
                     [[{analysis.#Bind temp}
@@ -119,7 +119,7 @@
 (the random_member
   (Random synthesis.Member)
   (do [! random.monad]
-    [lefts (|> random.natural (of ! each (n.% 10)))
+    [lefts (|> random.natural (by ! each (n.% 10)))
      right? random.bit]
     (in (if right?
           {.#Right lefts}
@@ -128,7 +128,7 @@
 (the random_path
   (Random (analysis.Tuple synthesis.Member))
   (do [! random.monad]
-    [size_1 (|> random.natural (of ! each (|>> (n.% 10) ++)))]
+    [size_1 (|> random.natural (by ! each (|>> (n.% 10) ++)))]
     (random.list size_1 ..random_member)))
 
 (the (get_pattern path)
@@ -155,9 +155,9 @@
   Test
   (do [! random.monad]
     [recordA (|> random.natural
-                 (of ! each (|>> analysis.natural))
+                 (by ! each (|>> analysis.natural))
                  (random.list 10)
-                 (of ! each (|>> analysis.tuple)))
+                 (by ! each (|>> analysis.tuple)))
      pathA ..random_path
      [pattern @member] (get_pattern pathA)
      .let [getA (analysis.when [recordA [[pattern
@@ -169,7 +169,7 @@
           (phase.value [///bundle.empty synthesis.init])
           (pipe.when
             {try.#Success (synthesis.get [pathS recordS])}
-            (and (of (list.equivalence (sum.equivalence n.= n.=)) = pathA pathS)
+            (and (by (list.equivalence (sum.equivalence n.= n.=)) = pathA pathS)
                  (//primitive.corresponds? recordA recordS))
 
             _
@@ -196,7 +196,7 @@
         (Random [a a a a a])))
   (|> random_element
       (random.set hash 5)
-      (of random.monad each (|>> set.list
+      (by random.monad each (|>> set.list
                                  (pipe.when
                                    (list s0 s1 s2 s3 s4)
                                    [s0 s1 s2 s3 s4]
@@ -275,7 +275,7 @@
 (the random_tuple
   (Random [Path Match])
   (do [! random.monad]
-    [mid_size (of ! each (n.% 4) random.natural)
+    [mid_size (by ! each (n.% 4) random.natural)
 
      value/first (random.unicode 1)
      value/mid (random.list mid_size (random.unicode 1))
@@ -341,15 +341,15 @@
 (the when_test
   Test
   (do [! random.monad]
-    [expected_input (of ! each (|>> .i64 synthesis.i64) random.natural)
+    [expected_input (by ! each (|>> .i64 synthesis.i64) random.natural)
      [expected_path match] ..random_when]
     (_.coverage [/.synthesize_when]
       (|> (/.synthesize_when //.phase archive.empty expected_input match)
           (phase.value [///bundle.empty synthesis.init])
           (pipe.when
             {try.#Success (synthesis.when [actual_input actual_path])}
-            (and (of synthesis.equivalence = expected_input actual_input)
-                 (of synthesis.path_equivalence = expected_path actual_path))
+            (and (by synthesis.equivalence = expected_input actual_input)
+                 (by synthesis.path_equivalence = expected_path actual_path))
 
             _
             false)))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
index 791ac69a9d..1cd34867c4 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/complex.lux
@@ -93,7 +93,7 @@
                                           _ runtime.translation
                                           it (/.variant phase archive.empty
                                                         [  ( location.dummy )])]
-                                         (in (when (of host evaluate [{.#None} it])
+                                         (in (when (by host evaluate [{.#None} it])
                                                {try.#Success actual}
                                                (when (as Variant/3 actual)
                                                  {  actual}
@@ -122,7 +122,7 @@
                                       (list (synthesis.bit location.dummy expected_bit)
                                             (synthesis.i64 location.dummy expected_i64)
                                             (synthesis.text location.dummy expected_text)))]
-                         (in (when (of host evaluate [{.#None} it])
+                         (in (when (by host evaluate [{.#None} it])
                                {try.#Success actual}
                                (let [[actual_bit actual_i64 actual_text] (as Tuple/3 actual)]
                                  (and (bit.= expected_bit actual_bit)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux
index 04055a743d..4b31e22e9c 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux
@@ -63,10 +63,10 @@
                next (//.translate extender complexT.lux)
                @ [module 0 0]]
 
-         arity (of ! each (|>> (n.% (n.- 1 arity.maximum))
+         arity (by ! each (|>> (n.% (n.- 1 arity.maximum))
                                (n.+ 2))
                    random.natural)
-         inner_arity (of ! each (|>> (n.% (n.- 1 arity))
+         inner_arity (by ! each (|>> (n.% (n.- 1 arity))
                                      (n.+ 1))
                          random.natural)])
       (all _.and
@@ -84,7 +84,7 @@
                                             [(list) 1 (synthesis.i64 @ expected_i64)])]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as (-> [] I64))
                                                 (function.on [])
                                                 (i64.= expected_i64)))
@@ -106,7 +106,7 @@
                                              (list.repeated arity (synthesis.bit @ expected_bit))])]
                                (in (|> it
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as I64)
                                                       (i64.= expected_i64)))
                                        (try.else false))))))
@@ -143,7 +143,7 @@
                                 it (next archive inner_application)]
                                (in (|> it
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as I64)
                                                       (i64.= expected_i64)))
                                        (try.else false))))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux
index b996453637..b4225683fb 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux
@@ -74,7 +74,7 @@
       (do [! random.monad]
         [module (random.lower_cased 1)
          expected_i64 random.i64
-         arity (of ! each (|>> (n.% 10) ++) random.natural)
+         arity (by ! each (|>> (n.% 10) ++) random.natural)
 
          .let [system_class_loader (java/lang/ClassLoader::getSystemClassLoader [])]])
       (all _.and
@@ -104,7 +104,7 @@
                                              [(list) 1 (synthesis.i64 @ expected_i64)]))]
                                (in (|> it
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (..function? class_loader))
                                        (try.else false))))))
                        (try.else false))]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux
index 8021eee403..ff4eaa3d9e 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux
@@ -65,8 +65,8 @@
                next (jvm.translate extender complexT.lux)
                @ [module 0 0]]
 
-         arity (of ! each (|>> (n.% arity.maximum) (n.max arity.minimum)) random.natural)
-         partial_application (of ! each (n.% arity) random.natural)])
+         arity (by ! each (|>> (n.% arity.maximum) (n.max arity.minimum)) random.natural)
+         partial_application (by ! each (n.% arity) random.natural)])
       (all _.and
            (_.coverage [/.field]
              (when /.field
@@ -81,7 +81,7 @@
                         !.i2l
                         (value.boxed type.long))
                    [{.#None}]
-                   (of host evaluate)
+                   (by host evaluate)
                    (try#each (|>> (as Natural) (n.= 0)))
                    (try.else false))))
            (_.coverage [/.value]
@@ -103,7 +103,7 @@
                                             !.i2l
                                             (value.boxed type.long))
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as Natural) (n.= 0)))
                                        (try.else false))))))
                        (try.else false))
@@ -129,7 +129,7 @@
                                             !.i2l
                                             (value.boxed type.long))
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as Natural) (n.= partial_application)))
                                        (try.else false))))))
                        (try.else false))]
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux
index 64634672fb..4fc01d032c 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux
@@ -76,7 +76,7 @@
                           it (next archive term)]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (function (_ it)
                                              (let [it (as (-> I64 I64 I64)
                                                           it)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux
index 147090b833..a7b70e27b5 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux
@@ -71,7 +71,7 @@
                                                (synthesis.local @ 1)))]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (function (_ it)
                                              (same? expected_i64
                                                     (let [it (as (-> I64 I64 I64)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux
index f988d1193d..1e27a8b8e8 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux
@@ -67,7 +67,7 @@
                                                           (synthesis.i64 @ dummy_i64))]))]
                          (in (|> actual
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false))))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux
index 9de356bad8..49e2e4b8ac 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux
@@ -68,8 +68,8 @@
                next (//.translate extender complexT.lux)
                @ [module 0 0]]
 
-         arity (of ! each (|>> (n.% (-- arity.maximum)) (n.+ 2)) random.natural)
-         inner_arity (of ! each (|>> (n.% arity) (n.+ 1)) random.natural)])
+         arity (by ! each (|>> (n.% (-- arity.maximum)) (n.+ 2)) random.natural)
+         inner_arity (by ! each (|>> (n.% arity) (n.+ 1)) random.natural)])
       (all _.and
            (_.coverage [/.modifier]
              (and (valid_modifier? /.modifier)
@@ -88,7 +88,7 @@
                           function (next archive (synthesis.abstraction @ [(list) 1 (synthesis.local @ 1)]))
                           it (|> function
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  phase.of_try)
                           .let [class (|> it
                                           (as java/lang/Object)
@@ -101,7 +101,7 @@
                                     _ parameter]
                                    (/.call class 1))
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux
index 06e6fa1052..0c3656c364 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux
@@ -69,8 +69,8 @@
                next (//.translate extender complexT.lux)
                @ [module 0 0]]
 
-         arity (of ! each (|>> (n.% (-- arity.maximum)) (n.+ 2)) random.natural)
-         inner_arity (of ! each (|>> (n.% arity) (n.+ 1)) random.natural)])
+         arity (by ! each (|>> (n.% (-- arity.maximum)) (n.+ 2)) random.natural)
+         inner_arity (by ! each (|>> (n.% arity) (n.+ 1)) random.natural)])
       (all _.and
            (_.coverage [/.name /.type /.method /.call]
              (|> (do try.monad
@@ -88,7 +88,7 @@
                                                                         (list (synthesis.i64 @ dummy_i64))]))
                           it (|> partially_applied_function
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  phase.of_try)
                           .let [class (|> it
                                           (as java/lang/Object)
@@ -99,7 +99,7 @@
                           .let [what_happens_when_its_not_reset!
                                 (|> partially_applied_function
                                     [{.#None}]
-                                    (of host evaluate)
+                                    (by host evaluate)
                                     (try#each (function (_ it)
                                                 (i64.= dummy_i64
                                                        ((as (-> I64 I64)
@@ -113,7 +113,7 @@
                                        _ (!.checkcast class)]
                                       (/.call class 2))
                                     [{.#None}]
-                                    (of host evaluate)
+                                    (by host evaluate)
                                     (try#each (function (_ it)
                                                 (i64.= expected_i64
                                                        ((as (-> I64 I64 I64)
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
index f9c068af74..1d373afaa1 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux
@@ -33,7 +33,7 @@
            (_.coverage [/.host]
              (io.value (do io.monad
                          [[class_loader host] /.host]
-                         (in (when (of host evaluate [{.#None} (bytecode.string expected)])
+                         (in (when (by host evaluate [{.#None} (bytecode.string expected)])
                                {try.#Success actual}
                                (text.= expected (as Text actual))
                                
@@ -42,7 +42,7 @@
            (_.coverage [/.invalid_value]
              (io.value (do io.monad
                          [[class_loader host] /.host]
-                         (in (when (of host evaluate [{.#None} bytecode.aconst_null])
+                         (in (when (by host evaluate [{.#None} bytecode.aconst_null])
                                {try.#Success _}
                                false
                                
@@ -51,7 +51,7 @@
            (_.coverage [/.cannot_load]
              (io.value (do io.monad
                          [[class_loader host] /.host]
-                         (in (when (of host evaluate [{.#None} (all bytecode.composite
+                         (in (when (by host evaluate [{.#None} (all bytecode.composite
                                                                     bytecode.lconst_0
                                                                     bytecode.lconst_0
                                                                     bytecode.ldiv
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux
index edc8c15bff..f68bfcb087 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux
@@ -63,7 +63,7 @@
                                             [0 (list) (synthesis.i64 @ expected_i64)])]
                                (in (|> it
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as I64)
                                                       (i64.= expected_i64)))
                                        (try.else false))))))
@@ -83,7 +83,7 @@
                                             [0 (list (synthesis.i64 @ expected_i64)) (synthesis.local @ 0)])]
                                (in (|> it
                                        [{.#None}]
-                                       (of host evaluate)
+                                       (by host evaluate)
                                        (try#each (|>> (as I64)
                                                       (i64.= expected_i64)))
                                        (try.else false))))))
@@ -112,7 +112,7 @@
                                                                {synthesis.#Then (synthesis.local @ 0)}}])])]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false))))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux
index e60a61b9cc..23c60f43de 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux
@@ -40,7 +40,7 @@
                      [(_.coverage []
                         (io.value (do io.monad
                                     [[class_loader host] host.host]
-                                    (in (when (of host evaluate [{.#None} ( )])
+                                    (in (when (by host evaluate [{.#None} ( )])
                                           {try.#Success actual}
                                           (<=>  (as  actual))
                                           
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
index a2dabff400..709b300251 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux
@@ -54,8 +54,8 @@
                next (//.translate extender complexT.lux)
                @ [module 0 0]]
 
-         before (of ! each (n.% 8) random.natural)
-         after (of ! each (n.% 8) random.natural)
+         before (by ! each (n.% 8) random.natural)
+         after (by ! each (n.% 8) random.natural)
          .let [arity (++ (n.+ before after))
                local (++ before)]])
       (all _.and
@@ -78,7 +78,7 @@
                                                      (list.repeated after (synthesis.i64 @ dummy)))]))]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected)))
                                  (try.else false))))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux
index b884a78f4d..f652e17f20 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux
@@ -48,7 +48,7 @@
                  (and (,, (template.with [   <=> ]
                             [(io.value (do io.monad
                                          [[class_loader host] host.host]
-                                         (in (when (of host evaluate [{.#None}
+                                         (in (when (by host evaluate [{.#None}
                                                                       (all //.composite
                                                                            ( )
                                                                            (/.primitive )
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
index 62259627c4..6efa7dcbc0 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux
@@ -74,7 +74,7 @@
                          (synthesis.i64 @ else)])]
                   (in (|> it
                           [{.#None}]
-                          (of host evaluate)
+                          (by host evaluate)
                           (try#each (|>> (as I64)
                                          (i64.= expected_i64)))
                           (try.else false))))))
@@ -110,7 +110,7 @@
                          (synthesis.i64 @ expected_i64)])]
                   (in (|> it
                           [{.#None}]
-                          (of host evaluate)
+                          (by host evaluate)
                           (try#each (|>> (as I64)
                                          (i64.= expected_i64)))
                           (try.else false))))))
@@ -122,7 +122,7 @@
     [module (random.lower_cased 1)
 
      expected_i64 random.i64
-     register (of ! each (n.% 10) random.natural)
+     register (by ! each (n.% 10) random.natural)
 
      .let [extender (is extension.Extender
                         (function (_ _)
@@ -144,7 +144,7 @@
                          (synthesis.local @ register)])]
                   (in (|> it
                           [{.#None}]
-                          (of host evaluate)
+                          (by host evaluate)
                           (try#each (|>> (as I64)
                                          (i64.= expected_i64)))
                           (try.else false))))))
@@ -164,11 +164,11 @@
            next (//.translate extender complexT.lux)
            @ [module 0 0]]
 
-     .let [siblings (of ! each (|>> (n.% 5) ++) random.natural)]
+     .let [siblings (by ! each (|>> (n.% 5) ++) random.natural)]
      left_siblings siblings
      right_siblings siblings
      .let [inner_size (++ (all n.+ left_siblings right_siblings))]
-     inner_member (of ! each (n.% inner_size) random.natural)
+     inner_member (by ! each (n.% inner_size) random.natural)
      nested_choice random.bit]
     (_.coverage [/.its]
       (|> (do try.monad
@@ -207,7 +207,7 @@
                                        (synthesis.tuple @ middle_tuple)])]
                            (in (|> it
                                    [{.#None}]
-                                   (of host evaluate)
+                                   (by host evaluate)
                                    (try#each (|>> (as I64)
                                                   (i64.= expected_i64)))
                                    (try.else false)))))
@@ -220,7 +220,7 @@
                                       (synthesis.tuple @ right_tuple)])]
                           (in (|> it
                                   [{.#None}]
-                                  (of host evaluate)
+                                  (by host evaluate)
                                   (try#each (|>> (as I64)
                                                  (i64.= expected_i64)))
                                   (try.else false)))))
@@ -234,7 +234,7 @@
                                        (synthesis.tuple @ nested_tuple)])]
                            (in (|> it
                                    [{.#None}]
-                                   (of host evaluate)
+                                   (by host evaluate)
                                    (try#each (|>> (as I64)
                                                   (i64.= expected_i64)))
                                    (try.else false)))))]
@@ -257,12 +257,12 @@
            next (//.translate extender complexT.lux)
            @ [module 0 0]]
 
-     register (of ! each (n.% 10) random.natural)
+     register (by ! each (n.% 10) random.natural)
      expected_bit random.bit
      expected_f64 random.unit_decimal
      expected_text (random.lower_cased 1)
 
-     lefts (of ! each (n.% 10) random.natural)]
+     lefts (by ! each (n.% 10) random.natural)]
     (_.coverage [/.when]
       (|> (do try.monad
             [[_ archive] (archive.reserve "" archive.empty)
@@ -279,7 +279,7 @@
                                 {synthesis.#Then (synthesis.i64 @ expected_i64)}])]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false)))))
@@ -294,7 +294,7 @@
                                 {synthesis.#Then (synthesis.i64 @ expected_i64)}}])]
                         (in (|> it
                                 [{.#None}]
-                                (of host evaluate)
+                                (by host evaluate)
                                 (try#each (|>> (as I64)
                                                (i64.= expected_i64)))
                                 (try.else false)))))
@@ -309,7 +309,7 @@
                                  {synthesis.#Then (synthesis.local @ register)}}])]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false)))))
@@ -324,7 +324,7 @@
                                                     {.#Some {synthesis.#Then (synthesis.i64 @ dummy_i64)}}}])]
                         (in (|> it
                                 [{.#None}]
-                                (of host evaluate)
+                                (by host evaluate)
                                 (try#each (|>> (as I64)
                                                (i64.= expected_i64)))
                                 (try.else false)))))
@@ -338,7 +338,7 @@
                                                      (list)]}])]
                         (in (|> it
                                 [{.#None}]
-                                (of host evaluate)
+                                (by host evaluate)
                                 (try#each (|>> (as I64)
                                                (i64.= expected_i64)))
                                 (try.else false)))))
@@ -352,7 +352,7 @@
                                                      (list)]}])]
                         (in (|> it
                                 [{.#None}]
-                                (of host evaluate)
+                                (by host evaluate)
                                 (try#each (|>> (as I64)
                                                (i64.= expected_i64)))
                                 (try.else false)))))
@@ -366,7 +366,7 @@
                                                        (list)]}])]
                          (in (|> it
                                  [{.#None}]
-                                 (of host evaluate)
+                                 (by host evaluate)
                                  (try#each (|>> (as I64)
                                                 (i64.= expected_i64)))
                                  (try.else false)))))
@@ -382,7 +382,7 @@
                                 {synthesis.#Then (synthesis.i64 @ expected_i64)}}])]
                         (in (|> it
                                 [{.#None}]
-                                (of host evaluate)
+                                (by host evaluate)
                                 (try#each (|>> (as I64)
                                                (i64.= expected_i64)))
                                 (try.else false)))))
@@ -403,7 +403,7 @@
                                                        {synthesis.#Then (synthesis.local @ register)}}}])]
                                               (in (|> it
                                                       [{.#None}]
-                                                      (of host evaluate)
+                                                      (by host evaluate)
                                                       (try#each (|>> (as I64)
                                                                      (i64.= expected_i64)))
                                                       (try.else false)))))))
@@ -424,7 +424,7 @@
                                                      {synthesis.#Then (synthesis.local @ register)}}}])]
                                             (in (|> it
                                                     [{.#None}]
-                                                    (of host evaluate)
+                                                    (by host evaluate)
                                                     (try#each (|>> (as I64)
                                                                    (i64.= expected_i64)))
                                                     (try.else false)))))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux b/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux
index c000671205..11bc9287ec 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux
@@ -36,7 +36,7 @@
 (the symbol_part^
   (Random Text)
   (do [! random.monad]
-    [size (|> random.natural (of ! each (|>> (n.% 20) (n.max 1))))]
+    [size (|> random.natural (by ! each (|>> (n.% 20) (n.max 1))))]
     (random.lower_cased size)))
 
 (the symbol^
@@ -101,7 +101,7 @@
                  false
 
                  {.#Right [_ parsed]}
-                 (of code.equivalence = parsed sample)))
+                 (by code.equivalence = parsed sample)))
              (do !
                [other code^]
                (_.test "Can parse multiple Lux code nodes."
@@ -118,37 +118,37 @@
                        false
 
                        {.#Right [_ =other]}
-                       (and (of code.equivalence = sample =sample)
-                            (of code.equivalence = other =other)))))))
+                       (and (by code.equivalence = sample =sample)
+                            (by code.equivalence = other =other)))))))
              (_.coverage [fraction.extension]
-               (when (let [source_code (of fraction.format injection expected_fraction)]
+               (when (let [source_code (by fraction.format injection expected_fraction)]
                        (/.parse source_code "" (dictionary.empty text.hash)
                                 [location.dummy 0 source_code]))
                  {.#Left _}
                  false
 
                  {.#Right [_ actual]}
-                 (of code.equivalence =
+                 (by code.equivalence =
                      (` ((, (code.symbol [.prelude fraction.extension]))
                          (, (code.natural (its fraction.#numerator expected_fraction)))
                          (, (code.natural (its fraction.#denominator expected_fraction)))))
                      actual)))
              (_.coverage [rational.extension]
-               (when (let [source_code (of rational.format injection expected_rational)]
+               (when (let [source_code (by rational.format injection expected_rational)]
                        (/.parse source_code "" (dictionary.empty text.hash)
                                 [location.dummy 0 source_code]))
                  {.#Left _}
                  false
 
                  {.#Right [_ actual]}
-                 (of code.equivalence =
+                 (by code.equivalence =
                      (` ((, (code.symbol [.prelude rational.extension]))
                          (, (code.integer (its rational.#numerator expected_rational)))
                          (, (code.natural (its rational.#denominator expected_rational)))))
                      actual)))
              (,, (template.with [,unit]
                    [(_.coverage [,unit]
-                      (and (when (let [source_code (%.message (of n.base_10 injection natural_numerator)
+                      (and (when (let [source_code (%.message (by n.base_10 injection natural_numerator)
                                                               (its unit.#suffix ,unit))]
                                    (/.parse source_code "" (dictionary.empty text.hash)
                                             [location.dummy 0 source_code]))
@@ -156,12 +156,12 @@
                              false
 
                              {.#Right [_ actual]}
-                             (of code.equivalence =
+                             (by code.equivalence =
                                  (` ((, (code.symbol [.prelude fraction.extension]))
                                      (, (code.natural natural_numerator))
                                      (, (code.natural (its unit.#factor ,unit)))))
                                  actual))
-                           (when (let [source_code (%.message (of i.base_10 injection integer_numerator)
+                           (when (let [source_code (%.message (by i.base_10 injection integer_numerator)
                                                               (its unit.#suffix ,unit))]
                                    (/.parse source_code "" (dictionary.empty text.hash)
                                             [location.dummy 0 source_code]))
@@ -169,12 +169,12 @@
                              false
 
                              {.#Right [_ actual]}
-                             (of code.equivalence =
+                             (by code.equivalence =
                                  (` ((, (code.symbol [.prelude rational.extension]))
                                      (, (code.integer integer_numerator))
                                      (, (code.natural (its unit.#factor ,unit)))))
                                  actual))
-                           (when (let [source_code (%.message (of d.base_10 injection decimal_numerator)
+                           (when (let [source_code (%.message (by d.base_10 injection decimal_numerator)
                                                               (its unit.#suffix ,unit))]
                                    (/.parse source_code "" (dictionary.empty text.hash)
                                             [location.dummy 0 source_code]))
@@ -184,7 +184,7 @@
                              {.#Right [_ actual]}
                              (let [expected (code.decimal (d./ (n.decimal (its unit.#factor ,unit))
                                                                decimal_numerator))]
-                               (of code.equivalence =
+                               (by code.equivalence =
                                    (code.decimal (d./ (n.decimal (its unit.#factor ,unit))
                                                       decimal_numerator))
                                    actual)))
@@ -225,7 +225,7 @@
              false
 
              {.#Right [_ parsed]}
-             (of code.equivalence = parsed sample)))
+             (by code.equivalence = parsed sample)))
          )))
 
 (the .public test
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux
index e0fd9484a5..23cd0b735c 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux
@@ -62,9 +62,9 @@
 (the random_environment
   (Random (Environment Synthesis))
   (do [! random.monad]
-    [size (of ! each (n.% 5) random.natural)]
+    [size (by ! each (n.% 5) random.natural)]
     (|> ..random_variable
-        (of ! each (|>> synthesis.variable))
+        (by ! each (|>> synthesis.variable))
         (random.list size))))
 
 (the simple
@@ -73,12 +73,12 @@
            (,, (template.with [    ]
                  [(do [! random.monad]
                     [expected 
-                     dummy (|>  (random.only (|>> (of  = expected) not)))]
+                     dummy (|>  (random.only (|>> (by  = expected) not)))]
                     (all _.and
                          (_.coverage []
                            (|> (\\projection.value  (list ( expected)))
                                (!expect (^.multi {try.#Success actual}
-                                                 (of  = expected actual)))))
+                                                 (by  = expected actual)))))
                          (_.coverage []
                            (and (|> (\\projection.value ( expected) (list ( expected)))
                                     (!expect {try.#Success _}))
@@ -112,10 +112,10 @@
                                                                      (synthesis.f64 expected_f64)
                                                                      (synthesis.text expected_text)))))
                     (!expect (^.multi {try.#Success [actual_bit actual_i64 actual_f64 actual_text]}
-                                      (and (of bit.equivalence = expected_bit actual_bit)
-                                           (of i64.equivalence = expected_i64 actual_i64)
-                                           (of decimal.equivalence = expected_f64 actual_f64)
-                                           (of text.equivalence = expected_text actual_text)))))
+                                      (and (by bit.equivalence = expected_bit actual_bit)
+                                           (by i64.equivalence = expected_i64 actual_i64)
+                                           (by decimal.equivalence = expected_f64 actual_f64)
+                                           (by text.equivalence = expected_text actual_text)))))
                 (|> (\\projection.value (\\projection.tuple (all <>.and \\projection.bit \\projection.i64 \\projection.f64 \\projection.text))
                                         (list (synthesis.text expected_text)))
                     (!expect (^.multi {try.#Failure error}
@@ -128,10 +128,10 @@
            (and (|> (\\projection.value (\\projection.function arity \\projection.text)
                                         (list (synthesis.abstraction [expected_environment arity (synthesis.text expected_body)])))
                     (!expect (^.multi {try.#Success [actual_environment actual_body]}
-                                      (and (of (list.equivalence synthesis.equivalence) =
+                                      (and (by (list.equivalence synthesis.equivalence) =
                                                expected_environment
                                                actual_environment)
-                                           (of text.equivalence = expected_body actual_body)))))
+                                           (by text.equivalence = expected_body actual_body)))))
                 (|> (\\projection.value (\\projection.function arity \\projection.text)
                                         (list (synthesis.text expected_body)))
                     (!expect (^.multi {try.#Failure error}
@@ -146,7 +146,7 @@
                (!expect (^.multi {try.#Failure error}
                                  (exception.is? \\projection.wrong_arity error))))))
        (do [! random.monad]
-         [arity (of ! each (|>> (n.% 10) ++) random.natural)
+         [arity (by ! each (|>> (n.% 10) ++) random.natural)
           expected_offset random.natural
           expected_inits (random.list arity random.bit)
           expected_body (random.unicode 1)]
@@ -156,11 +156,11 @@
                                                                 (list#each (|>> synthesis.bit) expected_inits)
                                                                 (synthesis.text expected_body)])))
                     (!expect (^.multi {try.#Success [actual_offset actual_inits actual_body]}
-                                      (and (of n.equivalence = expected_offset actual_offset)
-                                           (of (list.equivalence bit.equivalence) =
+                                      (and (by n.equivalence = expected_offset actual_offset)
+                                           (by (list.equivalence bit.equivalence) =
                                                expected_inits
                                                actual_inits)
-                                           (of text.equivalence = expected_body actual_body)))))
+                                           (by text.equivalence = expected_body actual_body)))))
                 (|> (\\projection.value (\\projection.loop (<>.many \\projection.bit) \\projection.text)
                                         (list (synthesis.text expected_body)))
                     (!expect (^.multi {try.#Failure error}
@@ -173,23 +173,23 @@
       (_.for [\\projection.Projection])
       (all _.and
            (do [! random.monad]
-             [expected (of ! each (|>> synthesis.i64) random.i64)]
+             [expected (by ! each (|>> synthesis.i64) random.i64)]
              (_.coverage [\\projection.value \\projection.any]
                (|> (\\projection.value \\projection.any (list expected))
                    (!expect (^.multi {try.#Success actual}
-                                     (of synthesis.equivalence = expected actual))))))
+                                     (by synthesis.equivalence = expected actual))))))
            (_.coverage [\\projection.empty_input]
              (|> (\\projection.value \\projection.any (list))
                  (!expect (^.multi {try.#Failure error}
                                    (exception.is? \\projection.empty_input error)))))
            (do [! random.monad]
-             [expected (of ! each (|>> synthesis.i64) random.i64)]
+             [expected (by ! each (|>> synthesis.i64) random.i64)]
              (_.coverage [\\projection.unconsumed_input]
                (|> (\\projection.value \\projection.any (list expected expected))
                    (!expect (^.multi {try.#Failure error}
                                      (exception.is? \\projection.unconsumed_input error))))))
            (do [! random.monad]
-             [dummy (of ! each (|>> synthesis.i64) random.i64)]
+             [dummy (by ! each (|>> synthesis.i64) random.i64)]
              (_.coverage [\\projection.end \\projection.expected_empty_input]
                (and (|> (\\projection.value \\projection.end (list))
                         (!expect {try.#Success _}))
@@ -197,7 +197,7 @@
                         (!expect (^.multi {try.#Failure error}
                                           (exception.is? \\projection.expected_empty_input error)))))))
            (do [! random.monad]
-             [dummy (of ! each (|>> synthesis.i64) random.i64)]
+             [dummy (by ! each (|>> synthesis.i64) random.i64)]
              (_.coverage [\\projection.end?]
                (and (|> (\\projection.value \\projection.end? (list))
                         (!expect {try.#Success .true}))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux
index d4c14eb05b..e331c424eb 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux
@@ -41,6 +41,6 @@
                     (hashT.spec /.hash ..random))
              
              (_.coverage [/.injection]
-               (bit.= (of /.equivalence = left right)
+               (bit.= (by /.equivalence = left right)
                       (text.= (/.injection left) (/.injection right))))
              ))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux
index 7a9afc10b2..ce8903be88 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux
@@ -41,6 +41,6 @@
                     (hashT.spec /.hash ..random))
              
              (_.coverage [/.injection]
-               (bit.= (of /.equivalence = left right)
+               (bit.= (by /.equivalence = left right)
                       (text.= (/.injection left) (/.injection right))))
              ))))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux
index fd1f105a2f..d8a8828678 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux
@@ -46,5 +46,5 @@
 
              (_.coverage [/.injection]
                (bit.= (text.= (/.injection left) (/.injection right))
-                      (of /.equivalence = left right)))
+                      (by /.equivalence = left right)))
              ))))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux
index 566dd98d83..c7203de1f0 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux
@@ -9,6 +9,8 @@
      ["[1]T" \\test]]]
    [math
     ["[0]" random (.only Random)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  ["[0]" /
@@ -33,8 +35,9 @@
               /.Artifact
               /.#id /.#category /.#mandatory?])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..random))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..random)))
 
            /definition.test
            /category.test
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux
index a8a1093aec..041673a1ba 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux
@@ -9,6 +9,8 @@
      ["[1]T" \\test]]]
    [math
     ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -30,6 +32,7 @@
       (_.for [/.Category
               /.#Anonymous /.#Definition /.#Custom])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..random))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..random)))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/definition.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/definition.lux
index 5f04f43cd6..27e41a1776 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/definition.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/definition.lux
@@ -9,6 +9,8 @@
      ["[1]T" \\test]]]
    [math
     ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -31,6 +33,7 @@
   (<| (_.covering /._)
       (_.for [/.Definition])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..random))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..random)))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux
index 575911cedb..22fc7233ee 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux
@@ -17,6 +17,8 @@
      ["<[1]>" \\projection]]]
    [math
     ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -48,8 +50,9 @@
       (do random.monad
         [expected (..random 5)])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence (..random 1)))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence (..random 1))))
 
            (_.for [/.Module]
                   (_.coverage [/.runtime]
@@ -58,6 +61,6 @@
              (|> expected
                  (binary.value /.injection)
                  (.value /.projection)
-                 (try#each (|>> (of /.equivalence = (has /.#state {.#Cached} expected))))
+                 (try#each (|>> (by /.equivalence = (has /.#state {.#Cached} expected))))
                  (try.else false)))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
index af5844aac4..7dc6e50c68 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
@@ -65,10 +65,10 @@
          mandatory? random.bit
          expected_dependencies (..random_dependencies 5)
          
-         expected_amount (of ! each (n.% 10) random.natural)
+         expected_amount (by ! each (n.% 10) random.natural)
          expected_names (|> (random.lower_cased 1)
                             (random.set text.hash expected_amount)
-                            (of ! each set.list))]
+                            (by ! each set.list))]
         (`` (all _.and
                  (_.coverage [/.empty]
                    (|> /.empty
@@ -139,7 +139,7 @@
                                       (list.every? (function (_ [@it [it dependencies]])
                                                      (same? @it (its artifact.#id it)))
                                                    (list.zipped_2 (sequence.as_list ids) (sequence.as_list it)))
-                                      (of (list.equivalence ) = expected/* ( registry))))]
+                                      (by (list.equivalence ) = expected/* ( registry))))]
 
                               [/.definition /.definitions definition.equivalence (is (-> Text definition.Definition)
                                                                                      (function (_ it)
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux
index abe616c330..5c47630fb3 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux
@@ -18,6 +18,8 @@
      ["<[1]>" \\projection]]]
    [math
     ["[0]" random (.only Random)]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
@@ -40,14 +42,15 @@
       (_.for [/.Signature
               /.#name /.#version])
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence ..random))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence ..random)))
            
            (do random.monad
              [left ..random
               right ..random]
              (_.coverage [/.description]
-               (bit.= (of /.equivalence = left right)
+               (bit.= (by /.equivalence = left right)
                       (text.= (/.description left) (/.description right)))))
            (do random.monad
              [expected ..random]
@@ -55,6 +58,6 @@
                (|> expected
                    (binaryF.value /.injection)
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux
index 862d480e0d..a1497dedf4 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux
@@ -49,6 +49,6 @@
            (_.coverage [/.none]
              (set.empty? /.none))
            (_.coverage [/.injection]
-             (bit.= (of /.equivalence = left right)
+             (bit.= (by /.equivalence = left right)
                     (text.= (/.injection left) (/.injection right))))
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache.lux b/stdlib/source/test/lux/meta/compiler/meta/cache.lux
index b915a1c4bd..fe303369de 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache.lux
@@ -35,10 +35,10 @@
                fs (file.mock /)]]
         (all _.and
              (in (do [! async.monad]
-                   [pre/0 (of fs directory? /.path)
+                   [pre/0 (by fs directory? /.path)
                     pre/1 (/.enabled? fs)
                     outcome (/.enable! ! fs)
-                    post/0 (of fs directory? /.path)
+                    post/0 (by fs directory? /.path)
                     post/1 (/.enabled? fs)]
                    (unit.coverage [/.path /.enabled? /.enable!]
                      (and (not pre/0)
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux
index 07efc69ab2..3cfd54dbf1 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux
@@ -74,11 +74,11 @@
         (all _.and
              (_.test "TO-DO" true)
              ... (in (do [! async.monad]
-             ...       [pre/0 (of fs file? (/.descriptor fs))
+             ...       [pre/0 (by fs file? (/.descriptor fs))
              ...        enabled? (//.enable! ! fs)
              ...        cached? (/.cache! fs configuration archive)
-             ...        actual (of fs read (/.descriptor fs))
-             ...        post/0 (of fs file? (/.descriptor fs))]
+             ...        actual (by fs read (/.descriptor fs))
+             ...        post/0 (by fs file? (/.descriptor fs))]
              ...       (unit.coverage [/.descriptor /.cache!]
              ...         (and (not pre/0)
              ...              (|> (do try.monad
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux
index b216c5faeb..733090151c 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux
@@ -41,10 +41,10 @@
          expected ($binary.random 1)]
         (all _.and
              (in (do [! async.monad]
-                   [pre (of fs file? (/.path fs context @module @artifact))
+                   [pre (by fs file? (/.path fs context @module @artifact))
                     _ (//module.enable! ! fs @module)
                     write! (/.cache! fs context @module @artifact expected)
-                    post (of fs file? (/.path fs context @module @artifact))
+                    post (by fs file? (/.path fs context @module @artifact))
                     read! (/.cache fs context @module @artifact)]
                    (unit.coverage [/.path /.cache! /.cache]
                      (and (not pre)
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux
index 25b072bc15..fbee439291 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux
@@ -29,7 +29,7 @@
       (implementation
        (,, (template.with []
              [(the 
-                (of it ))]
+                (by it ))]
 
              [separator]
              [file?]
@@ -60,10 +60,10 @@
              (in (do [! async.monad]
                    [.let [/ "/"
                           fs (file.mock /)]
-                    pre/0 (of fs directory? (/.path fs @module))
+                    pre/0 (by fs directory? (/.path fs @module))
                     pre/1 (/.enabled? fs @module)
                     outcome (/.enable! ! fs @module)
-                    post/0 (of fs directory? (/.path fs @module))
+                    post/0 (by fs directory? (/.path fs @module))
                     post/1 (/.enabled? fs @module)]
                    (unit.coverage [/.path /.enabled? /.enable!]
                      (and (not pre/0)
@@ -78,10 +78,10 @@
              (in (do [! async.monad]
                    [.let [/ "/"
                           fs (file.mock /)]
-                    pre/0 (of fs directory? (/.path fs @module))
+                    pre/0 (by fs directory? (/.path fs @module))
                     pre/1 (/.enabled? fs @module)
                     outcome (/.enable! ! (..bad fs) @module)
-                    post/0 (of fs directory? (/.path fs @module))
+                    post/0 (by fs directory? (/.path fs @module))
                     post/1 (/.enabled? fs @module)]
                    (unit.coverage [/.cannot_enable]
                      (and (not pre/0)
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux
index 5d916c53b6..4287a18c14 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux
@@ -55,7 +55,7 @@
          content/0 ($binary.random 1)
          name/1 (random.lower_cased 2)
          module/1 (|> ($module.random random.natural)
-                      (of ! each (has [module.#descriptor descriptor.#references]
+                      (by ! each (has [module.#descriptor descriptor.#references]
                                       (set.of_list text.hash (list name/0)))))
          content/1 ($binary.random 2)
          .let [id/0 (its module.#id module/0)
@@ -121,16 +121,16 @@
                                 .let [dir (//module.path fs id/0)
                                       file/0 (%.message dir / name/0)
                                       file/1 (%.message dir / name/1)]
-                                _ (of fs write file/0 content/0)
-                                _ (of fs write file/1 content/1)
-                                pre (of fs directory_files dir)
+                                _ (by fs write file/0 content/0)
+                                _ (by fs write file/1 content/1)
+                                pre (by fs directory_files dir)
                                 _ (/.purge! fs id/0)
-                                post (of fs directory_files dir)]
+                                post (by fs directory_files dir)]
                                (unit.coverage [/.purge!]
                                  (<| (try.else false)
                                      (do try.monad
                                        [pre pre]
-                                       (in (and (of set.equivalence =
+                                       (in (and (by set.equivalence =
                                                     (set.of_list text.hash pre)
                                                     (set.of_list text.hash (list file/0 file/1)))
                                                 (when post
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cli.lux b/stdlib/source/test/lux/meta/compiler/meta/cli.lux
index 82e08211e0..fb9bee3d91 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cli.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cli.lux
@@ -43,7 +43,7 @@
               /.service])
       (let [(open "list#[0]") (list.equivalence text.equivalence)])
       (do [! random.monad]
-        [amount (of ! each (|>> (n.% 5) ++) random.natural)
+        [amount (by ! each (|>> (n.% 5) ++) random.natural)
          sources (random.list amount (random.lower_cased 1))
          host_dependencies (random.list amount (random.lower_cased 2))
          libraries (random.list amount (random.lower_cased 3))
@@ -83,7 +83,7 @@
 
                                    [/.Host_Dependency /.#host_dependencies (list#= host_dependencies)]
                                    [/.Library /.#libraries (list#= libraries)]
-                                   [/compiler.Compiler /.#compilers (of (list.equivalence /compiler.equivalence) = compilers)]
+                                   [/compiler.Compiler /.#compilers (by (list.equivalence /compiler.equivalence) = compilers)]
                                    [/.Source /.#sources (list#= sources)]
                                    [/.Target /.#target (same? target)]
                                    [/.Module /.#module (same? module)]
@@ -106,7 +106,7 @@
 
                               [/.#host_dependencies (list#= host_dependencies)]
                               [/.#libraries (list#= libraries)]
-                              [/.#compilers (of (list.equivalence /compiler.equivalence) = compilers)]
+                              [/.#compilers (by (list.equivalence /compiler.equivalence) = compilers)]
                               [/.#sources (list#= sources)]
                               [/.#target (same? target)]
                               [/.#module (same? module)]
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux b/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux
index 3b5854ede5..dee9dc436c 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux
@@ -30,7 +30,7 @@
   (Random /.Compiler)
   (do [! random.monad]
     [definition ($symbol.random 1 1)
-     amount (of ! each (n.% 5) random.natural)
+     amount (by ! each (n.% 5) random.natural)
      parameters (random.list amount (random.lower_cased 2))]
     (in [/.#definition definition
          /.#parameters parameters])))
@@ -51,6 +51,6 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false)))
              ))))
diff --git a/stdlib/source/test/lux/meta/compiler/meta/context.lux b/stdlib/source/test/lux/meta/compiler/meta/context.lux
index ce5f4d2980..bf43306e27 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/context.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/context.lux
@@ -32,7 +32,7 @@
                   (in /.lua)
                   (in /.python)
                   (in /.ruby))]
-    (of ! each context (random.lower_cased 1))))
+    (by ! each context (random.lower_cased 1))))
 
 (the .public test
   Test
diff --git a/stdlib/source/test/lux/meta/compiler/meta/export.lux b/stdlib/source/test/lux/meta/compiler/meta/export.lux
index 1e80074ec6..0b711f5693 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/export.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/export.lux
@@ -52,34 +52,34 @@
          target (random.lower_cased 3)
 
          .let [random_file (is (Random file.Path)
-                               (of ! each (text.suffix io.lux_extension) (random.lower_cased 4)))]
+                               (by ! each (text.suffix io.lux_extension) (random.lower_cased 4)))]
          file/0' random_file
          .let [file/0 (%.message source/0 / file/0')]
          
          dir/0 (random.lower_cased 5)
-         file/1' (of ! each (|>> (%.message dir/0 /)) random_file)
+         file/1' (by ! each (|>> (%.message dir/0 /)) random_file)
          .let [file/1 (%.message source/1 / file/1')]
          
          .let [random_content (is (Random Binary)
-                                  (of ! each (|>> %.natural (of utf8.format injection)) random.natural))]
+                                  (by ! each (|>> %.natural (by utf8.format injection)) random.natural))]
          content/0 random_content
          content/1 random_content]
         (all _.and
              (in (do [! async.monad]
                    [it (do (try.with !)
                          [.let [fs (file.mock /)]
-                          _ (of fs make_directory source/0)
-                          _ (of fs write file/0 content/0)
+                          _ (by fs make_directory source/0)
+                          _ (by fs write file/0 content/0)
                           
-                          _ (of fs make_directory source/1)
-                          _ (of fs make_directory (%.message source/1 / dir/0))
-                          _ (of fs write file/1 content/1)
+                          _ (by fs make_directory source/1)
+                          _ (by fs make_directory (%.message source/1 / dir/0))
+                          _ (by fs write file/1 content/1)
 
-                          _ (of fs make_directory target)
+                          _ (by fs make_directory target)
                           library_tar (/.library fs (list source/0 source/1))
                           _ (/.export fs [(list source/0 source/1) target])
-                          export_tar (of fs read (%.message target / /.file))
-                          export_tar (of ! in (.value tar.projection export_tar))]
+                          export_tar (by fs read (%.message target / /.file))
+                          export_tar (by ! in (.value tar.projection export_tar))]
                          (in [library_tar export_tar]))]
                    (all unit.and
                         (unit.coverage [/.library /.mode /.ownership]
diff --git a/stdlib/source/test/lux/meta/compiler/meta/import.lux b/stdlib/source/test/lux/meta/compiler/meta/import.lux
index b2128cc50c..325d500458 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/import.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/import.lux
@@ -53,14 +53,14 @@
          
          .let [/ .module_separator
                random_file (is (Random file.Path)
-                               (of ! each (text.suffix io.lux_extension) (random.lower_cased 3)))]
+                               (by ! each (text.suffix io.lux_extension) (random.lower_cased 3)))]
          file/0 random_file
          
          dir/0 (random.lower_cased 4)
-         file/1 (of ! each (|>> (%.message dir/0 /)) random_file)
+         file/1 (by ! each (|>> (%.message dir/0 /)) random_file)
          
          .let [random_content (is (Random Binary)
-                                  (of ! each (|>> %.natural (of utf8.format injection)) random.natural))]
+                                  (by ! each (|>> %.natural (by utf8.format injection)) random.natural))]
          now instant.random
          content/0 random_content
          content/1 random_content
@@ -116,12 +116,12 @@
              (in (do [! async.monad]
                    [it/0 (do (try.with !)
                            [.let [fs (file.mock /)]
-                            _ (of fs write library/0 library_content)]
+                            _ (by fs write library/0 library_content)]
                            (/.import fs (list library/0)))
                     it/1 (do (try.with !)
                            [.let [fs (file.mock /)]
-                            _ (of fs write library/0 library_content/0)
-                            _ (of fs write library/1 library_content/1)]
+                            _ (by fs write library/0 library_content/0)
+                            _ (by fs write library/1 library_content/1)]
                            (/.import fs (list library/0 library/1)))]
                    (unit.coverage [/.import]
                      (and (|> it/0
@@ -133,7 +133,7 @@
              (in (do [! async.monad]
                    [it (do (try.with !)
                          [.let [fs (file.mock /)]
-                          _ (of fs write library/0 library_content)
+                          _ (by fs write library/0 library_content)
                           _ (/.import fs (list library/0 library/0))]
                          (in false))]
                    (unit.coverage [/.duplicate]
@@ -141,17 +141,17 @@
              (in (do [! async.monad]
                    [it/0 (do (try.with !)
                            [.let [fs (file.mock /)]
-                            _ (of fs write library/0 library_content/-0)
+                            _ (by fs write library/0 library_content/-0)
                             _ (/.import fs (list library/0))]
                            (in false))
                     it/1 (do (try.with !)
                            [.let [fs (file.mock /)]
-                            _ (of fs write library/0 library_content/-1)
+                            _ (by fs write library/0 library_content/-1)
                             _ (/.import fs (list library/0))]
                            (in false))
                     it/2 (do (try.with !)
                            [.let [fs (file.mock /)]
-                            _ (of fs write library/0 library_content/-2)
+                            _ (by fs write library/0 library_content/-2)
                             _ (/.import fs (list library/0))]
                            (in false))]
                    (unit.coverage [/.useless_tar_entry]
diff --git a/stdlib/source/test/lux/meta/compiler/reference.lux b/stdlib/source/test/lux/meta/compiler/reference.lux
index b8ef5c4ead..9560aea4ec 100644
--- a/stdlib/source/test/lux/meta/compiler/reference.lux
+++ b/stdlib/source/test/lux/meta/compiler/reference.lux
@@ -76,7 +76,7 @@
                      ))
 
                (_.coverage [/.variable /.self]
-                 (and (of /.equivalence = (/.self) (/.variable (variable.self)))
+                 (and (by /.equivalence = (/.self) (/.variable (variable.self)))
                       (when (/.self)
                         (/.self)
                         true
diff --git a/stdlib/source/test/lux/meta/compiler/target/js.lux b/stdlib/source/test/lux/meta/compiler/target/js.lux
index e3dc361c1a..9132302a7f 100644
--- a/stdlib/source/test/lux/meta/compiler/target/js.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/js.lux
@@ -60,7 +60,7 @@
          (Random Integer)
          (do [! random.monad]
            [negative? random.bit
-            mantissa (of ! each (|>> (i64.and (static.natural (-- (i64.left_shifted (-- ) 1))))
+            mantissa (by ! each (|>> (i64.and (static.natural (-- (i64.left_shifted (-- ) 1))))
                                      .integer)
                          random.natural)]
            (in (if negative?
@@ -162,7 +162,7 @@
 
      i32 ..int_32
      i16 ..int_16
-     shift (of ! each (n.% 16) random.natural)]
+     shift (by ! each (n.% 16) random.natural)]
     (`` (all _.and
              (,, (template.with [ ]
                    [(_.coverage []
@@ -210,8 +210,8 @@
 (the test|array
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+    [size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
      .let [expected (|> items
                         (list.item index)
@@ -235,8 +235,8 @@
      dummy (random.only (|>> (text.= field) not)
                         (random.upper_cased 5))
 
-     size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+     size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)]
     (all _.and
          (_.coverage [/.object /.its]
@@ -361,7 +361,7 @@
   (do [! random.monad]
     [number/0 random.unit_decimal
      int/0 ..int_16
-     $foreign (of ! each /.var (random.lower_cased 10))
+     $foreign (by ! each /.var (random.lower_cased 10))
      field (random.upper_cased 10)]
     (all _.and
          (_.coverage [/.set]
@@ -452,12 +452,12 @@
   (do [! random.monad]
     [input ..int_16
      
-     full_inner_iterations (of ! each (|>> (n.% 20) ++) random.natural)
-     expected_inner_iterations (of ! each (n.% full_inner_iterations) random.natural)
+     full_inner_iterations (by ! each (|>> (n.% 20) ++) random.natural)
+     expected_inner_iterations (by ! each (n.% full_inner_iterations) random.natural)
 
-     @outer (of ! each /.label (random.upper_cased 5))
-     full_outer_iterations (of ! each (|>> (n.% 10) ++) random.natural)
-     expected_outer_iterations (of ! each (n.% full_outer_iterations) random.natural)
+     @outer (by ! each /.label (random.upper_cased 5))
+     full_outer_iterations (by ! each (|>> (n.% 10) ++) random.natural)
+     expected_outer_iterations (by ! each (n.% full_outer_iterations) random.natural)
 
      .let [$input (/.var "input")
            $output (/.var "output")
@@ -558,7 +558,7 @@
   Test
   (do [! random.monad]
     [input ..int_16
-     iterations (of ! each (n.% 10) random.natural)
+     iterations (by ! each (n.% 10) random.natural)
      .let [$input (/.var "input")
            $output (/.var "output")
            $index (/.var "index")
@@ -612,7 +612,7 @@
     [expected random.unit_decimal
      dummy (random.only (|>> (d.= expected) not)
                         random.unit_decimal)
-     $ex (of ! each /.var (random.lower_cased 10))]
+     $ex (by ! each /.var (random.lower_cased 10))]
     (all _.and
          (_.coverage [/.try]
            (expression (|>> (as Decimal) (d.= expected))
@@ -636,9 +636,9 @@
     [number/0 random.unit_decimal
      number/1 random.unit_decimal
      number/2 random.unit_decimal
-     $arg/0 (of ! each /.var (random.lower_cased 10))
-     $arg/1 (of ! each /.var (random.lower_cased 11))
-     $arg/2 (of ! each /.var (random.lower_cased 12))]
+     $arg/0 (by ! each /.var (random.lower_cased 10))
+     $arg/1 (by ! each /.var (random.lower_cased 11))
+     $arg/2 (by ! each /.var (random.lower_cased 12))]
     (`` (all _.and
              (_.coverage [/.apply_1]
                (expression (|>> (as Decimal) (d.= number/0))
@@ -667,11 +667,11 @@
   Test
   (do [! random.monad]
     [number/0 random.unit_decimal
-     iterations (of ! each (n.% 10) random.natural)
-     $self (of ! each /.var (random.lower_cased 1))
-     $arg/0 (of ! each /.var (random.lower_cased 2))
+     iterations (by ! each (n.% 10) random.natural)
+     $self (by ! each /.var (random.lower_cased 1))
+     $arg/0 (by ! each /.var (random.lower_cased 2))
      field (random.lower_cased 3)
-     $class (of ! each /.var (random.upper_cased 4))]
+     $class (by ! each /.var (random.upper_cased 4))]
     (all _.and
          (_.coverage [/.closure /.return]
            (expression (|>> (as Decimal) (d.= number/0))
@@ -773,9 +773,9 @@
     [number/0 random.unit_decimal
      number/1 random.unit_decimal
      number/2 random.unit_decimal
-     $arg/0 (of ! each /.var (random.lower_cased 10))
-     $arg/1 (of ! each /.var (random.lower_cased 11))
-     $arg/2 (of ! each /.var (random.lower_cased 12))
+     $arg/0 (by ! each /.var (random.lower_cased 10))
+     $arg/1 (by ! each /.var (random.lower_cased 11))
+     $arg/2 (by ! each /.var (random.lower_cased 12))
      ??? random.bit
      int ..int_16]
     (`` (all _.and
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm.lux b/stdlib/source/test/lux/meta/compiler/target/jvm.lux
index 3f21e3ba9e..3cc42cb9cf 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm.lux
@@ -209,7 +209,7 @@
   (/.invokestatic ..$Byte "valueOf" (type.method [(list) (list type.byte) ..$Byte (list)])))
 (the $Byte::random
   (Random java/lang/Byte)
-  (of random.monad each (|>> (as java/lang/Long) ffi.long_to_byte) random.integer))
+  (by random.monad each (|>> (as java/lang/Long) ffi.long_to_byte) random.integer))
 (the $Byte::literal
   (-> java/lang/Byte (Bytecode Any))
   (|>> ffi.byte_to_long (as I64) i32.i32 /.int))
@@ -227,7 +227,7 @@
   (/.invokestatic ..$Short "valueOf" (type.method [(list) (list type.short) ..$Short (list)])))
 (the $Short::random
   (Random java/lang/Short)
-  (of random.monad each (|>> (as java/lang/Long) ffi.long_to_short) random.integer))
+  (by random.monad each (|>> (as java/lang/Long) ffi.long_to_short) random.integer))
 (the $Short::literal
   (-> java/lang/Short (Bytecode Any))
   (|>> ffi.short_to_long (as I64) i32.i32 /.int))
@@ -245,7 +245,7 @@
   (/.invokestatic ..$Integer "valueOf" (type.method [(list) (list type.int) ..$Integer (list)])))
 (the $Integer::random
   (Random java/lang/Integer)
-  (of random.monad each (|>> (as java/lang/Long) ffi.long_to_int) random.integer))
+  (by random.monad each (|>> (as java/lang/Long) ffi.long_to_int) random.integer))
 (the $Integer::literal
   (-> java/lang/Integer (Bytecode Any))
   (|>> ffi.int_to_long (as I64) i32.i32 /.int))
@@ -273,7 +273,7 @@
 (the $Float::wrap (/.invokestatic ..$Float "valueOf" (type.method [(list) (list type.float) ..$Float (list)])))
 (the $Float::random
   (Random java/lang/Float)
-  (of random.monad each
+  (by random.monad each
       (|>> (as java/lang/Double) ffi.double_to_float)
       random.decimal))
 (the valid_float
@@ -312,7 +312,7 @@
   (/.invokestatic ..$Character "valueOf" (type.method [(list) (list type.char) ..$Character (list)])))
 (the $Character::random
   (Random java/lang/Character)
-  (of random.monad each (|>> (as java/lang/Long) ffi.long_to_int ffi.int_to_char) random.integer))
+  (by random.monad each (|>> (as java/lang/Long) ffi.long_to_int ffi.int_to_char) random.integer))
 (the $Character::literal
   (-> java/lang/Character (Bytecode Any))
   (|>> ffi.char_to_long (as I64) i32.i32 /.int))
@@ -355,7 +355,7 @@
   [(the 
      Test
      (do [! random.monad]
-       [expected (of ! each (i64.and (i64.mask )) random.natural)]
+       [expected (by ! each (i64.and (i64.mask )) random.natural)]
        (<| (..coverage [])
            (..bytecode (|>> (as )  .jvm_object_cast# (.jvm_long_=# (.jvm_object_cast# (as java/lang/Long expected)))))
            (do /.monad
@@ -420,7 +420,7 @@
         shift (is (-> (-> java/lang/Integer java/lang/Integer java/lang/Integer) (Bytecode Any) (Random Bit))
                   (function (_ reference instruction)
                     (do [! random.monad]
-                      [parameter (of ! each (|>> (n.% 32) .integer (as java/lang/Long) ffi.long_to_int) random.natural)
+                      [parameter (by ! each (|>> (n.% 32) .integer (as java/lang/Long) ffi.long_to_int) random.natural)
                        subject ..$Integer::random]
                       (int (reference parameter subject)
                            (do /.monad
@@ -492,7 +492,7 @@
         shift (is (-> (-> java/lang/Integer java/lang/Long java/lang/Long) (Bytecode Any) (Random Bit))
                   (function (_ reference instruction)
                     (do [! random.monad]
-                      [parameter (of ! each (|>> (n.% 64) (as java/lang/Long)) random.natural)
+                      [parameter (by ! each (|>> (n.% 64) (as java/lang/Long)) random.natural)
                        subject ..$Long::random]
                       (long (reference (ffi.long_to_int parameter) subject)
                             (do /.monad
@@ -923,7 +923,7 @@
                         (Random Bit)))
                   (function (_ constructor random literal [*store *load *wrap] test)
                     (do [! random.monad]
-                      [size (of ! each (|>> (n.% 1024) (n.max 1)) random.natural)
+                      [size (by ! each (|>> (n.% 1024) (n.max 1)) random.natural)
                        value random
                        length! (length size constructor)
                        write_and_read! (write_and_read size constructor value literal [*store *load *wrap] test)]
@@ -970,7 +970,7 @@
          (<| (_.context "multi")
              (do [! random.monad]
                [.let [size (is (Random Natural)
-                               (of ! each (|>> (n.% 5) (n.+ 1))
+                               (by ! each (|>> (n.% 5) (n.+ 1))
                                    random.natural))]
                 dimensions size
                 sizesH size
@@ -1061,7 +1061,7 @@
                            (function (_ random_value literal *wrap [store load] test)
                              (do [! random.monad]
                                [expected random_value
-                                register (of ! each (n.% 128) random.natural)]
+                                register (by ! each (n.% 128) random.natural)]
                                (<| (..bytecode (test expected))
                                    (do /.monad
                                      [_ (literal expected)
@@ -1084,7 +1084,7 @@
                 (..coverage [/.iinc]
                   (do [! random.monad]
                     [base ..$Byte::random
-                     increment (of ! each (|>> (n.% 100) unsigned.u1 try.trusted)
+                     increment (by ! each (|>> (n.% 100) unsigned.u1 try.trusted)
                                    random.natural)
                      .let [expected (is java/lang/Long
                                         (.jvm_object_cast#
@@ -1457,9 +1457,9 @@
            (do [! random.monad]
              [expected ..$Long::random
               dummy ..$Long::random
-              minimum (of ! each (|>> (n.% 100) .integer signed.s4 try.trusted)
+              minimum (by ! each (|>> (n.% 100) .integer signed.s4 try.trusted)
                           random.natural)
-              afterwards (of ! each (n.% 10) random.natural)])
+              afterwards (by ! each (n.% 10) random.natural)])
            (..bytecode ((!::= java/lang/Long .jvm_long_=#) expected))
            (do /.monad
              [@right /.new_label
@@ -1476,13 +1476,13 @@
              ..$Long::wrap))
        (<| (..coverage [/.lookupswitch])
            (do [! random.monad]
-             [options (of ! each (|>> (n.% 10) (n.+ 1))
+             [options (by ! each (|>> (n.% 10) (n.+ 1))
                           random.natural)
-              choice (of ! each (n.% options) random.natural)
+              choice (by ! each (n.% options) random.natural)
               options (|> random.integer
-                          (of ! each (|>> (as java/lang/Long) ffi.long_to_int ffi.int_to_long (as Integer)))
+                          (by ! each (|>> (as java/lang/Long) ffi.long_to_int ffi.int_to_long (as Integer)))
                           (random.set i.hash options)
-                          (of ! each set.list))
+                          (by ! each set.list))
               .let [choice (maybe.trusted (list.item choice options))]
               expected ..$Long::random
               dummy ..$Long::random])
@@ -1707,7 +1707,7 @@
              [environment (environment.static method)
               [pool [_ _ _ _ reference]] ((/.resolve environment reference) pool.empty)
               [pool [_ _ _ _ it]] ((/.resolve environment it) pool)]
-             (in (of super = reference it))))))))
+             (in (by super = reference it))))))))
 
 (the .public test
   Test
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
index 69bfc24b75..135ccec363 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux
@@ -5,24 +5,80 @@
  [library
   [lux (.except)
    [abstract
-    [monad (.only do)]]
+    [monad (.only do)]
+    ["[0]" equivalence
+     ["[1]T" \\test]]]
+   [control
+    ["[0]" try]]
+   [data
+    ["[0]" bit]
+    ["[0]" text]
+    ["[0]" binary (.only)
+     ["![1]" \\injection]]]
    [math
-    ["[0]" random]]
+    ["[0]" random]
+    [number
+     ["n" natural]]]
+   [meta
+    ["[0]" static]]
    [test
     ["_" property (.only Test)]]]]
  [\\library
-  ["[0]" /]]
- ["[0]" /
-  ["[1][0]" frame]])
+  ["[0]" / (.only)
+   ["[0]" frame (.only)
+    ["[2][1]" \\test]]]])
 
 (the .public test
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [])
+        [before /.random
+         datum frame.random])
+      (_.for [/.Stack /.random])
       (all _.and
-           ... (_.coverage []
-           ...   false)
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence /.random)))
+           
+           (_.coverage [/.empty /.catch]
+             (not (/.= /.empty /.catch)))
+           (_.coverage [/.push /.pop]
+             (<| (try.else false)
+                 (do try.monad
+                   [stack (/.push datum before)
+                    .let [push_matters!
+                          (not (/.= before stack))]
+                    stack (/.pop datum stack)
+                    .let [pop_matters!
+                          (/.= before stack)]]
+                   (in (and push_matters!
+                            pop_matters!)))))
+           (_.coverage [/.max]
+             (<| (try.else false)
+                 (do try.monad
+                   [after (/.push datum before)]
+                   (in (same? after (/.max after before))))))
+           (do [! random.monad]
+             [sample_0 /.random
+              sample_1 /.random]
+             (_.coverage [/.as_binary]
+               (bit.= (/.= sample_0
+                           sample_1)
+                      (binary.= (!binary.value /.as_binary sample_0)
+                                (!binary.value /.as_binary sample_1)))))
+           (do [! random.monad]
+             [sample_0 /.random]
+             (_.coverage [/.length]
+               (n.= /.length
+                    (binary.size (!binary.value /.as_binary sample_0)))))
+           (do [! random.monad]
+             [sample_0 /.random
+              sample_1 /.random]
+             (_.coverage [/.as_text]
+               (bit.= (/.= sample_0
+                           sample_1)
+                      (text.= (/.as_text sample_0)
+                              (/.as_text sample_1)))))
 
            /frame.test
            )))
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack/frame.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack/frame.lux
index af28c53b70..65d8489fc1 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack/frame.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack/frame.lux
@@ -28,7 +28,7 @@
                   (static.when (same? /.equivalence /.=)
                     (equivalenceT.spec /.equivalence /.random)))
            
-           (_.coverage [/.small /.double]
+           (_.coverage [/.small /.big]
              (and (/.= /.small /.small)
                   (/.= /.big /.big)
                   (not (/.= /.small /.big))))
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/constant/tag.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/constant/tag.lux
index 1741d9557e..54839c0229 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/constant/tag.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/constant/tag.lux
@@ -56,7 +56,7 @@
            (let [options (list ,tags)]
              (random.try
               (do [! random.monad]
-                [choice (of ! each (n.% (list.size options))
+                [choice (by ! each (n.% (list.size options))
                             random.natural)]
                 (in (list.item choice options))))))
 
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/signed.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/signed.lux
index f9d41e4fc8..b0c7029a61 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/signed.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/signed.lux
@@ -72,7 +72,7 @@
            (<| (_.for [/.S1])
                (all _.and
                     (_.coverage [/.minimum/1 /.maximum/1]
-                      (of /.order < /.maximum/1 /.minimum/1))
+                      (by /.order < /.maximum/1 /.minimum/1))
                     (_.coverage [/.s1 /.value]
                       (|> expected_s1
                           /.value
@@ -96,7 +96,7 @@
            (<| (_.for [/.S2])
                (all _.and
                     (_.coverage [/.minimum/2 /.maximum/2]
-                      (of /.order < /.maximum/2 /.minimum/2))
+                      (by /.order < /.maximum/2 /.minimum/2))
                     (_.coverage [/.s2 /.value]
                       (|> expected_s2
                           /.value
@@ -120,7 +120,7 @@
            (<| (_.for [/.S4])
                (all _.and
                     (_.coverage [/.minimum/4 /.maximum/4]
-                      (of /.order < /.maximum/4 /.minimum/4))
+                      (by /.order < /.maximum/4 /.minimum/4))
                     (_.coverage [/.s4 /.value]
                       (|> expected_s4
                           /.value
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/unsigned.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/unsigned.lux
index 9db6ec331a..21307b4c40 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/unsigned.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/encoding/unsigned.lux
@@ -75,7 +75,7 @@
            (<| (_.for [/.U1])
                (all _.and
                     (_.coverage [/.maximum/1]
-                      (or (of /.order < /.maximum/1 expected_u1)
+                      (or (by /.order < /.maximum/1 expected_u1)
                           (/.= /.maximum/1 expected_u1)))
                     (_.coverage [/.u1 /.value]
                       (|> expected_u1
@@ -104,7 +104,7 @@
            (<| (_.for [/.U2])
                (all _.and
                     (_.coverage [/.maximum/2]
-                      (or (of /.order < /.maximum/2 expected_u2)
+                      (or (by /.order < /.maximum/2 expected_u2)
                           (/.= /.maximum/2 expected_u2)))
                     (_.coverage [/.u2 /.value]
                       (|> expected_u2
@@ -133,7 +133,7 @@
            (<| (_.for [/.U4])
                (all _.and
                     (_.coverage [/.maximum/4]
-                      (or (of /.order < /.maximum/4 expected_u4)
+                      (or (by /.order < /.maximum/4 expected_u4)
                           (/.= /.maximum/4 expected_u4)))
                     (_.coverage [/.u4 /.value]
                       (|> expected_u4
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/type.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/type.lux
index 5233dbcddf..c9cdaa1f14 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/type.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/type.lux
@@ -88,7 +88,7 @@
              (let [boxes (list ,*boxes)
                    boxes_amount (list.size boxes)]
                (do [! random.monad]
-                 [choice (of ! each (n.% boxes_amount) random.natural)
+                 [choice (by ! each (n.% boxes_amount) random.natural)
                   choice (random.try (in (list.item choice boxes)))]
                  (in (/.class (list) choice)))))
            (the .public random
@@ -101,7 +101,7 @@
                    boxes_amount (list.size boxes)]
                (all random.either
                     (do [! random.monad]
-                      [choice (of ! each (n.% primitives_amount) random.natural)]
+                      [choice (by ! each (n.% primitives_amount) random.natural)]
                       (random.try (in (list.item choice primitives))))
                     ..random_class))))
     (the .public test
@@ -143,7 +143,7 @@
                                     (list#each (|>> (/.declaration (list)) /.as_class) (list ,*boxes)))
                        actual (is (List /.Class)
                                   (list#each (/.class (list)) (list ,*boxes)))]
-                   (of (list.equivalence /.equivalence) =
+                   (by (list.equivalence /.equivalence) =
                        expected
                        actual)))
                (<| (_.for [/.Return])
@@ -209,7 +209,7 @@
                                                                  (set.size uniques)))
                                                           (let [single (list#each (|>> (/.class (list)) /.array) (list ,*boxes))
                                                                 double (list#each /.array single)]
-                                                            (not (of (list.equivalence /.equivalence) =
+                                                            (not (by (list.equivalence /.equivalence) =
                                                                      single
                                                                      double)))))))
                                           ))))))
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/type/descriptor.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/type/descriptor.lux
index 58406ff454..4c11916911 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/type/descriptor.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/type/descriptor.lux
@@ -67,10 +67,10 @@
                    boxes_amount (list.size boxes)]
                (all random.either
                     (do [! random.monad]
-                      [choice (of ! each (n.% primitives_amount) random.natural)]
+                      [choice (by ! each (n.% primitives_amount) random.natural)]
                       (random.try (in (list.item choice primitives))))
                     (do [! random.monad]
-                      [choice (of ! each (n.% boxes_amount) random.natural)
+                      [choice (by ! each (n.% boxes_amount) random.natural)
                        choice (random.try (in (list.item choice boxes)))]
                       (in (/.class choice)))))))
     (the .public test
@@ -133,7 +133,7 @@
                                     (list#each (|>> /.declaration /.as_class) (list ,*boxes)))
                        actual (is (List (/.Descriptor category.Class))
                                   (list#each /.class (list ,*boxes)))]
-                   (of (list.equivalence /.equivalence) =
+                   (by (list.equivalence /.equivalence) =
                        expected
                        actual)))
                (_.coverage [/.lower]
@@ -156,7 +156,7 @@
                              (set.size uniques)))
                       (let [single (list#each (|>> /.class /.array) (list ,*boxes))
                             double (list#each /.array single)]
-                        (not (of (list.equivalence /.equivalence) =
+                        (not (by (list.equivalence /.equivalence) =
                                  single
                                  double)))))
                (_.coverage [/.array_prefix]
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/type/projection.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/type/projection.lux
index 5d0f94db68..700f20e31d 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/type/projection.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/type/projection.lux
@@ -141,7 +141,7 @@
                       (_.coverage [/.read_class]
                         (let [[[actual_parameters] actual_class] (/.read_class type)]
                           (and (text.= expected_class actual_class)
-                               (of (list.equivalence //.=) = (list parameter) actual_parameters))))
+                               (by (list.equivalence //.=) = (list parameter) actual_parameters))))
                       (_.coverage [/.class?]
                         (|> type
                             /.class?
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/type/reflection.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/type/reflection.lux
index 454c178dd6..314821a66c 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/type/reflection.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/type/reflection.lux
@@ -64,10 +64,10 @@
                    boxes_amount (list.size boxes)]
                (all random.either
                     (do [! random.monad]
-                      [choice (of ! each (n.% primitives_amount) random.natural)]
+                      [choice (by ! each (n.% primitives_amount) random.natural)]
                       (random.try (in (list.item choice primitives))))
                     (do [! random.monad]
-                      [choice (of ! each (n.% boxes_amount) random.natural)
+                      [choice (by ! each (n.% boxes_amount) random.natural)
                        choice (random.try (in (list.item choice boxes)))]
                       (in (/.class choice)))))))
     (the .public test
@@ -119,7 +119,7 @@
                                     (list#each (|>> /.declaration /.as_class) (list ,*boxes)))
                        actual (is (List (/.Reflection category.Class))
                                   (list#each /.class (list ,*boxes)))]
-                   (of (list.equivalence /.equivalence) =
+                   (by (list.equivalence /.equivalence) =
                        expected
                        actual)))
                (_.coverage [/.lower]
@@ -142,7 +142,7 @@
                              (set.size uniques)))
                       (let [single (list#each (|>> /.class /.array) (list ,*boxes))
                             double (list#each /.array single)]
-                        (not (of (list.equivalence /.equivalence) =
+                        (not (by (list.equivalence /.equivalence) =
                                  single
                                  double)))))
                ))))
diff --git a/stdlib/source/test/lux/meta/compiler/target/jvm/type/signature.lux b/stdlib/source/test/lux/meta/compiler/target/jvm/type/signature.lux
index 6dec18fa66..26cd6efad5 100644
--- a/stdlib/source/test/lux/meta/compiler/target/jvm/type/signature.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/jvm/type/signature.lux
@@ -62,10 +62,10 @@
                    boxes_amount (list.size boxes)]
                (all random.either
                     (do [! random.monad]
-                      [choice (of ! each (n.% primitives_amount) random.natural)]
+                      [choice (by ! each (n.% primitives_amount) random.natural)]
                       (random.try (in (list.item choice primitives))))
                     (do [! random.monad]
-                      [choice (of ! each (n.% boxes_amount) random.natural)
+                      [choice (by ! each (n.% boxes_amount) random.natural)
                        choice (random.try (in (list.item choice boxes)))]
                       (in (/.class (list) choice)))))))
     (the .public test
@@ -116,7 +116,7 @@
                                     (list#each (|>> (/.declaration (list)) /.as_class) (list ,*boxes)))
                        actual (is (List (/.Signature category.Class))
                                   (list#each (/.class (list)) (list ,*boxes)))]
-                   (of (list.equivalence /.equivalence) =
+                   (by (list.equivalence /.equivalence) =
                        expected
                        actual)))
                (_.coverage [/.lower]
@@ -140,7 +140,7 @@
                              (set.size uniques)))
                       (let [single (list#each (|>> (/.class (list)) /.array) (list ,*boxes))
                             double (list#each /.array single)]
-                        (not (of (list.equivalence /.equivalence) =
+                        (not (by (list.equivalence /.equivalence) =
                                  single
                                  double)))))
                
diff --git a/stdlib/source/test/lux/meta/compiler/target/lua.lux b/stdlib/source/test/lux/meta/compiler/target/lua.lux
index 6f327bc456..fa7c6c9571 100644
--- a/stdlib/source/test/lux/meta/compiler/target/lua.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/lua.lux
@@ -114,7 +114,7 @@
   (do [! random.monad]
     [left random.integer
      right random.integer
-     shift (of ! each (n.% 65) random.natural)
+     shift (by ! each (n.% 65) random.natural)
 
      parameter (random.only (|>> (i.= +0) not)
                             random.integer)
@@ -202,8 +202,8 @@
 (the test|array
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+    [size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
      .let [expected (|> items
                         (list.item index)
@@ -229,13 +229,13 @@
      dummy (random.only (|>> (d.= expected) not)
                         random.unit_decimal)
 
-     size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+     size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
 
-     $self (of ! each /.var (random.lower_cased 10))
-     $table (of ! each /.var (random.lower_cased 11))
-     $arg (of ! each /.var (random.lower_cased 12))
+     $self (by ! each /.var (random.lower_cased 10))
+     $table (by ! each /.var (random.lower_cased 11))
+     $arg (by ! each /.var (random.lower_cased 12))
      field (random.upper_cased 5)
      non_field (random.only (|>> (text.= field) not)
                             (random.upper_cased 5))
@@ -366,9 +366,9 @@
     [float/0 random.unit_decimal
      float/1 random.unit_decimal
      int/0 ..int_16
-     $foreign (of ! each /.var (random.lower_cased 10))
-     $arg/0 (of ! each /.var (random.lower_cased 11))
-     $arg/1 (of ! each /.var (random.lower_cased 12))
+     $foreign (by ! each /.var (random.lower_cased 10))
+     $arg/0 (by ! each /.var (random.lower_cased 11))
+     $arg/1 (by ! each /.var (random.lower_cased 12))
      field (random.upper_cased 10)]
     (all _.and
          (_.coverage [/.set]
@@ -417,14 +417,14 @@
   (do [! random.monad]
     [input ..int_16
 
-     full_iterations (of ! each (|>> (n.% 20) ++) random.natural)
-     expected_iterations (of ! each (|>> (n.% full_iterations) .integer) random.natural)
+     full_iterations (by ! each (|>> (n.% 20) ++) random.natural)
+     expected_iterations (by ! each (|>> (n.% full_iterations) .integer) random.natural)
 
-     $input (of ! each /.var (random.lower_cased 10))
-     $output (of ! each /.var (random.lower_cased 11))
-     $index (of ! each /.var (random.lower_cased 12))
+     $input (by ! each /.var (random.lower_cased 10))
+     $output (by ! each /.var (random.lower_cased 11))
+     $index (by ! each /.var (random.lower_cased 12))
 
-     @loop (of ! each /.label (random.lower_cased 13))
+     @loop (by ! each /.label (random.lower_cased 13))
      
      .let [expected (i.* expected_iterations input)
            expected_iterations (/.int expected_iterations)]]
@@ -506,7 +506,7 @@
   Test
   (do [! random.monad]
     [input ..int_16
-     iterations (of ! each (n.% 10) random.natural)
+     iterations (by ! each (n.% 10) random.natural)
      .let [$input (/.var "input")
            $output (/.var "output")
            $index (/.var "index")
@@ -566,8 +566,8 @@
     [expected random.unit_decimal
      dummy (random.only (|>> (d.= expected) not)
                         random.unit_decimal)
-     $verdict (of ! each /.var (random.lower_cased 10))
-     $outcome (of ! each /.var (random.lower_cased 11))]
+     $verdict (by ! each /.var (random.lower_cased 10))
+     $outcome (by ! each /.var (random.lower_cased 11))]
     (all _.and
          (_.coverage [/.pcall/1]
            (expression (|>> (as Decimal) (d.= expected))
@@ -609,11 +609,11 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     iterations (of ! each (n.% 10) random.natural)
-     $self (of ! each /.var (random.lower_cased 1))
-     $arg/0 (of ! each /.var (random.lower_cased 2))
+     iterations (by ! each (n.% 10) random.natural)
+     $self (by ! each /.var (random.lower_cased 1))
+     $arg/0 (by ! each /.var (random.lower_cased 2))
      field (random.lower_cased 3)
-     $class (of ! each /.var (random.upper_cased 4))]
+     $class (by ! each /.var (random.upper_cased 4))]
     (all _.and
          (_.coverage [/.closure /.return]
            (expression (|>> (as Decimal) (d.= float/0))
@@ -633,9 +633,9 @@
            [float/0 random.unit_decimal
             float/1 random.unit_decimal
             float/2 random.unit_decimal
-            $arg/0 (of ! each /.var (random.lower_cased 10))
-            $arg/1 (of ! each /.var (random.lower_cased 11))
-            $arg/2 (of ! each /.var (random.lower_cased 12))]
+            $arg/0 (by ! each /.var (random.lower_cased 10))
+            $arg/1 (by ! each /.var (random.lower_cased 11))
+            $arg/2 (by ! each /.var (random.lower_cased 12))]
            (`` (all _.and
                     (_.coverage [/.apply]
                       (expression (|>> (as Decimal) (d.= (all d.+ float/0 float/1 float/2)))
@@ -691,8 +691,8 @@
   (do [! random.monad]
     [float/0 random.unit_decimal
      float/1 random.unit_decimal
-     $arg/0 (of ! each /.var (random.lower_cased 10))
-     $arg/1 (of ! each /.var (random.lower_cased 11))]
+     $arg/0 (by ! each /.var (random.lower_cased 10))
+     $arg/1 (by ! each /.var (random.lower_cased 11))]
     (`` (all _.and
              (_.coverage [/.; /.then /.print/1]
                (expression (|>> (as Decimal) (d.= float/0))
@@ -709,7 +709,7 @@
   Test
   (do [! random.monad]
     [.let [random (is (Random (/.Code Any))
-                      (of ! each /.int random.integer))]
+                      (by ! each /.int random.integer))]
      expected random.integer]
     (<| (_.covering /._)
         (_.for [/.Code /.code])
diff --git a/stdlib/source/test/lux/meta/compiler/target/python.lux b/stdlib/source/test/lux/meta/compiler/target/python.lux
index b6359cefa4..16c05b863f 100644
--- a/stdlib/source/test/lux/meta/compiler/target/python.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/python.lux
@@ -164,8 +164,8 @@
     [left random.integer
      right random.integer
 
-     i16 (of ! each ..int_16 random.integer)
-     shift (of ! each (n.% 16) random.natural)]
+     i16 (by ! each ..int_16 random.integer)
+     shift (by ! each (n.% 16) random.natural)]
     (`` (all _.and
              (,, (template.with [ ]
                    [(_.coverage []
@@ -216,7 +216,7 @@
 (the test|text
   Test
   (do [! random.monad]
-    [expected_code (of ! each (n.% 128) random.natural)
+    [expected_code (by ! each (n.% 128) random.natural)
      .let [expected_char (text.of_character expected_code)]]
     (all _.and
          (_.coverage [/.chr/1 /.ord/1
@@ -234,14 +234,14 @@
 (the test|array
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+    [size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
      .let [expected (|> items
                         (list.item index)
                         (try.else d.not_a_number))]
-     from (of ! each (n.% size) random.natural)
-     plus (of ! each (n.% (n.- from size)) random.natural)
+     from (by ! each (n.% size) random.natural)
+     plus (by ! each (n.% (n.- from size)) random.natural)
      .let [slice_from|size (n.- from size)
            to (/.int (.integer (n.+ plus from)))
            from (/.int (.integer from))]]
@@ -300,8 +300,8 @@
      string (random.upper_cased 5)
 
      comment (random.upper_cased 10)
-     $arg/0 (of ! each /.var (random.lower_cased 10))
-     $arg/1 (of ! each /.var (random.lower_cased 11))]
+     $arg/0 (by ! each /.var (random.lower_cased 10))
+     $arg/1 (by ! each /.var (random.lower_cased 11))]
     (all _.and
          ..test|bool
          ..test|float
@@ -344,9 +344,9 @@
     [float/0 random.unit_decimal
      float/1 random.unit_decimal
      float/2 random.unit_decimal
-     $arg/0 (of ! each /.var (random.lower_cased 10))
-     $arg/1 (of ! each /.var (random.lower_cased 11))
-     $arg/2 (of ! each /.var (random.lower_cased 12))]
+     $arg/0 (by ! each /.var (random.lower_cased 10))
+     $arg/1 (by ! each /.var (random.lower_cased 11))
+     $arg/2 (by ! each /.var (random.lower_cased 12))]
     (all _.and
          (_.coverage [/.lambda]
            (expression (|>> (as Decimal) (d.= float/0))
@@ -365,7 +365,7 @@
   (do [! random.monad]
     [expected/0 random.unit_decimal
      expected/1 random.unit_decimal
-     poly_choice (of ! each (n.% 2) random.natural)
+     poly_choice (by ! each (n.% 2) random.natural)
      .let [keyword (|>> %.natural (%.message "k") /.string)
            keyword/0 (keyword 0)
            keyword/1 (keyword 1)
@@ -373,8 +373,8 @@
      .let [expected/? (when poly_choice
                         0 expected/0
                         _ expected/1)]
-     $var (of ! each (|>> %.natural (%.message "v") /.var) random.natural)
-     $choice (of ! each (|>> %.natural (%.message "c") /.var) random.natural)]
+     $var (by ! each (|>> %.natural (%.message "v") /.var) random.natural)
+     $choice (by ! each (|>> %.natural (%.message "c") /.var) random.natural)]
     (all _.and
          (_.coverage [/.SVar /.var]
            (expression (|>> (as Decimal) (d.= expected/0))
@@ -452,10 +452,10 @@
 (the test|access
   Test
   (do [! random.monad]
-    [$var/0 (of ! each (|>> %.natural (%.message "v0_") /.var) random.natural)
+    [$var/0 (by ! each (|>> %.natural (%.message "v0_") /.var) random.natural)
      expected/0 random.unit_decimal
      dummy/0 random.unit_decimal
-     field (of ! each /.string (random.upper_cased 1))]
+     field (by ! each /.string (random.upper_cased 1))]
     (all _.and
          (_.coverage [/.item]
            (`` (and (,, (template.with []
@@ -490,13 +490,13 @@
 (the test|location
   Test
   (do [! random.monad]
-    [$var/0 (of ! each (|>> %.natural (%.message "v0_") /.var) random.natural)
-     $var/1 (of ! each (|>> %.natural (%.message "v1_") /.var) random.natural)
-     $def (of ! each (|>> %.natural (%.message "def_") /.var) random.natural)
+    [$var/0 (by ! each (|>> %.natural (%.message "v0_") /.var) random.natural)
+     $var/1 (by ! each (|>> %.natural (%.message "v1_") /.var) random.natural)
+     $def (by ! each (|>> %.natural (%.message "def_") /.var) random.natural)
      expected/0 random.unit_decimal
      expected/1 random.unit_decimal
      dummy/0 random.unit_decimal
-     field/0 (of ! each /.string (random.upper_cased 1))]
+     field/0 (by ! each /.string (random.upper_cased 1))]
     (all _.and
          (_.coverage [/.set]
            (|> (..statement
@@ -605,7 +605,7 @@
      expected random.unit_decimal
      dummy (random.only (|>> (d.= expected) not)
                         random.unit_decimal)
-     $ex (of ! each (|>> %.natural (%.message "ex_") /.var) random.natural)]
+     $ex (by ! each (|>> %.natural (%.message "ex_") /.var) random.natural)]
     (all _.and
          (_.coverage [/.raise /.Exception/1]
            (when (try (..statement
@@ -647,12 +647,12 @@
 (the test|loop
   Test
   (do [! random.monad]
-    [base (of ! each (n.% 100) random.natural)
-     factor (of ! each (|>> (n.% 10) ++) random.natural)
-     extra (of ! each (|>> (n.% 10) ++) random.natural)
+    [base (by ! each (n.% 100) random.natural)
+     factor (by ! each (|>> (n.% 10) ++) random.natural)
+     extra (by ! each (|>> (n.% 10) ++) random.natural)
      .let [expected (n.* factor base)]
-     $iteration (of ! each (|>> %.natural (%.message "iteration_") /.var) random.natural)
-     $temp (of ! each (|>> %.natural (%.message "temp_") /.var) random.natural)]
+     $iteration (by ! each (|>> %.natural (%.message "iteration_") /.var) random.natural)
+     $temp (by ! each (|>> %.natural (%.message "temp_") /.var) random.natural)]
     (all _.and
          (_.coverage [/.while]
            (and (|> (..statement
@@ -752,8 +752,8 @@
 (the test|statement
   Test
   (do [! random.monad]
-    [$def (of ! each (|>> %.natural (%.message "def_") /.var) random.natural)
-     $input/0 (of ! each (|>> %.natural (%.message "input_") /.var) random.natural)
+    [$def (by ! each (|>> %.natural (%.message "def_") /.var) random.natural)
+     $input/0 (by ! each (|>> %.natural (%.message "input_") /.var) random.natural)
      expected/0 random.unit_decimal
      test random.bit
      then random.unit_decimal
diff --git a/stdlib/source/test/lux/meta/compiler/target/ruby.lux b/stdlib/source/test/lux/meta/compiler/target/ruby.lux
index a24122b120..95fc91440b 100644
--- a/stdlib/source/test/lux/meta/compiler/target/ruby.lux
+++ b/stdlib/source/test/lux/meta/compiler/target/ruby.lux
@@ -154,8 +154,8 @@
     [left random.integer
      right random.integer
 
-     i16 (of ! each ..int_16 random.integer)
-     shift (of ! each (n.% 16) random.natural)]
+     i16 (by ! each ..int_16 random.integer)
+     shift (by ! each (n.% 16) random.natural)]
     (`` (all _.and
              (,, (template.with [ ]
                    [(_.coverage []
@@ -188,14 +188,14 @@
 (the test|array
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+    [size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
      .let [expected (|> items
                         (list.item index)
                         (try.else d.not_a_number))]
-     from (of ! each (n.% size) random.natural)
-     plus (of ! each (n.% (n.- from size)) random.natural)
+     from (by ! each (n.% size) random.natural)
+     plus (by ! each (n.% (n.- from size)) random.natural)
      .let [to (/.int (.integer (n.+ plus from)))
            from (/.int (.integer from))]]
     (all _.and
@@ -236,21 +236,21 @@
 (the test|object
   Test
   (do [! random.monad]
-    [size (of ! each (|>> (n.% 10) ++) random.natural)
-     index (of ! each (n.% size) random.natural)
+    [size (by ! each (|>> (n.% 10) ++) random.natural)
+     index (by ! each (n.% size) random.natural)
      items (random.list size random.unit_decimal)
-     $class (of ! each (|>> %.natural (%.message "class_") /.local)
+     $class (by ! each (|>> %.natural (%.message "class_") /.local)
                 random.natural)
-     $sub_class (of ! each (|>> %.natural (%.message "sub_class_") /.local)
+     $sub_class (by ! each (|>> %.natural (%.message "sub_class_") /.local)
                     random.natural)
-     $method/0 (of ! each (|>> %.natural (%.message "method_") /.local)
+     $method/0 (by ! each (|>> %.natural (%.message "method_") /.local)
                    random.natural)
      $method/1 (|> random.natural
-                   (of ! each (|>> %.natural (%.message "method_") /.local))
+                   (by ! each (|>> %.natural (%.message "method_") /.local))
                    (random.only (|>> (/#= $method/0) not)))
-     $arg/0 (of ! each (|>> %.natural (%.message "arg_") /.local)
+     $arg/0 (by ! each (|>> %.natural (%.message "arg_") /.local)
                 random.natural)
-     $state (of ! each (|>> %.natural (%.message "instance_") /.instance)
+     $state (by ! each (|>> %.natural (%.message "instance_") /.instance)
                 random.natural)
      single random.unit_decimal
      .let [double (/.function $method/0 (list $arg/0)
@@ -338,9 +338,9 @@
   (<| (do [! random.monad]
         [left (random.upper_cased 5)
          right (random.upper_cased 5)
-         $old (of ! each /.local (random.upper_cased 1))
-         $new (of ! each /.local (random.upper_cased 2))
-         $it (of ! each /.local (random.upper_cased 3))
+         $old (by ! each /.local (random.upper_cased 1))
+         $new (by ! each /.local (random.upper_cased 2))
+         $it (by ! each /.local (random.upper_cased 3))
          .let [expected (%.message left right)]])
       (all _.and
            (_.for [/.stdout]
@@ -439,8 +439,8 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     $global (of ! each /.global (random.lower_cased 10))
-     pattern (of ! each /.string (random.lower_cased 11))]
+     $global (by ! each /.global (random.lower_cased 10))
+     pattern (by ! each /.string (random.lower_cased 11))]
     (all _.and
          (_.coverage [/.global]
            (expression (|>> (as Text) (text.= "global-variable"))
@@ -450,7 +450,7 @@
                            [(list)] (/.lambda {.#None})
                            (/.apply_lambda (list)))))
          (_.coverage [/.script_name]
-           (expression (let [file (%.message (of file.default separator) packager.main_file)]
+           (expression (let [file (%.message (by file.default separator) packager.main_file)]
                          (|>> (as Text)
                               (text.ends_with? file)))
                        /.script_name))
@@ -492,7 +492,7 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     $foreign (of ! each /.local (random.lower_cased 10))]
+     $foreign (by ! each /.local (random.lower_cased 10))]
     (all _.and
          (_.coverage [/.local]
            (expression (|>> (as Decimal) (d.= (d.+ float/0 float/0)))
@@ -512,14 +512,14 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     instance (of ! each (|>> %.natural (%.message "instance_"))
+     instance (by ! each (|>> %.natural (%.message "instance_"))
                   random.natural)
      .let [$instance (/.instance instance)]
-     $method (of ! each (|>> %.natural (%.message "method_") /.local)
+     $method (by ! each (|>> %.natural (%.message "method_") /.local)
                  random.natural)
-     $class (of ! each (|>> %.natural (%.message "class_") /.local)
+     $class (by ! each (|>> %.natural (%.message "class_") /.local)
                 random.natural)
-     $object (of ! each (|>> %.natural (%.message "object_") /.local)
+     $object (by ! each (|>> %.natural (%.message "object_") /.local)
                  random.natural)]
     (all _.and
          (_.coverage [/.instance]
@@ -583,15 +583,15 @@
 (the test|static_var
   Test
   (do [! random.monad]
-    [int/0 (of ! each (|>> (n.% 10) ++ .integer)
+    [int/0 (by ! each (|>> (n.% 10) ++ .integer)
                random.natural)
-     $static (of ! each (|>> %.natural (%.message "static_") /.static)
+     $static (by ! each (|>> %.natural (%.message "static_") /.static)
                  random.natural)
-     $arg (of ! each (|>> %.natural /.local)
+     $arg (by ! each (|>> %.natural /.local)
               random.natural)
-     $method (of ! each (|>> %.natural (%.message "method_") /.local)
+     $method (by ! each (|>> %.natural (%.message "method_") /.local)
                  random.natural)
-     $class (of ! each (|>> %.natural (%.message "class_") /.local)
+     $class (by ! each (|>> %.natural (%.message "class_") /.local)
                 random.natural)]
     (all _.and
          (_.coverage [/.static /.class_variable_set /.class_variable_get]
@@ -609,14 +609,14 @@
 (the test|variadic
   Test
   (do [! random.monad]
-    [$inputs (of ! each /.local (random.lower_cased 10))
-     arity (of ! each (n.% 10) random.natural)
+    [$inputs (by ! each /.local (random.lower_cased 10))
+     arity (by ! each (n.% 10) random.natural)
      vals (|> random.integer
-              (of ! each /.int)
+              (by ! each /.int)
               (random.list arity))
      keys (|> (random.lower_cased 1)
               (random.set text.hash arity)
-              (of ! each (|>> set.list (list#each /.string))))]
+              (by ! each (|>> set.list (list#each /.string))))]
     (all _.and
          (<| (_.for [/.LVar*])
              (all _.and
@@ -642,9 +642,9 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     $foreign (of ! each /.local (random.lower_cased 10))
+     $foreign (by ! each /.local (random.lower_cased 10))
 
-     $constant (of ! each /.constant (random.lower_cased 10))]
+     $constant (by ! each /.constant (random.lower_cased 10))]
     (all _.and
          (_.coverage [/.defined?/1]
            (and (expression (|>> (as Bit))
@@ -679,8 +679,8 @@
   Test
   (do [! random.monad]
     [float/0 random.unit_decimal
-     $foreign (of ! each /.local (random.lower_cased 10))
-     field (of ! each /.string (random.upper_cased 10))]
+     $foreign (by ! each /.local (random.lower_cased 10))
+     field (by ! each /.string (random.upper_cased 10))]
     (all _.and
          (<| (_.for [/.Var])
              ..test|var)
@@ -721,13 +721,13 @@
 (the test|label
   Test
   (do [! random.monad]
-    [input (of ! each ..int_16 random.integer)
+    [input (by ! each ..int_16 random.integer)
 
-     full_inner_iterations (of ! each (|>> (n.% 20) ++) random.natural)
-     expected_inner_iterations (of ! each (n.% full_inner_iterations) random.natural)
+     full_inner_iterations (by ! each (|>> (n.% 20) ++) random.natural)
+     expected_inner_iterations (by ! each (n.% full_inner_iterations) random.natural)
 
-     full_outer_iterations (of ! each (|>> (n.% 10) ++) random.natural)
-     expected_outer_iterations (of ! each (n.% full_outer_iterations) random.natural)
+     full_outer_iterations (by ! each (|>> (n.% 10) ++) random.natural)
+     expected_outer_iterations (by ! each (n.% full_outer_iterations) random.natural)
 
      .let [$input (/.local "input")
            $output (/.local "output")
@@ -787,8 +787,8 @@
 (the test|loop
   Test
   (do [! random.monad]
-    [input (of ! each (i.right_shifted 32) random.integer)
-     iterations (of ! each (n.% 10) random.natural)
+    [input (by ! each (i.right_shifted 32) random.integer)
+     iterations (by ! each (n.% 10) random.natural)
      .let [$input (/.local "input")
            $output (/.local "output")
            $index (/.local "index")
@@ -831,7 +831,7 @@
      dummy (random.only (|>> (d.= expected) not)
                         random.unit_decimal)
      error (random.lower_cased 10)
-     $ex (of ! each /.local (random.lower_cased 10))
+     $ex (by ! each /.local (random.lower_cased 10))
 
      expected_tag ..random_tag
      dummy_tag (random.only (|>> (i.= expected_tag) not)
@@ -909,17 +909,17 @@
 (the test|function
   Test
   (do [! random.monad]
-    [iterations (of ! each (n.% 10) random.natural)
-     $self (of ! each /.local (random.lower_cased 1))
+    [iterations (by ! each (n.% 10) random.natural)
+     $self (by ! each /.local (random.lower_cased 1))
      field (random.lower_cased 3)
-     $class (of ! each /.local (random.upper_cased 4))
+     $class (by ! each /.local (random.upper_cased 4))
 
      float/0 random.unit_decimal
      float/1 random.unit_decimal
      float/2 random.unit_decimal
-     $arg/0 (of ! each /.local (random.lower_cased 10))
-     $arg/1 (of ! each /.local (random.lower_cased 11))
-     $arg/2 (of ! each /.local (random.lower_cased 12))]
+     $arg/0 (by ! each /.local (random.lower_cased 10))
+     $arg/1 (by ! each /.local (random.lower_cased 11))
+     $arg/2 (by ! each /.local (random.lower_cased 12))]
     (all _.and
          (_.coverage [/.lambda /.return]
            (and (expression (|>> (as Decimal) (d.= float/0))
@@ -997,10 +997,10 @@
     [float/0 random.unit_decimal
      float/1 random.unit_decimal
      float/2 random.unit_decimal
-     $arg/0 (of ! each /.local (random.lower_cased 10))
-     $arg/1 (of ! each /.local (random.lower_cased 11))
-     $arg/2 (of ! each /.local (random.lower_cased 12))
-     expected (of ! each (|>> %.integer (text.replaced "+" ""))
+     $arg/0 (by ! each /.local (random.lower_cased 10))
+     $arg/1 (by ! each /.local (random.lower_cased 11))
+     $arg/2 (by ! each /.local (random.lower_cased 12))
+     expected (by ! each (|>> %.integer (text.replaced "+" ""))
                   random.integer)]
     (all _.and
          (_.coverage [/.;]
diff --git a/stdlib/source/test/lux/meta/configuration.lux b/stdlib/source/test/lux/meta/configuration.lux
index 16d902be46..1e75707781 100644
--- a/stdlib/source/test/lux/meta/configuration.lux
+++ b/stdlib/source/test/lux/meta/configuration.lux
@@ -40,7 +40,7 @@
     _ (do [! random.monad]
         [feature (random.upper_cased amount)
          value (random.lower_cased amount)]
-        (of ! each (|>> (list.partial [feature value]))
+        (by ! each (|>> (list.partial [feature value]))
             (random (-- amount))))))
 
 (the failure
@@ -72,7 +72,7 @@
                (|> expected
                    /.injection
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false)))
              (_.coverage [/.for]
                (and (and (/.for ["left" "<<<"
diff --git a/stdlib/source/test/lux/meta/extension.lux b/stdlib/source/test/lux/meta/extension.lux
index a1e35bde0c..883c78c61a 100644
--- a/stdlib/source/test/lux/meta/extension.lux
+++ b/stdlib/source/test/lux/meta/extension.lux
@@ -85,7 +85,7 @@
     (let [! phase.monad]
       (|> parameters
           (monad.each ! (phase archive))
-          (of ! each (|>> (is (List analysis.Term))
+          (by ! each (|>> (is (List analysis.Term))
                           {analysis.#Extension (symbol ..my_synthesis|synthesis)}
                           [location.dummy]
                           (is analysis.Term)))))))
@@ -102,7 +102,7 @@
     (let [! phase.monad]
       (|> parameters
           (monad.each ! (phase archive))
-          (of ! each (|>> {synthesis.#Extension (symbol ..my_translation|translation)}
+          (by ! each (|>> {synthesis.#Extension (symbol ..my_translation|translation)}
                           [location.dummy]
                           (is synthesis.Term)))))))
 
@@ -112,7 +112,7 @@
     (let [! phase.monad]
       (|> parameters
           (monad.each ! (phase archive))
-          (of ! each (|>> (is (List analysis.Term))
+          (by ! each (|>> (is (List analysis.Term))
                           {analysis.#Extension (symbol ..my_translation|synthesis)}
                           [location.dummy]
                           (is analysis.Term)))))))
@@ -121,7 +121,7 @@
   Translation
   (translation (_ phase archive [])
     (let [[_ self] (symbol ..dummy_translation)]
-      (of phase.monad in
+      (by phase.monad in
           (for .jvm (jvm.string self)
                .js (js.string self)
                .python (python.unicode self)
@@ -133,13 +133,13 @@
 (the dummy_translation|synthesis
   Synthesis
   (synthesis (_ phase archive [])
-    (of phase.monad in (is synthesis.Term
+    (by phase.monad in (is synthesis.Term
                            [location.dummy {synthesis.#Extension (symbol ..dummy_translation|translation) (list)}]))))
 
 (the dummy_translation
   Analysis
   (analysis (_ phase archive [])
-    (of phase.monad in (is analysis.Term
+    (by phase.monad in (is analysis.Term
                            [location.dummy {analysis.#Extension (symbol ..dummy_translation|synthesis) (list)}]))))
 
 ... Declaration
diff --git a/stdlib/source/test/lux/meta/label.lux b/stdlib/source/test/lux/meta/label.lux
index 27be0e387a..564cf779ae 100644
--- a/stdlib/source/test/lux/meta/label.lux
+++ b/stdlib/source/test/lux/meta/label.lux
@@ -109,7 +109,7 @@
               name_0 (random.upper_cased 3)
               name_1 (random.upper_cased 4)
 
-              .let [random_tag (of ! each (|>> [label_module])
+              .let [random_tag (by ! each (|>> [label_module])
                                    (random.upper_cased 1))
                     random_labels (is (-> Natural
                                           (Random [Text (List Text)]))
@@ -119,7 +119,7 @@
                                           (|> (random.lower_cased size)
                                               (random.only (|>> (text.= head) not))
                                               (random.set text.hash 3)
-                                              (of ! each set.list)
+                                              (by ! each set.list)
                                               (random.and (in head))))))]
               tags_0 (random_labels 5)
               tags_1 (random_labels 6)
@@ -201,7 +201,7 @@
                                         type.equivalence))]
                       (|> (/.tag_lists label_module)
                           (//.value expected_lux)
-                          (try#each (of equivalence = (list [(list#each (|>> [label_module]) {.#Item tags_1})
+                          (try#each (by equivalence = (list [(list#each (|>> [label_module]) {.#Item tags_1})
                                                              type_1])))
                           (try.else false))))
                   )))
diff --git a/stdlib/source/test/lux/meta/location.lux b/stdlib/source/test/lux/meta/location.lux
index 5a62453d94..f565dc8490 100644
--- a/stdlib/source/test/lux/meta/location.lux
+++ b/stdlib/source/test/lux/meta/location.lux
@@ -40,7 +40,7 @@
                     (equivalenceT.spec /.equivalence ..random)))
 
            (_.coverage [/.here]
-             (not (of /.equivalence = (/.here) (/.here))))
+             (not (by /.equivalence = (/.here) (/.here))))
            (do random.monad
              [location ..random
               error (random.alphabetic 10)]
@@ -53,5 +53,5 @@
            (do random.monad
              [[location _] $//code.random]
              (_.coverage [/.dummy]
-               (of /.equivalence = /.dummy location)))
+               (by /.equivalence = /.dummy location)))
            )))
diff --git a/stdlib/source/test/lux/meta/macro.lux b/stdlib/source/test/lux/meta/macro.lux
index 6d3010a8e4..23544dde6b 100644
--- a/stdlib/source/test/lux/meta/macro.lux
+++ b/stdlib/source/test/lux/meta/macro.lux
@@ -128,9 +128,9 @@
   (do [! random.monad]
     [[seed symbol_prefix lux] ..random_lux
 
-     pow/1 (of ! each code.natural random.natural)
+     pow/1 (by ! each code.natural random.natural)
 
-     repetitions (of ! each (n.% 10) random.natural)
+     repetitions (by ! each (n.% 10) random.natural)
      .let [single_expansion (` (..pow/2 (..pow/2 (, pow/1))))
            expansion (` (n.* (..pow/2 (, pow/1))
                              (..pow/2 (, pow/1))))
@@ -141,18 +141,18 @@
              ...       [(_.coverage []
              ...          (|> ( (` (..pow/4 (, pow/1))))
              ...              (meta.value lux)
-             ...              (try#each (of (list.equivalence code.equivalence) =
+             ...              (try#each (by (list.equivalence code.equivalence) =
              ...                            (list )))
              ...              (try.else false)))
 
              ...        (_.coverage []
              ...          (and (|> (expansion.single (` ( "omit" (..pow/4 (, pow/1)))))
              ...                   (meta.value lux)
-             ...                   (try#each (of (list.equivalence code.equivalence) = (list)))
+             ...                   (try#each (by (list.equivalence code.equivalence) = (list)))
              ...                   (try.else false))
              ...               (|> (expansion.single (` ( (..pow/4 (, pow/1)))))
              ...                   (meta.value lux)
-             ...                   (try#each (of (list.equivalence code.equivalence) = (list )))
+             ...                   (try#each (by (list.equivalence code.equivalence) = (list )))
              ...                   (try.else false))))]
 
              ...       [expansion.single   expansion.log_single!   single_expansion]
@@ -198,7 +198,7 @@
                   output 0])
       (when tokens
         {.#End}
-        (of meta.monad in (list (code.natural output)))
+        (by meta.monad in (list (code.natural output)))
         
         {.#Item [_ {.#Natural head}] tail}
         (again tail (n.+ head output))
@@ -219,7 +219,7 @@
              (all _.and
                   (_.coverage [/.symbol]
                     (|> (/.symbol symbol_prefix)
-                        (of meta.monad each code.as_text)
+                        (by meta.monad each code.as_text)
                         (meta.value lux)
                         (!expect (^.multi {try.#Success actual_symbol}
                                           (and (text.contains? symbol_prefix actual_symbol)
@@ -227,7 +227,7 @@
                   (_.coverage [/.with_symbols]
                     (expansion.let [ (fresh_symbol)]
                       (|> (/.with_symbols []
-                            (of meta.monad in ))
+                            (by meta.monad in ))
                           (meta.value lux)
                           (!expect (^.multi {try.#Success [_ {.#Symbol ["" actual]}]}
                                             (text.contains? (template.text [])
diff --git a/stdlib/source/test/lux/meta/macro/pattern.lux b/stdlib/source/test/lux/meta/macro/pattern.lux
index 6d4a07c819..b46de6cbdf 100644
--- a/stdlib/source/test/lux/meta/macro/pattern.lux
+++ b/stdlib/source/test/lux/meta/macro/pattern.lux
@@ -35,8 +35,8 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [expected_natural (of ! each (n.% 1) random.natural)
-         expected_integer (of ! each (i.% +1) random.integer)
+        [expected_natural (by ! each (n.% 1) random.natural)
+         expected_integer (by ! each (i.% +1) random.integer)
          expected_rev (random.either (in .5)
                                      (in .25))
          expected_decimal (random.either (in +0.5)
diff --git a/stdlib/source/test/lux/meta/macro/syntax/declaration.lux b/stdlib/source/test/lux/meta/macro/syntax/declaration.lux
index 21a28a62f9..eb72e14b8a 100644
--- a/stdlib/source/test/lux/meta/macro/syntax/declaration.lux
+++ b/stdlib/source/test/lux/meta/macro/syntax/declaration.lux
@@ -30,7 +30,7 @@
     (all random.and
          word
          (do [! random.monad]
-           [size (of ! each (n.% 10) random.natural)]
+           [size (by ! each (n.% 10) random.natural)]
            (random.list size word))
          )))
 
@@ -53,4 +53,4 @@
                  false
                  
                  {try.#Success actual}
-                 (of /.equivalence = expected actual)))))))
+                 (by /.equivalence = expected actual)))))))
diff --git a/stdlib/source/test/lux/meta/macro/syntax/definition.lux b/stdlib/source/test/lux/meta/macro/syntax/definition.lux
index 0a30ef776d..77a49ecccb 100644
--- a/stdlib/source/test/lux/meta/macro/syntax/definition.lux
+++ b/stdlib/source/test/lux/meta/macro/syntax/definition.lux
@@ -80,7 +80,7 @@
                       false
                       
                       {try.#Success actual}
-                      (of /.equivalence = expected actual)))
+                      (by /.equivalence = expected actual)))
                   (_.coverage [/.typed]
                     (let [expected (has /.#value {.#Left [type untyped_value]} expected)]
                       (when (.value (/.typed compiler)
@@ -89,7 +89,7 @@
                         false
                         
                         {try.#Success actual}
-                        (of /.equivalence = expected actual))))
+                        (by /.equivalence = expected actual))))
                   (_.coverage [/.lacks_type]
                     (let [expected (has /.#value {.#Right untyped_value} expected)]
                       (when (.value (/.typed compiler)
diff --git a/stdlib/source/test/lux/meta/macro/syntax/export.lux b/stdlib/source/test/lux/meta/macro/syntax/export.lux
index 7d81d1f62c..e1ee64d05e 100644
--- a/stdlib/source/test/lux/meta/macro/syntax/export.lux
+++ b/stdlib/source/test/lux/meta/macro/syntax/export.lux
@@ -25,7 +25,7 @@
   (Random [(Maybe Code) Natural])
   (all random.and
        (|> random.bit
-           (of random.monad each code.bit)
+           (by random.monad each code.bit)
            random.maybe)
        random.natural))
 
diff --git a/stdlib/source/test/lux/meta/macro/syntax/input.lux b/stdlib/source/test/lux/meta/macro/syntax/input.lux
index 5a78165565..749183e3d1 100644
--- a/stdlib/source/test/lux/meta/macro/syntax/input.lux
+++ b/stdlib/source/test/lux/meta/macro/syntax/input.lux
@@ -53,4 +53,4 @@
                  false
                  
                  {try.#Success actual}
-                 (of (list.equivalence /.equivalence) = (list expected) actual)))))))
+                 (by (list.equivalence /.equivalence) = (list expected) actual)))))))
diff --git a/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux b/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux
index a813a6ed1e..bbd06eeed2 100644
--- a/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux
+++ b/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux
@@ -40,6 +40,6 @@
              (_.coverage [/.injection /.projection]
                (|> (list (/.injection expected))
                    (.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/lux/meta/macro/template.lux b/stdlib/source/test/lux/meta/macro/template.lux
index 8eb7cc46e2..8004db2382 100644
--- a/stdlib/source/test/lux/meta/macro/template.lux
+++ b/stdlib/source/test/lux/meta/macro/template.lux
@@ -75,7 +75,7 @@
                    (and (natural.= 3 (list.size bits))
                         (list.every? (bit.= true) bits))))
                (_.coverage [/.spliced]
-                 (of (list.equivalence natural.equivalence) =
+                 (by (list.equivalence natural.equivalence) =
                      (list left mid right)
                      (`` (list (,, (/.spliced [left mid right]))))))
                (_.coverage [/.amount]
diff --git a/stdlib/source/test/lux/meta/module/import.lux b/stdlib/source/test/lux/meta/module/import.lux
index 6643349b3d..585e0370db 100644
--- a/stdlib/source/test/lux/meta/module/import.lux
+++ b/stdlib/source/test/lux/meta/module/import.lux
@@ -78,12 +78,12 @@
              (_.coverage [/.all]
                (and (|> (/.all expected_current_module)
                         (meta.value expected_lux)
-                        (try#each (of (list.equivalence text.equivalence) =
+                        (try#each (by (list.equivalence text.equivalence) =
                                       (list imported_module_name)))
                         (try.else false))
                     (|> (/.all imported_module_name)
                         (meta.value expected_lux)
-                        (try#each (of (list.equivalence text.equivalence) =
+                        (try#each (by (list.equivalence text.equivalence) =
                                       (list)))
                         (try.else false))))
              (_.coverage [/.by?]
diff --git a/stdlib/source/test/lux/meta/symbol.lux b/stdlib/source/test/lux/meta/symbol.lux
index d5df746d59..c5121481bd 100644
--- a/stdlib/source/test/lux/meta/symbol.lux
+++ b/stdlib/source/test/lux/meta/symbol.lux
@@ -66,12 +66,12 @@
            (<| (_.covering /._)
                (do [! random.monad]
                  [ ... First Symbol
-                  sizeM1 (|> random.natural (of ! each (n.% 100)))
-                  sizeS1 (|> random.natural (of ! each (|>> (n.% 100) (n.max 1))))
+                  sizeM1 (|> random.natural (by ! each (n.% 100)))
+                  sizeS1 (|> random.natural (by ! each (|>> (n.% 100) (n.max 1))))
                   (^.let symbol1 [module1 short1]) (..random sizeM1 sizeS1)
                   ... Second Symbol
-                  sizeM2 (|> random.natural (of ! each (n.% 100)))
-                  sizeS2 (|> random.natural (of ! each (|>> (n.% 100) (n.max 1))))
+                  sizeM2 (|> random.natural (by ! each (n.% 100)))
+                  sizeS2 (|> random.natural (by ! each (|>> (n.% 100) (n.max 1))))
                   (^.let symbol2 [module2 short2]) (..random sizeM2 sizeS2)])
                (_.for [.Symbol])
                (all _.and
@@ -80,7 +80,7 @@
                              (equivalenceT.spec /.equivalence (..random sizeM1 sizeS1))))
                     (_.for [/.hash]
                            (|> (random.ascii 1)
-                               (of ! each (|>> [""]))
+                               (by ! each (|>> [""]))
                                (hashT.spec /.hash)))
                     (_.for [/.order /.< /.<= /.> /.>=]
                            (orderT.spec /.order (..random sizeM1 sizeS1)))
@@ -90,7 +90,7 @@
                            (formatT.spec /.equivalence (/.relative module1) (..relative module1 sizeS1)))
 
                     (_.coverage [/.separator]
-                      (let [it (of /.absolute injection symbol1)]
+                      (let [it (by /.absolute injection symbol1)]
                         (if (text.empty? module1)
                           (same? short1 it)
                           (text.contains? /.separator it))))
@@ -109,6 +109,6 @@
                            (/.= ["" "yolo"] (.symbol yolo))
                            (/.= ["library/lux/test" "yolo"] (.symbol library/lux/test.yolo))))
                     (_.coverage [/.as_text]
-                      (same? (of /.absolute injection)
+                      (same? (by /.absolute injection)
                              /.as_text))
                     )))))
diff --git a/stdlib/source/test/lux/meta/type.lux b/stdlib/source/test/lux/meta/type.lux
index 35e33a2d06..7c79ef6590 100644
--- a/stdlib/source/test/lux/meta/type.lux
+++ b/stdlib/source/test/lux/meta/type.lux
@@ -67,7 +67,7 @@
 (the nominal
   (Random Type)
   (|> (random.alpha_numeric 1)
-      (of random.monad each (function (_ name)
+      (by random.monad each (function (_ name)
                               {.#Nominal name (list)}))))
 
 (the test|matches
@@ -219,7 +219,7 @@
   Test
   (do [! random.monad]
     [not_polymorphic ..nominal
-     expected_inputs (of ! each (|>> (n.% 10) ++) random.natural)]
+     expected_inputs (by ! each (|>> (n.% 10) ++) random.natural)]
     (all _.and
          (_.coverage [\\projection.not_polymorphic]
            (and (|> (\\projection.value (\\projection.polymorphic \\projection.any)
@@ -355,7 +355,7 @@
 (the short
   (Random Text)
   (do [! random.monad]
-    [size (|> random.natural (of ! each (n.% 10)))]
+    [size (|> random.natural (by ! each (n.% 10)))]
     (random.unicode size)))
 
 (the symbol
@@ -400,8 +400,9 @@
   Test
   (<| (_.covering /._)
       (all _.and
-           (_.for [/.equivalence]
-                  (equivalenceT.spec /.equivalence (..random 0)))
+           (_.for [/.equivalence /.=]
+                  (static.when (same? /.equivalence /.=)
+                    (equivalenceT.spec /.equivalence (..random 0))))
            
            (do [! random.monad]
              [anonymousT (random.only (|>> (pipe.when {.#Named _ _} false
@@ -413,11 +414,11 @@
                     aliasedT {.#Named symbol/1 namedT}]]
              (all _.and
                   (_.coverage [/.de_aliased]
-                    (of /.equivalence = namedT (/.de_aliased aliasedT)))
+                    (by /.equivalence = namedT (/.de_aliased aliasedT)))
                   (_.coverage [/.anonymous]
-                    (of /.equivalence = anonymousT (/.anonymous aliasedT)))))
+                    (by /.equivalence = anonymousT (/.anonymous aliasedT)))))
            (do [! random.monad]
-             [size (|> random.natural (of ! each (n.% 3)))
+             [size (|> random.natural (by ! each (n.% 3)))
               members (|> (..random 0)
                           (random.only (function (_ type)
                                          (when type
@@ -447,7 +448,7 @@
                       (do maybe.monad
                         [partial (/.applied (list Bit) Ann)
                          full (/.applied (list Integer) partial)]
-                        (in (of /.equivalence = full {.#Product Bit Integer}))))
+                        (in (by /.equivalence = full {.#Product Bit Integer}))))
                   (|> (/.applied (list Bit) Text)
                       (pipe.when
                         {.#None}
@@ -456,7 +457,7 @@
                         _
                         false))))
            (do [! random.monad]
-             [size (|> random.natural (of ! each (n.% 3)))
+             [size (|> random.natural (by ! each (n.% 3)))
               members (monad.all ! (list.repeated size (..random 0)))
               extra (|> (..random 0)
                         (random.only (function (_ type)
@@ -478,7 +479,7 @@
                       (n.= (list.size members) (list.size tparams))))
                   ))
            (do [! random.monad]
-             [size (|> random.natural (of ! each (|>> (n.% 3) ++)))
+             [size (|> random.natural (by ! each (|>> (n.% 3) ++)))
               body_type (|> (..random 0)
                             (random.only (function (_ type)
                                            (when type
@@ -504,7 +505,7 @@
                              (|> body_type (/.ex_q size) /.quantified?)))
                       )))
            (do [! random.monad]
-             [depth (|> random.natural (of ! each (|>> (n.% 3) ++)))
+             [depth (|> random.natural (by ! each (|>> (n.% 3) ++)))
               element_type (|> (..random 0)
                                (random.only (function (_ type)
                                               (when type
diff --git a/stdlib/source/test/lux/meta/type/check.lux b/stdlib/source/test/lux/meta/type/check.lux
index a42009b83c..1525285872 100644
--- a/stdlib/source/test/lux/meta/type/check.lux
+++ b/stdlib/source/test/lux/meta/type/check.lux
@@ -101,7 +101,7 @@
 
 (the injection
   (Injection (for_any (_ a) (/.Check a)))
-  (of /.monad in))
+  (by /.monad in))
 
 (the comparison
   (Comparison (for_any (_ a) (/.Check a)))
@@ -545,7 +545,7 @@
      [parameter/0 parameter/1] (..non_twins //.= ..nominal)
      left_name ..symbol
      right_name ..symbol
-     ring_tail_size (of ! each (n.% 10) random.natural)]
+     ring_tail_size (by ! each (n.% 10) random.natural)]
     (_.coverage [/.check]
       (and (..handles_nominal_types! name/0 name/1 parameter/0 parameter/1)
            (..handles_products! name/0 name/1)
@@ -767,7 +767,7 @@
              [expected random.natural]
              (_.coverage [/.value]
                (when (/.value /.fresh_context
-                              (of /.monad in expected))
+                              (by /.monad in expected))
                  {try.#Success actual} (same? expected actual)
                  {try.#Failure error} false)))
            ..error_handling
diff --git a/stdlib/source/test/lux/meta/type/implicit.lux b/stdlib/source/test/lux/meta/type/implicit.lux
index 33e743829d..104ba53ae2 100644
--- a/stdlib/source/test/lux/meta/type/implicit.lux
+++ b/stdlib/source/test/lux/meta/type/implicit.lux
@@ -29,7 +29,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [.let [digit (of ! each (n.% 10) random.natural)]
+        [.let [digit (by ! each (n.% 10) random.natural)]
          left digit
          right digit
          .let [start (n.min left right)
@@ -41,9 +41,9 @@
              ... (_.coverage [/.any]
              ...   (let [first_order!
              ...         (let [(open "list#[0]") (list.equivalence n.equivalence)]
-             ...           (and (bit.= (of n.equivalence = left right)
+             ...           (and (bit.= (by n.equivalence = left right)
              ...                       (/.any = left right))
-             ...                (list#= (of list.functor each ++ (enum.range n.enum start end))
+             ...                (list#= (by list.functor each ++ (enum.range n.enum start end))
              ...                        (/.any each ++ (enum.range n.enum start end)))))
 
              ...         second_order!
@@ -60,9 +60,9 @@
              ...          third_order!)))
              (_.coverage [/.with]
                (/.with [n.addition]
-                 (n.= (of n.addition composite left right)
+                 (n.= (by n.addition composite left right)
                       (/.any composite left right))))
              (_.coverage [/.implicitly]
-               (n.= (of n.multiplication composite left right)
+               (n.= (by n.multiplication composite left right)
                     (/.any composite left right)))
              ))))
diff --git a/stdlib/source/test/lux/meta/type/linear.lux b/stdlib/source/test/lux/meta/type/linear.lux
index f5e47b6872..c9f49a52ea 100644
--- a/stdlib/source/test/lux/meta/type/linear.lux
+++ b/stdlib/source/test/lux/meta/type/linear.lux
@@ -36,8 +36,8 @@
 (the pure
   Test
   (monad.do [! random.monad]
-    [pre (of ! each %.natural random.natural)
-     post (of ! each %.natural random.natural)
+    [pre (by ! each %.natural random.natural)
+     post (by ! each %.natural random.natural)
      .let [! pure.monad]]
     (_.for [/.Linear /.value /.monad]
            (`` (all _.and
@@ -78,8 +78,8 @@
 (the sync
   Test
   (monad.do [! random.monad]
-    [pre (of ! each %.natural random.natural)
-     post (of ! each %.natural random.natural)
+    [pre (by ! each %.natural random.natural)
+     post (by ! each %.natural random.natural)
      .let [! io.monad]]
     (_.for [/.Linear /.value /.monad]
            (`` (all _.and
@@ -121,8 +121,8 @@
 (the async
   Test
   (monad.do [! random.monad]
-    [pre (of ! each %.natural random.natural)
-     post (of ! each %.natural random.natural)
+    [pre (by ! each %.natural random.natural)
+     post (by ! each %.natural random.natural)
      .let [! async.monad]]
     (_.for [/.Linear /.value /.monad]
            (`` (all _.and
diff --git a/stdlib/source/test/lux/meta/type/object.lux b/stdlib/source/test/lux/meta/type/object.lux
index f9b6d10ec3..5bca688ca1 100644
--- a/stdlib/source/test/lux/meta/type/object.lux
+++ b/stdlib/source/test/lux/meta/type/object.lux
@@ -72,7 +72,7 @@
 
 (the value
   (Random Decimal)
-  (of random.functor each
+  (by random.functor each
       (|>> (n.% 100) n.decimal)
       random.natural))
 
diff --git a/stdlib/source/test/lux/meta/type/quotient.lux b/stdlib/source/test/lux/meta/type/quotient.lux
index 4431b0ec04..e70993b8e6 100644
--- a/stdlib/source/test/lux/meta/type/quotient.lux
+++ b/stdlib/source/test/lux/meta/type/quotient.lux
@@ -24,7 +24,7 @@
   (for_any (_ t c %)
     (-> (/.Class t c %) (Random t)
         (Random (/.Quotient t c %))))
-  (of random.monad each (/.quotient class) super))
+  (by random.monad each (/.quotient class) super))
 
 (the mod_10_class
   (/.class (|>> (n.% 10) %.natural)))
diff --git a/stdlib/source/test/lux/meta/type/refinement.lux b/stdlib/source/test/lux/meta/type/refinement.lux
index d197d96fc4..d8f81b1e71 100644
--- a/stdlib/source/test/lux/meta/type/refinement.lux
+++ b/stdlib/source/test/lux/meta/type/refinement.lux
@@ -34,10 +34,10 @@
       (_.for [/.Refined])
       (do [! random.monad]
         [raw random.natural
-         modulus (of ! each (|>> (n.% 10) (n.+ 2)) random.natural)
+         modulus (by ! each (|>> (n.% 10) (n.+ 2)) random.natural)
          .let [predicate (is (Predicate Natural)
                              (|>> (n.% modulus) (n.= 0)))]
-         total_raws (of ! each (|>> (n.% 20) ++) random.natural)
+         total_raws (by ! each (|>> (n.% 20) ++) random.natural)
          raws (random.list total_raws random.natural)]
         (all _.and
              (_.for [/.Refiner]
@@ -75,7 +75,7 @@
                      actual (/.only (/.refiner predicate) raws)]
                  (and (n.= (list.size expected)
                            (list.size actual))
-                      (of (list.equivalence n.equivalence) =
+                      (by (list.equivalence n.equivalence) =
                           expected
                           (list#each /.value actual)))))
              (_.coverage [/.partition]
@@ -85,7 +85,7 @@
                            (list.size actual))
                       (n.= (n.- (list.size expected) total_raws)
                            (list.size alternative))
-                      (of (list.equivalence n.equivalence) =
+                      (by (list.equivalence n.equivalence) =
                           expected
                           (list#each /.value actual)))))
              (_.coverage [/.type]
diff --git a/stdlib/source/test/lux/meta/type/unit.lux b/stdlib/source/test/lux/meta/type/unit.lux
index 07e2978e3f..137c6db59c 100644
--- a/stdlib/source/test/lux/meta/type/unit.lux
+++ b/stdlib/source/test/lux/meta/type/unit.lux
@@ -37,9 +37,9 @@
   [(the ( range)
      (-> Natural (Random (/.Measure Any )))
      (|> random.integer
-         (of random.monad each (i.% (.integer range)))
+         (by random.monad each (i.% (.integer range)))
          (random.only (|>> (i.= +0) not))
-         (of random.monad each (of  in))))]
+         (by random.monad each (by  in))))]
 
   [meter /.Meter /.meter]
   [second /.Second /.second]
@@ -72,12 +72,12 @@
                              (,, (template.with [ ]
                                    [(_.coverage [ ]
                                       (and (|> expected
-                                               (of  in)
-                                               (of  out)
+                                               (by  in)
+                                               (by  out)
                                                (i.= expected))
                                            (let [it (|> expected
-                                                        (of  in)
-                                                        (of  injection))]
+                                                        (by  in)
+                                                        (by  injection))]
                                              (and (not (text.= (%.integer expected) it))
                                                   (text.starts_with? (%.integer expected) it)))))]
 
@@ -93,13 +93,13 @@
                                    (i.= expected)))
                              (_.coverage [/.unit /.type]
                                (and (|> expected
-                                        (of ..what in)
+                                        (by ..what in)
                                         (is (/.Measure Any What))
-                                        (of ..what out)
+                                        (by ..what out)
                                         (i.= expected))
                                     (let [it (|> expected
-                                                 (of ..what in)
-                                                 (of ..what injection))]
+                                                 (by ..what in)
+                                                 (by ..what injection))]
                                       (and (text.contains? (%.integer expected) it)
                                            (text.contains?  it)))))
                              )))))))
@@ -107,7 +107,7 @@
 (the arithmetic
   Test
   (do random.monad
-    [.let [zero (of /.meter in +0)
+    [.let [zero (by /.meter in +0)
            (open "meter#[0]") (is (Equivalence (/.Measure Any /.Meter))
                                   /.equivalence)]
      left (random.only (|>> (meter#= zero) not) (..meter 1,000))
@@ -116,14 +116,14 @@
     (`` (all _.and
              (,, (template.with [ ]
                    [(_.coverage []
-                      (i.= ( (of /.meter out left) (of /.meter out right))
-                           (of /.meter out ( left right))))]
+                      (i.= ( (by /.meter out left) (by /.meter out right))
+                           (by /.meter out ( left right))))]
 
                    [/.+ i.+]
                    [/.- i.-]
                    ))
              (_.coverage [/.*]
-               (let [expected (i.* (of /.meter out left) (of /.meter out right))
+               (let [expected (i.* (by /.meter out left) (by /.meter out right))
                      actual (/.number (is (/.Measure Any [/.Meter /.Meter])
                                           (/.* left right)))]
                  (i.= expected actual)))
diff --git a/stdlib/source/test/lux/meta/type/unit/scale.lux b/stdlib/source/test/lux/meta/type/unit/scale.lux
index 4422801fca..1d7f334116 100644
--- a/stdlib/source/test/lux/meta/type/unit/scale.lux
+++ b/stdlib/source/test/lux/meta/type/unit/scale.lux
@@ -27,7 +27,7 @@
 
 (the natural
   (syntax.macro (_ [])
-    (of meta.monad each
+    (by meta.monad each
         (|>> code.natural list)
         meta.seed)))
 
@@ -49,25 +49,25 @@
               /.up /.down /.fraction])
       (do [! random.monad]
         [small (|> random.integer
-                   (of ! each (i.% +1,000))
-                   (of ! each (of //.meter in)))
+                   (by ! each (i.% +1,000))
+                   (by ! each (by //.meter in)))
          large (|> random.integer
-                   (of ! each (i.% +1,000))
-                   (of ! each (i.* +1,000,000,000))
-                   (of ! each (of //.meter in)))
+                   (by ! each (i.% +1,000))
+                   (by ! each (i.* +1,000,000,000))
+                   (by ! each (by //.meter in)))
          .let [(open "meter#[0]") (is (Equivalence (//.Measure Any //.Meter))
                                       //.equivalence)]
          unscaled (|> random.integer
-                      (of ! each (|>> (i.% +1,000)
+                      (by ! each (|>> (i.% +1,000)
                                       (i.* (.integer how::to))
-                                      (of //.meter in))))]
+                                      (by //.meter in))))]
         (`` (all _.and
                  (,, (template.with [ ]
                        [(_.coverage [ ]
                           (|> small
-                              (of  up)
+                              (by  up)
                               (is (//.Measure  //.Meter))
-                              (of  down)
+                              (by  down)
                               (is (//.Measure Any //.Meter))
                               (meter#= small)))]
 
@@ -78,9 +78,9 @@
                  (,, (template.with [ ]
                        [(_.coverage [ ]
                           (|> large
-                              (of  up)
+                              (by  up)
                               (is (//.Measure  //.Meter))
-                              (of  down)
+                              (by  down)
                               (is (//.Measure Any //.Meter))
                               (meter#= large)))]
 
@@ -90,18 +90,18 @@
                        ))
                  (_.coverage [/.re_scaled]
                    (|> large (is (//.Measure Any //.Meter))
-                       (of /.kilo up) (is (//.Measure /.Kilo //.Meter))
+                       (by /.kilo up) (is (//.Measure /.Kilo //.Meter))
                        (/.re_scaled /.kilo /.milli) (is (//.Measure /.Milli //.Meter))
                        (/.re_scaled /.milli /.kilo) (is (//.Measure /.Kilo //.Meter))
-                       (of /.kilo down) (is (//.Measure Any //.Meter))
+                       (by /.kilo down) (is (//.Measure Any //.Meter))
                        (meter#= large)))
                  (_.coverage [/.scale /.type]
                    (and (|> unscaled
-                            (of ..how up)
+                            (by ..how up)
                             (is (//.Measure How //.Meter))
-                            (of ..how down)
+                            (by ..how down)
                             (meter#= unscaled))
                         (fraction.= [fraction.#denominator ..how::from
                                      fraction.#numerator ..how::to]
-                                    (of ..how fraction))))
+                                    (by ..how fraction))))
                  )))))
diff --git a/stdlib/source/test/lux/music/chord.lux b/stdlib/source/test/lux/music/chord.lux
index f1f16a4d74..27f0d136a6 100644
--- a/stdlib/source/test/lux/music/chord.lux
+++ b/stdlib/source/test/lux/music/chord.lux
@@ -56,7 +56,7 @@
                           )
         amount (sequence.size options)]
     (do [! random.monad]
-      [choice (of ! each (n.% amount) random.natural)]
+      [choice (by ! each (n.% amount) random.natural)]
       (in (maybe.trusted (sequence.item choice options))))))
 
 (the .public test
@@ -75,7 +75,7 @@
                                  (equivalenceT.spec /.equivalence ..random)))
 
                         (_.coverage [/.injection]
-                          (bit.= (of /.equivalence = left right)
+                          (bit.= (by /.equivalence = left right)
                                  (text.= (/.injection left) (/.injection right))))
                         (_.coverage [/.size]
                           (n.> 0 (/.size left)))
@@ -89,7 +89,7 @@
                                    (when options
                                      (list.partial head tail)
                                      (and (n.=  (/.size head))
-                                          (list.every? (|>> (of /.equivalence = head) not) tail)
+                                          (list.every? (|>> (by /.equivalence = head) not) tail)
                                           (next tail))
                                      
                                      (list)
@@ -112,17 +112,17 @@
                           (|> left
                               (/.instance pitch)
                               /.chord
-                              (of /.equivalence = left)))
+                              (by /.equivalence = left)))
                         (<| (_.for [/.Quality])
                             (all _.and
                                  (_.coverage [/.added]
                                    (n.= (++ (/.size left))
                                         (/.size (/.added interval left))))
                                  (_.coverage [/.major /.minor]
-                                   (and (of /.equivalence =
+                                   (and (by /.equivalence =
                                             (/.added interval.major_3rd left)
                                             (/.major left))
-                                        (of /.equivalence =
+                                        (by /.equivalence =
                                             (/.added interval.minor_3rd left)
                                             (/.minor left))))
                                  ))
diff --git a/stdlib/source/test/lux/music/note.lux b/stdlib/source/test/lux/music/note.lux
index d4ab79bd7b..a4f4023a40 100644
--- a/stdlib/source/test/lux/music/note.lux
+++ b/stdlib/source/test/lux/music/note.lux
@@ -40,7 +40,7 @@
                              (sequence ))
                  amount (sequence.size options)]
              (do [! random.monad]
-               [choice (of ! each (natural.% amount) random.natural)]
+               [choice (by ! each (natural.% amount) random.natural)]
                (in (maybe.trusted (sequence.item choice options))))))
          
          (the .public test
diff --git a/stdlib/source/test/lux/music/pitch.lux b/stdlib/source/test/lux/music/pitch.lux
index 18eeca8141..9a5c1d1c02 100644
--- a/stdlib/source/test/lux/music/pitch.lux
+++ b/stdlib/source/test/lux/music/pitch.lux
@@ -184,7 +184,7 @@
                              (sequence ))
                  amount (sequence.size options)]
              (do [! random.monad]
-               [choice (of ! each (natural.% amount) random.natural)]
+               [choice (by ! each (natural.% amount) random.natural)]
                (in (maybe.trusted (sequence.item choice options))))))
 
          (the all_options
@@ -206,7 +206,7 @@
                              (sequence.of_list all_options))
                  amount (sequence.size options)]
              (do [! random.monad]
-               [choice (of ! each (natural.% amount) random.natural)]
+               [choice (by ! each (natural.% amount) random.natural)]
                (in (maybe.trusted (sequence.item choice options))))))
          
          (the .public test
diff --git a/stdlib/source/test/lux/music/scale.lux b/stdlib/source/test/lux/music/scale.lux
index fc8801f1a6..4948d5cad3 100644
--- a/stdlib/source/test/lux/music/scale.lux
+++ b/stdlib/source/test/lux/music/scale.lux
@@ -108,7 +108,7 @@
                              (sequence.of_list all_options))
                  amount (sequence.size options)]
              (do [! random.monad]
-               [choice (of ! each (natural.% amount) random.natural)]
+               [choice (by ! each (natural.% amount) random.natural)]
                (in (maybe.trusted (sequence.item choice options))))))
          
          (the .public test
@@ -135,7 +135,7 @@
                                    (|> expected
                                        /.intervals
                                        /.scale
-                                       (try#each (of /.equivalence = expected))
+                                       (try#each (by /.equivalence = expected))
                                        (try.else false)))
                                  (_.coverage [/.not_an_octave]
                                    (|> expected
diff --git a/stdlib/source/test/lux/music/tempo.lux b/stdlib/source/test/lux/music/tempo.lux
index 10338589d6..c3f0ebf24d 100644
--- a/stdlib/source/test/lux/music/tempo.lux
+++ b/stdlib/source/test/lux/music/tempo.lux
@@ -43,7 +43,7 @@
            (let [options (sequence )
                  amount (sequence.size options)]
              (do [! random.monad]
-               [choice (of ! each (natural.% amount) random.natural)]
+               [choice (by ! each (natural.% amount) random.natural)]
                (in (maybe.trusted (sequence.item choice options))))))
          
          (the .public test
diff --git a/stdlib/source/test/lux/program.lux b/stdlib/source/test/lux/program.lux
index 88cd99f22b..2f8d1cc6b1 100644
--- a/stdlib/source/test/lux/program.lux
+++ b/stdlib/source/test/lux/program.lux
@@ -44,7 +44,7 @@
   (<| (_.covering \\projection._)
       (_.for [\\projection.Projection])
       (do [! random.monad]
-        [expected (of ! each n#injection random.natural)
+        [expected (by ! each n#injection random.natural)
          .let [random_dummy (random.only (|>> (text.= expected) not)
                                          (random.unicode 5))]
          dummy random_dummy
diff --git a/stdlib/source/test/lux/test/benchmark.lux b/stdlib/source/test/lux/test/benchmark.lux
index 6841ac2bc5..55d22ade67 100644
--- a/stdlib/source/test/lux/test/benchmark.lux
+++ b/stdlib/source/test/lux/test/benchmark.lux
@@ -34,7 +34,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [times (of ! each (n.% 10) random.natural)
+        [times (by ! each (n.% 10) random.natural)
 
          .let [computation (is (IO Natural)
                                (io.io (fibonacci 32)))]])
diff --git a/stdlib/source/test/lux/test/property.lux b/stdlib/source/test/lux/test/property.lux
index c79b3f96fd..c2af96f9d3 100644
--- a/stdlib/source/test/lux/test/property.lux
+++ b/stdlib/source/test/lux/test/property.lux
@@ -73,7 +73,7 @@
                       (n.= 0 (its tally.#successes tally))
                       (n.= 1 (its tally.#failures tally)))))))
        (do [! random.monad]
-         [expected (of ! each (|>> (n.% 10) ++) random.natural)
+         [expected (by ! each (|>> (n.% 10) ++) random.natural)
           .let [counter (is (Atom Natural)
                             (atom.atom 0))]
           times_unit_test (<| (/.times expected /.ignore_success)
@@ -97,7 +97,7 @@
   /.Test
   (all /.and
        (do [! random.monad]
-         [expected (of ! each (|>> (n.% 10) ++) random.natural)
+         [expected (by ! each (|>> (n.% 10) ++) random.natural)
           .let [counter (is (Atom Natural)
                             (atom.atom 0))]
           unit_test (<| /.in_parallel
@@ -115,7 +115,7 @@
                       (n.= expected (its tally.#successes tally))
                       (n.= 0 (its tally.#failures tally)))))))
        (do [! random.monad]
-         [expected (of ! each (|>> (n.% 10) ++) random.natural)
+         [expected (by ! each (|>> (n.% 10) ++) random.natural)
           .let [counter (is (Atom Natural)
                             (atom.atom 0))]
           unit_test (<| /.in_parallel
diff --git a/stdlib/source/test/lux/web/html/attribute.lux b/stdlib/source/test/lux/web/html/attribute.lux
index c3d450b968..04e2bd9e0f 100644
--- a/stdlib/source/test/lux/web/html/attribute.lux
+++ b/stdlib/source/test/lux/web/html/attribute.lux
@@ -246,7 +246,7 @@
                                    (`` (_.coverage [(,, (template.spliced ,terms))]
                                          (let [options (|> (list (,, (template.spliced ,terms)))
                                                            (list#each (|>> (function.on value)
-                                                                           (of /.integrity #injection)
+                                                                           (by /.integrity #injection)
                                                                            (maybe.else ""))))
                                                uniques (set.of_list text.hash options)]
                                            (n.= (list.size options)
diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux
index dbc395c2fb..5470d13748 100644
--- a/stdlib/source/test/lux/world/console.lux
+++ b/stdlib/source/test/lux/world/console.lux
@@ -30,11 +30,11 @@
     [message (random.alphabetic 10)]
     (in (do async.monad
           [console (async.future console)
-           ?write (of console write (%.message message text.new_line))
-           ?read (of console read [])
-           ?read_line (of console read_line [])
-           ?close/good (of console close [])
-           ?close/bad (of console close [])
+           ?write (by console write (%.message message text.new_line))
+           ?read (by console read [])
+           ?read_line (by console read_line [])
+           ?close/good (by console close [])
+           ?close/bad (by console close [])
 
            .let [can_write!
                  (when ?write
@@ -111,7 +111,7 @@
                (io.value
                 (do io.monad
                   [?_ (/.write_line expected console)
-                   ?actual (of console read_line [])]
+                   ?actual (by console read_line [])]
                   (in (<| (try.else false)
                           (do try.monad
                             [_ ?_
diff --git a/stdlib/source/test/lux/world/environment.lux b/stdlib/source/test/lux/world/environment.lux
index 01b47124e8..cf5a05b895 100644
--- a/stdlib/source/test/lux/world/environment.lux
+++ b/stdlib/source/test/lux/world/environment.lux
@@ -46,8 +46,8 @@
             (and (not (dictionary.empty? environment))
                  (list.every? (|>> text.empty? not)
                               (dictionary.keys environment))
-                 (not (text.empty? (of subject home)))
-                 (not (text.empty? (of subject directory)))))))))
+                 (not (text.empty? (by subject home)))
+                 (not (text.empty? (by subject directory)))))))))
 
 (the \\projection
   Test
@@ -60,7 +60,7 @@
              [expected random.natural]
              (_.coverage [\\projection.value]
                (|> (\\projection.value (//#in expected) \\projection.empty)
-                   (of try.functor each (n.= expected))
+                   (by try.functor each (n.= expected))
                    (try.else false))))
            (do random.monad
              [property (random.alphabetic 1)
@@ -69,7 +69,7 @@
                (|> \\projection.empty
                    (dictionary.has property expected)
                    (\\projection.value (\\projection.property property))
-                   (of try.functor each (text.= expected))
+                   (by try.functor each (text.= expected))
                    (try.else false))))
            (do random.monad
              [property (random.alphabetic 1)]
@@ -96,7 +96,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [env_size (of ! each (|>> (n.% 10) ++) random.natural)
+        [env_size (by ! each (|>> (n.% 10) ++) random.natural)
          environment (..environment env_size)
          home ..path
          directory ..path
@@ -122,7 +122,7 @@
              (_.coverage [/.unknown_environment_variable]
                (let [it (/.mock environment home directory)]
                  (|> unknown
-                     (of it variable)
+                     (by it variable)
                      io.value
                      (pipe.when {try.#Success _}
                        false
diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux
index 026aea0aca..b596f8775c 100644
--- a/stdlib/source/test/lux/world/file.lux
+++ b/stdlib/source/test/lux/world/file.lux
@@ -74,9 +74,9 @@
   (-> (/.System Async) /.Path
       (Async Bit))
   (do async.monad
-    [directory_pre! (of fs directory? parent)
-     made? (of fs make_directory parent)
-     directory_post! (of fs directory? parent)]
+    [directory_pre! (by fs directory? parent)
+     made? (by fs make_directory parent)
+     directory_post! (by fs directory? parent)]
     (in (and (not directory_pre!)
              (when made?
                {try.#Success _} true
@@ -87,9 +87,9 @@
   (-> (/.System Async) Binary /.Path
       (Async Bit))
   (do async.monad
-    [file_pre! (of fs file? path)
-     made? (of fs write path content)
-     file_post! (of fs file? path)]
+    [file_pre! (by fs file? path)
+     made? (by fs write path content)
+     file_post! (by fs file? path)]
     (in (and (not file_pre!)
              (when made?
                {try.#Success _} true
@@ -100,26 +100,26 @@
   (-> (/.System Async) Natural Binary Binary /.Path
       (Async Bit))
   (do async.monad
-    [pre_file_size (of fs file_size path)
-     pre_content (of fs read path)
-     appended? (of fs append path appendix)
-     post_file_size (of fs file_size path)
-     post_content (of fs read path)]
+    [pre_file_size (by fs file_size path)
+     pre_content (by fs read path)
+     appended? (by fs append path appendix)
+     post_file_size (by fs file_size path)
+     post_content (by fs read path)]
     (in (<| (try.else false)
             (do [! try.monad]
               [pre_file_size!
-               (of ! each (n.= expected_file_size) pre_file_size)
+               (by ! each (n.= expected_file_size) pre_file_size)
                
                pre_content!
-               (of ! each (binary.= content) pre_content)
+               (by ! each (binary.= content) pre_content)
                
                _ appended?
 
                post_file_size!
-               (of ! each (n.= (n.* 2 expected_file_size)) post_file_size)
+               (by ! each (n.= (n.* 2 expected_file_size)) post_file_size)
                
                post_content!
-               (of ! each (binary.= (binary#composite content appendix)) post_content)]
+               (by ! each (binary.= (binary#composite content appendix)) post_content)]
               (in (and pre_file_size!
                        pre_content!
                        post_file_size!
@@ -129,12 +129,12 @@
   (-> (/.System Async) Instant /.Path
       (Async Bit))
   (do async.monad
-    [modified? (of fs modify path expected_time)
-     last_modified (of fs last_modified path)]
+    [modified? (by fs modify path expected_time)
+     last_modified (by fs last_modified path)]
     (in (<| (try.else false)
             (do [! try.monad]
               [_ modified?]
-              (of ! each (instant.= expected_time) last_modified))))))
+              (by ! each (instant.= expected_time) last_modified))))))
 
 (the (directory_files&sub_directories fs parent sub_dir child)
   (-> (/.System Async) /.Path /.Path /.Path
@@ -142,9 +142,9 @@
   (let [sub_dir (/.rooted fs parent sub_dir)
         child (/.rooted fs parent child)]
     (do async.monad
-      [made_sub? (of fs make_directory sub_dir)
-       directory_files (of fs directory_files parent)
-       sub_directories (of fs sub_directories parent)
+      [made_sub? (by fs make_directory sub_dir)
+       directory_files (by fs directory_files parent)
+       sub_directories (by fs sub_directories parent)
        .let [(open "list#[0]") (list.equivalence text.equivalence)]]
       (in (<| (try.else false)
               (do try.monad
@@ -162,12 +162,12 @@
   (let [origin (/.rooted fs parent child)
         destination (/.rooted fs parent alternate_child)]
     (do [! async.monad]
-      [moved? (of fs move origin destination)
+      [moved? (by fs move origin destination)
        lost? (|> origin
-                 (of fs file?)
-                 (of ! each not))
-       found? (of fs file? destination)
-       deleted? (of fs delete destination)]
+                 (by fs file?)
+                 (by ! each not))
+       found? (by fs file? destination)
+       deleted? (by fs delete destination)]
       (in (<| (try.else false)
               (do try.monad
                 [_ moved?
@@ -187,7 +187,7 @@
                                        (|>> (text.= child) not)
                                        (|>> (text.= sub_dir) not))
                                       (random.numeric 2))
-         expected_file_size (of ! each (|>> (n.% 10) ++) random.natural)
+         expected_file_size (by ! each (|>> (n.% 10) ++) random.natural)
          content ($binary.random expected_file_size)
          appendix ($binary.random expected_file_size)
          expected_time instant.random])
@@ -210,8 +210,8 @@
 
          can_execute?
          (|> path
-             (of fs can_execute?)
-             (of ! each (|>> (try.else true) not)))
+             (by fs can_execute?)
+             (by ! each (|>> (try.else true) not)))
 
          directory_files&sub_directories
          (..directory_files&sub_directories fs parent sub_dir child)
@@ -244,16 +244,16 @@
         [fs (async.future fs)
          .let [dir/1 (/.rooted fs dir/0 dir/1)
                dir/2 (/.rooted fs dir/1 dir/2)]
-         pre_dir/0 (of fs directory? dir/0)
-         pre_dir/1 (of fs directory? dir/1)
-         pre_dir/2 (of fs directory? dir/2)
+         pre_dir/0 (by fs directory? dir/0)
+         pre_dir/1 (by fs directory? dir/1)
+         pre_dir/2 (by fs directory? dir/2)
          made? (/.make_directories ! fs dir/2)
-         post_dir/0 (of fs directory? dir/0)
-         post_dir/1 (of fs directory? dir/1)
-         post_dir/2 (of fs directory? dir/2)
+         post_dir/0 (by fs directory? dir/0)
+         post_dir/1 (by fs directory? dir/1)
+         post_dir/2 (by fs directory? dir/2)
 
          cannot_make_directory!/0 (/.make_directories ! fs "")
-         cannot_make_directory!/1 (/.make_directories ! fs (of fs separator))])
+         cannot_make_directory!/1 (/.make_directories ! fs (by fs separator))])
       (all unit.and
            (unit.coverage [/.make_directories]
              (and (not pre_dir/0)
@@ -323,17 +323,17 @@
       (do [! async.monad]
         [fs (async.future fs)
          
-         pre_file/0 (of fs file? file)
+         pre_file/0 (by fs file? file)
          pre_file/1 (/.exists? ! fs file)
-         pre_dir/0 (of fs directory? dir)
+         pre_dir/0 (by fs directory? dir)
          pre_dir/1 (/.exists? ! fs dir)
 
          made_file? (/.make_file ! fs (utf8#injection file) file)
-         made_dir? (of fs make_directory dir)
+         made_dir? (by fs make_directory dir)
 
-         post_file/0 (of fs file? file)
+         post_file/0 (by fs file? file)
          post_file/1 (/.exists? ! fs file)
-         post_dir/0 (of fs directory? dir)
+         post_dir/0 (by fs directory? dir)
          post_dir/1 (/.exists? ! fs dir)])
       (unit.coverage [/.exists?]
         (and (not pre_file/0)
@@ -526,7 +526,7 @@
            {try.#Success {.#Right children}}
            (|> children
                (monad.only ! (..file? disk))
-               (of ! each (|>> {try.#Success})))
+               (by ! each (|>> {try.#Success})))
 
            failure
            (in {try.#Failure ""}))))
@@ -537,7 +537,7 @@
            {try.#Success {.#Right children}}
            (|> children
                (monad.only ! (..directory? disk))
-               (of ! each (|>> {try.#Success})))
+               (by ! each (|>> {try.#Success})))
 
            failure
            (in {try.#Failure ""}))))
@@ -590,7 +590,7 @@
 
              (in (do async.monad
                    [.let [fs (/.mock /)]
-                    ? (of fs delete file)]
+                    ? (by fs delete file)]
                    (unit.coverage [/.cannot_delete]
                      (when ?
                        {try.#Failure error}
@@ -600,7 +600,7 @@
                        false))))
              (in (do async.monad
                    [.let [fs (/.mock /)]
-                    ? (of fs read file)]
+                    ? (by fs read file)]
                    (unit.coverage [/.cannot_find_file]
                      (when ?
                        {try.#Failure error}
@@ -610,8 +610,8 @@
                        false))))
              (in (do async.monad
                    [.let [fs (/.mock /)]
-                    ?/0 (of fs directory_files file)
-                    ?/1 (of fs sub_directories file)]
+                    ?/0 (by fs directory_files file)
+                    ?/1 (by fs sub_directories file)]
                    (unit.coverage [/.cannot_find_directory]
                      (when [?/0 ?/1]
                        [{try.#Failure error/0} {try.#Failure error/1}]
diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux
index ae7f7df541..1f9e01db52 100644
--- a/stdlib/source/test/lux/world/file/watch.lux
+++ b/stdlib/source/test/lux/world/file/watch.lux
@@ -77,8 +77,8 @@
      .let [[fs watcher] (/.mock "/")]]
     (all _.and
          (in (do async.monad
-               [?concern (of watcher concern directory)
-                ?stop (of watcher stop directory)]
+               [?concern (by watcher concern directory)
+                ?stop (by watcher stop directory)]
                (unit.coverage [/.not_being_watched]
                  (and (when ?concern
                         {try.#Failure error}
@@ -97,18 +97,18 @@
 (the (no_events_prior_to_creation! fs watcher directory)
   (-> (//.System Async) (/.Watcher Async) //.Path (Async (Try Bit)))
   (do [! (try.with async.monad)]
-    [_ (of fs make_directory directory)
-     _ (of watcher start /.all directory)]
-    (|> (of watcher poll [])
-        (of ! each list.empty?))))
+    [_ (by fs make_directory directory)
+     _ (by watcher start /.all directory)]
+    (|> (by watcher poll [])
+        (by ! each list.empty?))))
 
 (the (after_creation! fs watcher expected_path)
   (-> (//.System Async) (/.Watcher Async) //.Path (Async (Try Bit)))
   (do (try.with async.monad)
     [_ (is (Async (Try Any))
            (//.make_file async.monad fs (binary.empty 0) expected_path))
-     poll/pre (of watcher poll [])
-     poll/post (of watcher poll [])]
+     poll/pre (by watcher poll [])
+     poll/post (by watcher poll [])]
     (in (and (when poll/pre
                (list [concern actual_path])
                (and (text.= expected_path actual_path)
@@ -124,9 +124,9 @@
   (-> (//.System Async) (/.Watcher Async) Binary //.Path (Async (Try Bit)))
   (do (try.with async.monad)
     [_ (async.after 1 {try.#Success "Delay to make sure the over_write time-stamp always changes."})
-     _ (of fs write expected_path data)
-     poll/2 (of watcher poll [])
-     poll/2' (of watcher poll [])]
+     _ (by fs write expected_path data)
+     poll/2 (by watcher poll [])
+     poll/2' (by watcher poll [])]
     (in (and (when poll/2
                (list [concern actual_path])
                (and (text.= expected_path actual_path)
@@ -141,9 +141,9 @@
 (the (after_deletion! fs watcher expected_path)
   (-> (//.System Async) (/.Watcher Async) //.Path (Async (Try Bit)))
   (do (try.with async.monad)
-    [_ (of fs delete expected_path)
-     poll/3 (of watcher poll [])
-     poll/3' (of watcher poll [])]
+    [_ (by fs delete expected_path)
+     poll/3 (by watcher poll [])
+     poll/3' (by watcher poll [])]
     (in (and (when poll/3
                (list [concern actual_path])
                (and (not (/.creation? concern))
@@ -167,7 +167,7 @@
              [directory (random.alphabetic 5)
               .let [/ "/"
                     [fs watcher] (/.mock /)]
-              expected_path (of ! each (|>> (%.message directory /))
+              expected_path (by ! each (|>> (%.message directory /))
                                 (random.alphabetic 5))
               data ($binary.random 10)]
              (in (do [! async.monad]
@@ -194,7 +194,7 @@
               .let [/ "/"
                     [fs watcher] (/.mock /)]]
              (in (do async.monad
-                   [started? (of watcher start /.all directory)]
+                   [started? (by watcher start /.all directory)]
                    (unit.coverage [/.cannot_poll_a_non_existent_directory]
                      (when started?
                        {try.#Success _}
diff --git a/stdlib/source/test/lux/world/finance/interest/rate.lux b/stdlib/source/test/lux/world/finance/interest/rate.lux
index 0481a9a185..990bca9f06 100644
--- a/stdlib/source/test/lux/world/finance/interest/rate.lux
+++ b/stdlib/source/test/lux/world/finance/interest/rate.lux
@@ -28,7 +28,7 @@
   (Random /.Rate)
   (do [! random.monad]
     [.let [max 100]
-     it (of ! each (n.% (++ max)) random.natural)
+     it (by ! each (n.% (++ max)) random.natural)
      gain? random.bit
      .let [it (d./ (n.decimal max)
                    (n.decimal it))]]
@@ -43,7 +43,7 @@
         [left ..random
          right ..random
 
-         money (of ! each (|>> (n.% 1,000) ++) random.natural)])
+         money (by ! each (|>> (n.% 1,000) ++) random.natural)])
       (_.for [/.Rate])
       (all _.and
            (_.for [/.monoid /.break_even /.compound]
diff --git a/stdlib/source/test/lux/world/finance/market/price.lux b/stdlib/source/test/lux/world/finance/market/price.lux
index d7380d45c7..53e40e0cc1 100644
--- a/stdlib/source/test/lux/world/finance/market/price.lux
+++ b/stdlib/source/test/lux/world/finance/market/price.lux
@@ -28,7 +28,7 @@
       (do [! random.monad]
         [$ currencyT.random
          not_free (moneyT.random $ 1000,00)
-         price (of ! each
+         price (by ! each
                    (|>> i.abs .natural (money.money $))
                    random.integer)])
       (_.for [/.Price])
diff --git a/stdlib/source/test/lux/world/finance/market/price/action.lux b/stdlib/source/test/lux/world/finance/market/price/action.lux
index b484a344aa..b4879d98cd 100644
--- a/stdlib/source/test/lux/world/finance/market/price/action.lux
+++ b/stdlib/source/test/lux/world/finance/market/price/action.lux
@@ -53,7 +53,7 @@
 
          not_free (moneyT.random $ 1000,00)
 
-         price (of ! each
+         price (by ! each
                    (|>> i.abs .natural (money.money $))
                    random.integer)
          .let [positive (/.action (//.free $)
@@ -75,12 +75,12 @@
            (_.coverage [/.+ /.-]
              (and (|> subject
                       (/.+ parameter)
-                      (of /.equivalence = subject)
+                      (by /.equivalence = subject)
                       not)
                   (|> subject
                       (/.+ parameter)
                       (/.- parameter)
-                      (of /.equivalence = subject))))
+                      (by /.equivalence = subject))))
            (_.coverage [/.min]
              (and (/.<= parameter
                         (/.min parameter subject))
diff --git a/stdlib/source/test/lux/world/finance/money.lux b/stdlib/source/test/lux/world/finance/money.lux
index d4be663f32..7c013ae45d 100644
--- a/stdlib/source/test/lux/world/finance/money.lux
+++ b/stdlib/source/test/lux/world/finance/money.lux
@@ -45,7 +45,7 @@
   (<| (_.covering /._)
       (do [! random.monad]
         [.let [random_amount (is (Random Natural)
-                                 (of ! each (n.% 1000,00) random.natural))]
+                                 (by ! each (n.% 1000,00) random.natural))]
          expected_amount random_amount
 
          expected_parameter (random.only (n.> 0) random_amount)
@@ -70,14 +70,14 @@
                    addition_shifts_the_value!
                    (|> subject
                        (/.+ parameter)
-                       (of /.equivalence = subject)
+                       (by /.equivalence = subject)
                        not)
 
                    addition_and_subtraction_are_inverses!
                    (|> subject
                        (/.+ parameter)
                        (/.- parameter)
-                       (maybe#each (of /.equivalence = subject))
+                       (maybe#each (by /.equivalence = subject))
                        (maybe.else false))]
                (and addition_shifts_the_value!
                     addition_and_subtraction_are_inverses!)))
@@ -114,7 +114,7 @@
            (do !
              [it (..random currency.usd 1000,00)]
              (_.coverage [/.injection]
-               (let [amount (of (n.padded 3 n.base_10) injection
+               (let [amount (by (n.padded 3 n.base_10) injection
                                 (/.amount it))
                      
                      has_amount!
diff --git a/stdlib/source/test/lux/world/finance/money/currency.lux b/stdlib/source/test/lux/world/finance/money/currency.lux
index 29dd8537e7..81e991326e 100644
--- a/stdlib/source/test/lux/world/finance/money/currency.lux
+++ b/stdlib/source/test/lux/world/finance/money/currency.lux
@@ -255,7 +255,7 @@
            (let [arity (list.size all_options)
                  all_options (sequence.of_list all_options)]
              (do [! random.monad]
-               [choice (of ! each (n.% arity) random.natural)]
+               [choice (by ! each (n.% arity) random.natural)]
                (in (maybe.trusted (sequence.item choice all_options))))))
          
          (the .public test
diff --git a/stdlib/source/test/lux/world/finance/trade/session.lux b/stdlib/source/test/lux/world/finance/trade/session.lux
index e8c09182f8..0da5a918af 100644
--- a/stdlib/source/test/lux/world/finance/trade/session.lux
+++ b/stdlib/source/test/lux/world/finance/trade/session.lux
@@ -146,7 +146,7 @@
                          (money.>= (its [/.#volume volume.#out] after)
                                    (its [/.#volume volume.#out] both))))))
            (_.coverage [/.injection]
-             (bit.= (of /.equivalence =
+             (bit.= (by /.equivalence =
                         before
                         after)
                     (text.= (/.injection before)
diff --git a/stdlib/source/test/lux/world/finance/trade/volume.lux b/stdlib/source/test/lux/world/finance/trade/volume.lux
index 2ec7e7a308..9348c4577d 100644
--- a/stdlib/source/test/lux/world/finance/trade/volume.lux
+++ b/stdlib/source/test/lux/world/finance/trade/volume.lux
@@ -30,7 +30,7 @@
     (-> (Currency $) Natural
         (Random (/.Volume $))))
   (all random.and
-       (of random.monad each (n.% max_sub_units) random.natural)
+       (by random.monad each (n.% max_sub_units) random.natural)
        (moneyT.random $ max_sub_units)))
 
 (the .public test
diff --git a/stdlib/source/test/lux/world/input/keyboard.lux b/stdlib/source/test/lux/world/input/keyboard.lux
index c209136442..219364da26 100644
--- a/stdlib/source/test/lux/world/input/keyboard.lux
+++ b/stdlib/source/test/lux/world/input/keyboard.lux
@@ -146,7 +146,7 @@
            (Random /.Key)
            (let [count (list.size ..listing)]
              (do [! random.monad]
-               [choice (of ! each (n.% count) random.natural)]
+               [choice (by ! each (n.% count) random.natural)]
                (in (maybe.trusted (list.item choice ..listing))))))
 
          (the .public test
diff --git a/stdlib/source/test/lux/world/locale.lux b/stdlib/source/test/lux/world/locale.lux
index ffff7b89cf..da554daf04 100644
--- a/stdlib/source/test/lux/world/locale.lux
+++ b/stdlib/source/test/lux/world/locale.lux
@@ -67,15 +67,15 @@
                      fixed_encoding ..random_encoding]
                     (all _.and
                          (|> ..random_language
-                             (of ! each (function (_ language)
+                             (by ! each (function (_ language)
                                           (/.locale language {.#Some fixed_territory} {.#Some fixed_encoding})))
                              (hashT.spec /.hash))
                          (|> ..random_territory
-                             (of ! each (function (_ territory)
+                             (by ! each (function (_ territory)
                                           (/.locale fixed_language {.#Some territory} {.#Some fixed_encoding})))
                              (hashT.spec /.hash))
                          (|> ..random_encoding
-                             (of ! each (function (_ encoding)
+                             (by ! each (function (_ encoding)
                                           (/.locale fixed_language {.#Some fixed_territory} {.#Some encoding})))
                              (hashT.spec /.hash))
                          )))
diff --git a/stdlib/source/test/lux/world/locale/language.lux b/stdlib/source/test/lux/world/locale/language.lux
index b5deae9237..7a58dbd92b 100644
--- a/stdlib/source/test/lux/world/locale/language.lux
+++ b/stdlib/source/test/lux/world/locale/language.lux
@@ -223,7 +223,7 @@
 (the !aliases
   (template.macro (_  )
     [(_.coverage 
-       (list.every? (of /.equivalence = )
+       (list.every? (by /.equivalence = )
                     (`` (list (,, (template.spliced ))))))]))
 
 (the aliases_test/0
@@ -290,7 +290,7 @@
                     (list#each (|>> (its #languages) set.list))
                     list.together)]
     (do [! random.monad]
-      [choice (of ! each (n.% (list.size options))
+      [choice (by ! each (n.% (list.size options))
                   random.natural)]
       (in (maybe.trusted (list.item choice options))))))
 
diff --git a/stdlib/source/test/lux/world/locale/territory.lux b/stdlib/source/test/lux/world/locale/territory.lux
index d323a94b38..5769e6bd5b 100644
--- a/stdlib/source/test/lux/world/locale/territory.lux
+++ b/stdlib/source/test/lux/world/locale/territory.lux
@@ -180,7 +180,7 @@
 (the !aliases
   (template.macro (_  )
     [(_.coverage 
-       (list.every? (of /.equivalence = )
+       (list.every? (by /.equivalence = )
                     (`` (list (,, (template.spliced ))))))]))
 
 (the aliases_test
@@ -216,7 +216,7 @@
                     (list#each (|>> (its #territories) set.list))
                     list.together)]
     (do [! random.monad]
-      [choice (of ! each (n.% (list.size options))
+      [choice (by ! each (n.% (list.size options))
                   random.natural)]
       (in (maybe.trusted (list.item choice options))))))
 
diff --git a/stdlib/source/test/lux/world/logging.lux b/stdlib/source/test/lux/world/logging.lux
index 66a3fc0274..f0af84540f 100644
--- a/stdlib/source/test/lux/world/logging.lux
+++ b/stdlib/source/test/lux/world/logging.lux
@@ -58,8 +58,8 @@
                (let [console (console.async (console.mock ..mock ""))
                      it (/.console console)]
                  (in (do async.monad
-                       [logged? (of it log expected_message)
-                        actual_message (of console read_line [])]
+                       [logged? (by it log expected_message)
+                        actual_message (by console read_line [])]
                        (unit.coverage [/.console /.log]
                          (when [logged? actual_message]
                            [{try.#Success _}
@@ -73,7 +73,7 @@
                             it (/.console console)]
                         (in (do async.monad
                               [logged? ( expected_message it)
-                               actual_message (of console read_line [])]
+                               actual_message (by console read_line [])]
                               (unit.coverage []
                                 (when [logged? actual_message]
                                   [{try.#Success _}
@@ -94,8 +94,8 @@
                             (/.with (text.suffix expected_appendix)
                               (/.console console)))]
                  (in (do async.monad
-                       [logged? (of it log expected_message)
-                        actual_message (of console read_line [])]
+                       [logged? (by it log expected_message)
+                        actual_message (by console read_line [])]
                        (unit.coverage [/.with]
                          (when [logged? actual_message]
                            [{try.#Success _}
@@ -112,8 +112,8 @@
                                        (async#in expected_instant))
                                      (/.console console)))]
                  (in (do async.monad
-                       [logged? (of it log expected_message)
-                        actual_message (of console read_line [])]
+                       [logged? (by it log expected_message)
+                        actual_message (by console read_line [])]
                        (unit.coverage [/.timed]
                          (when [logged? actual_message]
                            [{try.#Success _}
diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux
index 7ca5248c14..67c973253b 100644
--- a/stdlib/source/test/lux/world/net/http/client.lux
+++ b/stdlib/source/test/lux/world/net/http/client.lux
@@ -52,10 +52,10 @@
           product.right
           (its //.#body)
           (function.on {.#None})
-          (of ! each (|>> (pipe.do try.monad
+          (by ! each (|>> (pipe.do try.monad
                             []
-                            [product.right (of utf8.format projection)]
-                            [(of natural.base_10 projection)]
+                            [product.right (by utf8.format projection)]
+                            [(by natural.base_10 projection)]
                             [(natural.= expected) in])
                           (try.else false))))
       
@@ -76,7 +76,7 @@
          on_connect random.natural
          on_options random.natural
          on_trace random.natural
-         num_headers (of ! each (natural.% 10) random.natural)
+         num_headers (by ! each (natural.% 10) random.natural)
          headers (random.dictionary text.hash num_headers (random.lower_cased 3) (random.lower_cased 3))
          .let [mock (is (/.Client IO)
                         (implementation
@@ -92,8 +92,8 @@
                                                 {//.#Options} on_options
                                                 {//.#Trace} on_trace)
                                         data (|> value
-                                                 (of natural.base_10 injection)
-                                                 (of utf8.format injection))]
+                                                 (by natural.base_10 injection)
+                                                 (by utf8.format injection))]
                                     {try.#Success [//status.ok
                                                    [//.#headers headers
                                                     //.#body (function (_ ?wanted_bytes)
diff --git a/stdlib/source/test/lux/world/net/http/header.lux b/stdlib/source/test/lux/world/net/http/header.lux
index 463006641d..c1338f91a6 100644
--- a/stdlib/source/test/lux/world/net/http/header.lux
+++ b/stdlib/source/test/lux/world/net/http/header.lux
@@ -88,6 +88,6 @@
                (|> /.empty
                    (/.has /.set_cookies expected_jar)
                    (/.one /.set_cookies)
-                   (try#each (of cookie.equivalence = expected_jar))
+                   (try#each (by cookie.equivalence = expected_jar))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/lux/world/net/http/response.lux b/stdlib/source/test/lux/world/net/http/response.lux
index d57e7752e8..9df3f54da4 100644
--- a/stdlib/source/test/lux/world/net/http/response.lux
+++ b/stdlib/source/test/lux/world/net/http/response.lux
@@ -57,11 +57,11 @@
         [expected_status statusT.random
          expected_mime mimeT.random
          
-         utf8_length (of ! each (n.% 10) random.natural)
+         utf8_length (by ! each (n.% 10) random.natural)
          utf8 (random.upper_cased utf8_length)
          .let [utf8_data (utf8#injection utf8)]
 
-         expected_url (of ! each (text.prefix "http://www.example.com/")
+         expected_url (by ! each (text.prefix "http://www.example.com/")
                           (random.upper_cased 1))
 
          .let [expected_html (html.html/5
diff --git a/stdlib/source/test/lux/world/net/http/server.lux b/stdlib/source/test/lux/world/net/http/server.lux
index 51bb863f3a..a4e8fd4f80 100644
--- a/stdlib/source/test/lux/world/net/http/server.lux
+++ b/stdlib/source/test/lux/world/net/http/server.lux
@@ -106,7 +106,7 @@
   (all random.and
        (random#in header.empty)
        (random#in (function (_ _)
-                    (of ! in {try.#Success [(binary.size body) body]})))
+                    (by ! in {try.#Success [(binary.size body) body]})))
        ))
 
 (the data
@@ -138,7 +138,7 @@
          [expected_data_size expected_data] ..data
          .let [expected_server (is /.Server
                                    (function (_ ! request)
-                                     (of ! in (response.content ! expected_status expected_mime expected_data))))]])
+                                     (by ! in (response.content ! expected_status expected_mime expected_data))))]])
       (`` (all _.and
                (,, (template.with [ ]
                      [(in (do [! async.monad]
@@ -177,7 +177,7 @@
          [expected_data_size expected_data] ..data
          .let [expected_server (is /.Server
                                    (function (_ ! request)
-                                     (of ! in (response.content ! expected_status expected_mime expected_data))))]])
+                                     (by ! in (response.content ! expected_status expected_mime expected_data))))]])
       (`` (all _.and
                (,, (template.with [  ]
                      [(in (do [! async.monad]
@@ -225,7 +225,7 @@
          [expected_data_size expected_data] ..data
          .let [expected_server (is /.Server
                                    (function (_ ! request)
-                                     (of ! in (response.content ! expected_status expected_mime expected_data))))]])
+                                     (by ! in (response.content ! expected_status expected_mime expected_data))))]])
       (_.for [/.Server])
       (`` (all _.and
                ..scheme_test
diff --git a/stdlib/source/test/lux/world/net/http/status.lux b/stdlib/source/test/lux/world/net/http/status.lux
index ed48473472..459389426c 100644
--- a/stdlib/source/test/lux/world/net/http/status.lux
+++ b/stdlib/source/test/lux/world/net/http/status.lux
@@ -109,7 +109,7 @@
          (the .public random
            (Random /.Status)
            (do [! random.monad]
-             [choice (of ! each (n.% (set.size ..unique))
+             [choice (by ! each (n.% (set.size ..unique))
                          random.natural)]
              (in (maybe.trusted (list.item choice all)))))
 
diff --git a/stdlib/source/test/lux/world/net/mime.lux b/stdlib/source/test/lux/world/net/mime.lux
index 6c2fdb7594..989ba9c377 100644
--- a/stdlib/source/test/lux/world/net/mime.lux
+++ b/stdlib/source/test/lux/world/net/mime.lux
@@ -175,7 +175,7 @@
                       (|> expected
                           /.name
                           /.mime
-                          (of /.equivalence = expected)))
+                          (by /.equivalence = expected)))
                     
                     (_.coverage [/.text]
                       (|> (/.text encoding)
diff --git a/stdlib/source/test/lux/world/net/uri/encoding.lux b/stdlib/source/test/lux/world/net/uri/encoding.lux
index adda1a9a68..30ef45e144 100644
--- a/stdlib/source/test/lux/world/net/uri/encoding.lux
+++ b/stdlib/source/test/lux/world/net/uri/encoding.lux
@@ -35,8 +35,8 @@
          left (random.lower_cased 1)
          middle (random.lower_cased 1)
          right (random.lower_cased 1)
-         left_choice (of ! each (n.% variety) random.natural)
-         right_choice (of ! each (n.% variety) random.natural)
+         left_choice (by ! each (n.% variety) random.natural)
+         right_choice (by ! each (n.% variety) random.natural)
          .let [left_choice (maybe.trusted (list.item left_choice choices))
                right_choice (maybe.trusted (list.item right_choice choices))
                unsafe (%.message left
diff --git a/stdlib/source/test/lux/world/net/uri/path.lux b/stdlib/source/test/lux/world/net/uri/path.lux
index ed1bfc9113..50b53fc0e6 100644
--- a/stdlib/source/test/lux/world/net/uri/path.lux
+++ b/stdlib/source/test/lux/world/net/uri/path.lux
@@ -23,7 +23,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [segments (of ! each (n.% 10) random.natural)
+        [segments (by ! each (n.% 10) random.natural)
          segments (random.list segments (random.lower_cased 1))])
       (_.for [/.Path])
       (all _.and
diff --git a/stdlib/source/test/lux/world/net/uri/scheme.lux b/stdlib/source/test/lux/world/net/uri/scheme.lux
index 70b486bce8..fcdc4e56e8 100644
--- a/stdlib/source/test/lux/world/net/uri/scheme.lux
+++ b/stdlib/source/test/lux/world/net/uri/scheme.lux
@@ -76,7 +76,7 @@
                           (|> expected
                               /.name
                               /.scheme
-                              (of /.equivalence = expected)))
+                              (by /.equivalence = expected)))
                         (_.coverage [(,, (template.with []
                                            []
 
@@ -93,7 +93,7 @@
                                  (set.size uniques))))
                         (,, (template.with [ ]
                               [(_.coverage []
-                                 (of /.equivalence =  ))]
+                                 (by /.equivalence =  ))]
 
                               [/.acap /.application_configuration_access_protocol]
 
diff --git a/stdlib/source/test/lux/world/output/video/resolution.lux b/stdlib/source/test/lux/world/output/video/resolution.lux
index d555181bd7..f9b51a0f95 100644
--- a/stdlib/source/test/lux/world/output/video/resolution.lux
+++ b/stdlib/source/test/lux/world/output/video/resolution.lux
@@ -57,7 +57,7 @@
            (Random /.Resolution)
            (let [count (list.size ..listing)]
              (do [! random.monad]
-               [choice (of ! each (n.% count) random.natural)]
+               [choice (by ! each (n.% count) random.natural)]
                (in (maybe.trusted (list.item choice ..listing))))))
 
          (the .public test
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux
index c44aa518bb..10c218c37f 100644
--- a/stdlib/source/test/lux/world/shell.lux
+++ b/stdlib/source/test/lux/world/shell.lux
@@ -48,7 +48,7 @@
 
 (the (can_wait! process)
   (-> (/.Process Async) unit.Test)
-  (|> (of process await [])
+  (|> (by process await [])
       (async#each (|>> (try#each (i.= /.normal))
                        (try.else false)
                        (unit.coverage [/.Exit /.normal])))
@@ -56,15 +56,15 @@
 
 (the (can_read! expected process)
   (-> Text (/.Process Async) (Async Bit))
-  (|> (of process read [])
+  (|> (by process read [])
       (async#each (|>> (try#each (text.= expected))
                        (try.else false)))))
 
 (the (can_destroy! process)
   (-> (/.Process Async) (Async Bit))
   (do async.monad
-    [?destroy (of process destroy [])
-     ?await (of process await [])]
+    [?destroy (by process destroy [])
+     ?await (by process await [])]
     (in (and (when ?destroy
                {try.#Success _}
                true
@@ -89,10 +89,10 @@
                 /.read /.fail /.write /.destroy /.await])
         (do [! random.monad]
           [message (random.alphabetic 10)
-           seconds (of ! each (|>> (n.% 5) (n.+ 5)) random.natural)]
+           seconds (by ! each (|>> (n.% 5) (n.+ 5)) random.natural)]
           (in (do [! async.monad]
-                [?echo (of shell execute (..echo! message))
-                 ?sleep (of shell execute (..sleep! seconds))]
+                [?echo (by shell execute (..echo! message))
+                 ?sleep (by shell execute (..sleep! seconds))]
                 (when [?echo ?sleep]
                   [{try.#Success echo} {try.#Success sleep}]
                   (do !
@@ -182,11 +182,11 @@
               .let [shell (/.async (..io_shell command oops input destruction exit))]]
              (in (do [! async.monad]
                    [verdict (do (try.with !)
-                              [process (of shell execute [environment.empty "~" command (list)])
-                               read (of process read [])
-                               failure (of process fail [])
+                              [process (by shell execute [environment.empty "~" command (list)])
+                               read (by process read [])
+                               failure (by process fail [])
                                wrote! (do !
-                                        [write (of process write input)]
+                                        [write (by process write input)]
                                         (in {try.#Success (when write
                                                             {try.#Success _}
                                                             false
@@ -194,14 +194,14 @@
                                                             {try.#Failure write}
                                                             (text.= input write))}))
                                destroyed! (do !
-                                            [destroy (of process destroy [])]
+                                            [destroy (by process destroy [])]
                                             (in {try.#Success (when destroy
                                                                 {try.#Success _}
                                                                 false
                                                                 
                                                                 {try.#Failure destroy}
                                                                 (text.= destruction destroy))}))
-                               await (of process await [])]
+                               await (by process await [])]
                               (in (and (text.= command read)
                                        (text.= oops failure)
                                        wrote!
diff --git a/stdlib/source/test/lux/world/time.lux b/stdlib/source/test/lux/world/time.lux
index 5a357c10f8..00b98543ea 100644
--- a/stdlib/source/test/lux/world/time.lux
+++ b/stdlib/source/test/lux/world/time.lux
@@ -55,7 +55,7 @@
            (|> expected
                /.clock
                /.time
-               (try#each (of /.equivalence = expected))
+               (try#each (by /.equivalence = expected))
                (try.else false)))
          (let [expected (/.clock expected)]
            (`` (all _.and
@@ -73,10 +73,10 @@
 (the for_ranges
   Test
   (do [! random.monad]
-    [valid_hour (of ! each (|>> (n.% /.hours) (n.max 10)) random.natural)
-     valid_minute (of ! each (|>> (n.% /.minutes) (n.max 10)) random.natural)
-     valid_second (of ! each (|>> (n.% /.seconds) (n.max 10)) random.natural)
-     valid_milli_second (of ! each (n.% /.milli_seconds) random.natural)
+    [valid_hour (by ! each (|>> (n.% /.hours) (n.max 10)) random.natural)
+     valid_minute (by ! each (|>> (n.% /.minutes) (n.max 10)) random.natural)
+     valid_second (by ! each (|>> (n.% /.seconds) (n.max 10)) random.natural)
+     valid_milli_second (by ! each (n.% /.milli_seconds) random.natural)
 
      .let [invalid_hour (|> valid_hour (n.+ /.hours))
            invalid_minute (|> valid_minute (n.+ /.minutes) (n.min 99))
@@ -89,7 +89,7 @@
                                 %.natural
                                 (text.prefix )
                                 (text.suffix )
-                                (of /.format projection)
+                                (by /.format projection)
                                 (pipe.when
                                   {try.#Success _} true
                                   {try.#Failure error} false))
@@ -99,7 +99,7 @@
                                 %.natural
                                 (text.prefix )
                                 (text.suffix )
-                                (of /.format projection)
+                                (by /.format projection)
                                 (pipe.when
                                   {try.#Success _}
                                   false
@@ -117,7 +117,7 @@
                (|> valid_milli_second
                    %.natural
                    (%.message "00:00:00.")
-                   (of /.format projection)
+                   (by /.format projection)
                    (pipe.when
                      {try.#Success _} true
                      {try.#Failure error} false)))
@@ -131,7 +131,7 @@
         [.let [day (.natural (duration.millis duration.day))]
          expected /.random
 
-         out_of_bounds (of ! each (|>> /.millis (n.+ day))
+         out_of_bounds (by ! each (|>> /.millis (n.+ day))
                            /.random)]
         (`` (all _.and
                  (_.for [/.equivalence /.=]
@@ -148,7 +148,7 @@
                    (|> expected
                        /.millis
                        /.of_millis
-                       (try#each (of /.equivalence = expected))
+                       (try#each (by /.equivalence = expected))
                        (try.else false)))
                  (_.coverage [/.time_exceeds_a_day]
                    (when (/.of_millis out_of_bounds)
@@ -167,14 +167,14 @@
                      (|> expected
                          /.as_text
                          (?text.value /.projection)
-                         (try#each (of /.equivalence = expected))
+                         (try#each (by /.equivalence = expected))
                          (try.else false))))
                  (do random.monad
                    [expected /.random
-                    actual (random.only (|>> (of /.equivalence = expected) not)
+                    actual (random.only (|>> (by /.equivalence = expected) not)
                                         /.random)]
                    (_.coverage [/.random]
-                     (not (of /.equivalence = expected actual))))
+                     (not (by /.equivalence = expected actual))))
                  ..for_ranges
                  (_.for [/.Clock]
                         ..for_clock)
diff --git a/stdlib/source/test/lux/world/time/date.lux b/stdlib/source/test/lux/world/time/date.lux
index 86096f7fbc..8908e1d667 100644
--- a/stdlib/source/test/lux/world/time/date.lux
+++ b/stdlib/source/test/lux/world/time/date.lux
@@ -56,7 +56,7 @@
                (|> (/.date (/.year expected)
                            (/.month expected)
                            (/.day_of_month expected))
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (do random.monad
              [expected /.random]
@@ -75,17 +75,17 @@
                (|> expected
                    /.as_days
                    /.of_days
-                   (of /.equivalence = expected))))
+                   (by /.equivalence = expected))))
            (_.coverage [/.epoch]
              (|> /.epoch
                  /.as_days
                  (i.= +0)))
            (do [! random.monad]
-             [year (of ! each (|>> (n.% 10,000) ++)
+             [year (by ! each (|>> (n.% 10,000) ++)
                        random.natural)
-              month (of ! each (|>> (n.% 10) (n.+ 13))
+              month (by ! each (|>> (n.% 10) (n.+ 13))
                         random.natural)
-              day (of ! each (|>> (n.% 10) (n.+ 10))
+              day (by ! each (|>> (n.% 10) (n.+ 10))
                       random.natural)
               .let [input (%.message (%.natural year)
                                      "-" (%.natural month)
@@ -103,12 +103,12 @@
                (|> expected
                    /.as_text
                    (?text.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (do random.monad
              [expected /.random
-              actual (random.only (|>> (of /.equivalence = expected) not)
+              actual (random.only (|>> (by /.equivalence = expected) not)
                                   /.random)]
              (_.coverage [/.random]
-               (not (of /.equivalence = expected actual))))
+               (not (by /.equivalence = expected actual))))
            )))
diff --git a/stdlib/source/test/lux/world/time/day.lux b/stdlib/source/test/lux/world/time/day.lux
index 8597ea044e..a5ca7a5213 100644
--- a/stdlib/source/test/lux/world/time/day.lux
+++ b/stdlib/source/test/lux/world/time/day.lux
@@ -75,8 +75,8 @@
 
                (,, (template.with [  ]
                      [(_.coverage []
-                        (and (of /.equivalence = {} (of /.enum pred {}))
-                             (of /.equivalence = {} (of /.enum succ {}))))]
+                        (and (by /.equivalence = {} (by /.enum pred {}))
+                             (by /.equivalence = {} (by /.enum succ {}))))]
 
                      [/.#Saturday /.#Sunday /.#Monday]
                      [/.#Sunday /.#Monday /.#Tuesday]
@@ -90,7 +90,7 @@
                  (|> expected
                      /.number
                      /.by_number
-                     (try#each (of /.equivalence = expected))
+                     (try#each (by /.equivalence = expected))
                      (try.else false)))
                (_.coverage [/.invalid_day]
                  (when (/.by_number invalid)
@@ -112,12 +112,12 @@
                    (|> expected
                        /.as_text
                        (?text.value /.projection)
-                       (try#each (of /.equivalence = expected))
+                       (try#each (by /.equivalence = expected))
                        (try.else false))))
                (do random.monad
                  [expected /.random
-                  actual (random.only (|>> (of /.equivalence = expected) not)
+                  actual (random.only (|>> (by /.equivalence = expected) not)
                                       /.random)]
                  (_.coverage [/.random]
-                   (not (of /.equivalence = expected actual))))
+                   (not (by /.equivalence = expected actual))))
                ))))
diff --git a/stdlib/source/test/lux/world/time/duration.lux b/stdlib/source/test/lux/world/time/duration.lux
index 77b44ef8d9..5d661a1017 100644
--- a/stdlib/source/test/lux/world/time/duration.lux
+++ b/stdlib/source/test/lux/world/time/duration.lux
@@ -57,7 +57,7 @@
            (do random.monad
              [duration /.random]
              (_.coverage [/.of_millis /.millis]
-               (|> duration /.millis /.of_millis (of /.equivalence = duration))))
+               (|> duration /.millis /.of_millis (by /.equivalence = duration))))
            (do random.monad
              [expected /.random
               parameter /.random]
@@ -83,7 +83,7 @@
              [.let [(open "/#[0]") /.order
                     positive (|> /.random
                                  (random.only (|>> (/.= /.empty) not))
-                                 (of ! each (function (_ duration)
+                                 (by ! each (function (_ duration)
                                               (if (/.positive? duration)
                                                 duration
                                                 (/.inverse duration)))))]
@@ -98,7 +98,7 @@
                       (_.coverage [/.ticks]
                         (i.= +1 (/.ticks sample sample)))
                       (_.coverage [/.milli_second]
-                        (/.= /.empty (of /.enum pred /.milli_second)))
+                        (/.= /.empty (by /.enum pred /.milli_second)))
                       (,, (template.with [  ]
                             [(_.coverage []
                                (|>  (/.ticks ) (i.= )))]
@@ -119,12 +119,12 @@
                (|> expected
                    /.as_text
                    (?text.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            (do random.monad
              [expected /.random
-              actual (random.only (|>> (of /.equivalence = expected) not)
+              actual (random.only (|>> (by /.equivalence = expected) not)
                                   /.random)]
              (_.coverage [/.random]
-               (not (of /.equivalence = expected actual))))
+               (not (by /.equivalence = expected actual))))
            )))
diff --git a/stdlib/source/test/lux/world/time/instant.lux b/stdlib/source/test/lux/world/time/instant.lux
index f4c8c77324..1f8afa02b6 100644
--- a/stdlib/source/test/lux/world/time/instant.lux
+++ b/stdlib/source/test/lux/world/time/instant.lux
@@ -130,15 +130,15 @@
                false))
            (do random.monad
              [expected /.random
-              actual (random.only (|>> (of /.equivalence = expected) not) /.random)]
+              actual (random.only (|>> (by /.equivalence = expected) not) /.random)]
              (_.coverage [/.random]
-               (not (of /.equivalence = expected actual))))
+               (not (by /.equivalence = expected actual))))
            (do random.monad
              [expected /.random]
              (_.coverage [/.as_text /.projection]
                (|> expected
                    /.as_text
                    (?text.value /.projection)
-                   (try#each (of /.equivalence = expected))
+                   (try#each (by /.equivalence = expected))
                    (try.else false))))
            )))
diff --git a/stdlib/source/test/lux/world/time/month.lux b/stdlib/source/test/lux/world/time/month.lux
index 2e43451e59..e24af8db68 100644
--- a/stdlib/source/test/lux/world/time/month.lux
+++ b/stdlib/source/test/lux/world/time/month.lux
@@ -62,8 +62,8 @@
 
                (,, (template.with [  ]
                      [(_.coverage []
-                        (and (of /.equivalence = {} (of /.enum pred {}))
-                             (of /.equivalence = {} (of /.enum succ {}))))]
+                        (and (by /.equivalence = {} (by /.enum pred {}))
+                             (by /.equivalence = {} (by /.enum succ {}))))]
 
                      [/.#December /.#January /.#February]
                      [/.#January /.#February /.#March]
@@ -88,7 +88,7 @@
                         (|> expected
                             /.number
                             /.by_number
-                            (try#each (of /.equivalence = expected))
+                            (try#each (by /.equivalence = expected))
                             (try.else false)))
                       (_.coverage [/.invalid_month]
                         (when (/.by_number invalid)
@@ -122,12 +122,12 @@
                           (|> expected
                               /.as_text
                               (?text.value /.projection)
-                              (try#each (of /.equivalence = expected))
+                              (try#each (by /.equivalence = expected))
                               (try.else false))))
                       (do random.monad
                         [expected /.random
-                         actual (random.only (|>> (of /.equivalence = expected) not)
+                         actual (random.only (|>> (by /.equivalence = expected) not)
                                              /.random)]
                         (_.coverage [/.random]
-                          (not (of /.equivalence = expected actual))))
+                          (not (by /.equivalence = expected actual))))
                       ))))))
diff --git a/stdlib/source/test/lux/world/time/series.lux b/stdlib/source/test/lux/world/time/series.lux
index 849f0c7cf8..06d3dc939a 100644
--- a/stdlib/source/test/lux/world/time/series.lux
+++ b/stdlib/source/test/lux/world/time/series.lux
@@ -46,10 +46,10 @@
         (Random (/.Series of))))
   (do [! random.monad]
     [.let [duration (random.only duration.positive? duration.random)]
-     offset (of ! each (duration.framed (duration.up 100 duration.normal_year))
+     offset (by ! each (duration.framed (duration.up 100 duration.normal_year))
                 duration)
      .let [start (instant.after offset instant.epoch)]
-     interval (of ! each (duration.framed duration.week)
+     interval (by ! each (duration.framed duration.week)
                   duration)
      data (sequence.random events it)]
     (in [/.#start start
@@ -68,7 +68,7 @@
   Test
   (<| (_.covering /._)
       (do [! random.monad]
-        [expected_size (of ! each (|>> (n.% 10) (n.+ 2)) random.natural)
+        [expected_size (by ! each (|>> (n.% 10) (n.+ 2)) random.natural)
          expected_series (..random expected_size random.natural)
 
          before random.natural
@@ -76,8 +76,8 @@
          expected_start instant.random
          expected_interval duration.random
 
-         window_size (of ! each (|>> (n.% expected_size) ++) random.natural)
-         window_offset (of ! each (n.% (++ (n.- window_size expected_size))) random.natural)])
+         window_size (by ! each (|>> (n.% expected_size) ++) random.natural)
+         window_offset (by ! each (n.% (++ (n.- window_size expected_size))) random.natural)])
       (_.for [/.Series
               /.#start /.#interval /.#data])
       (`` (all _.and
diff --git a/stdlib/source/test/lux/world/time/year.lux b/stdlib/source/test/lux/world/time/year.lux
index b6414baae2..943f443844 100644
--- a/stdlib/source/test/lux/world/time/year.lux
+++ b/stdlib/source/test/lux/world/time/year.lux
@@ -48,7 +48,7 @@
                   (orderT.spec /.order /.random))
            (_.for [/.format /.projection
                    /.as_text]
-                  (static.when (same? /.as_text (of /.format injection))
+                  (static.when (same? /.as_text (by /.format injection))
                     (formatT.spec /.equivalence /.format /.random)))
            
            (do random.monad
@@ -78,7 +78,7 @@
              (n.= (.natural (//duration.ticks //duration.day //duration.normal_year))
                   /.days))
            (_.coverage [/.epoch]
-             (of /.equivalence =
+             (by /.equivalence =
                  (//date.year (//instant.date //instant.epoch))
                  /.epoch))
            (_.for [/.Period]
@@ -101,8 +101,8 @@
                   ))
            (do random.monad
              [expected /.random
-              actual (random.only (|>> (of /.equivalence = expected) not)
+              actual (random.only (|>> (by /.equivalence = expected) not)
                                   /.random)]
              (_.coverage [/.random]
-               (not (of /.equivalence = expected actual))))
+               (not (by /.equivalence = expected actual))))
            )))
diff --git a/to_do.md b/to_do.md
index af28bd0d9c..1878bea802 100644
--- a/to_do.md
+++ b/to_do.md
@@ -86,7 +86,7 @@
 
 ## Done
 
-0. Optimize compilation of pattern-matching expressions like `(when    _ )` into if expressions that test the literal, instead of full-blown pattern-matching.
+0. [(Commit)](https://github.com/LuxLang/lux/commit/f53ef960bad9b5e9b1374a8b32485f1e3b4073b9) Optimize compilation of pattern-matching expressions like `(when    _ )` into if expressions that test the literal, instead of full-blown pattern-matching.
    * Add `if_i64` & `if_f64` & `if_text` synthesis `Term`s.
 0. [(Commit)](https://github.com/LuxLang/lux/commit/68bccd4f87fe514cadc4437447c121e3177646bf) Add `<`, `<=`, `>`, `>=` definitions to every module that has an `Order`.
 0. [(Commit)](https://github.com/LuxLang/lux/commit/68bccd4f87fe514cadc4437447c121e3177646bf) Re-name `panic!` to `halt!` in honor of the [halting problem](https://en.wikipedia.org/wiki/Halting_problem).