A typo in an identifier should not lead to the following. Although I understand that `lein repl` trims stack traces, that should be the default, rather than having every substantial user-facing program trim `clojure.lang.Compiler` (etc.) messages for the sake of its users.
> Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: midje-position-stringx in this context, compiling:(midje/emission/plugins/default.clj:34)
> at clojure.lang.Compiler.analyze(Compiler.java:6281)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3548)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2650)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618)
> at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5919)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2650)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618)
> at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5919)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3548)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3548)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3548)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618)
> at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5054)
> at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3674)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6453)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6443)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.access$100(Compiler.java:37)
> at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:518)
> at clojure.lang.Compiler.analyzeSeq(Compiler.java:6455)
> at clojure.lang.Compiler.analyze(Compiler.java:6262)
> at clojure.lang.Compiler.analyze(Compiler.java:6223)
> at clojure.lang.Compiler.eval(Compiler.java:6515)
> at clojure.lang.Compiler.load(Compiler.java:6952)
> at clojure.lang.RT.loadResourceScript(RT.java:359)
> at clojure.lang.RT.loadResourceScript(RT.java:350)
> at clojure.lang.RT.load(RT.java:429)
> at clojure.lang.RT.load(RT.java:400)
> at clojure.core$load$fn__4890.invoke(core.clj:5415)
> at clojure.core$load.doInvoke(core.clj:5414)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invoke(core.clj:5227)
> at clojure.core$load_lib.doInvoke(core.clj:5264)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$load_libs.doInvoke(core.clj:5298)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$require.doInvoke(core.clj:5381)
> at clojure.lang.RestFn.invoke(RestFn.java:421)
> at midje.emission.api$load_plugin.invoke(api.clj:25)
> at clojure.lang.Var.invoke(Var.java:415)
> at midje.Bootstrap$bootstrap.invoke(Bootstrap.clj:17)
> at midje.repl$eval23.invoke(sweet.clj:2)
> at clojure.lang.Compiler.eval(Compiler.java:6511)
> at clojure.lang.Compiler.load(Compiler.java:6952)
> at clojure.lang.RT.loadResourceScript(RT.java:359)
> at clojure.lang.RT.loadResourceScript(RT.java:350)
> at clojure.lang.RT.load(RT.java:429)
> at clojure.lang.RT.load(RT.java:400)
> at clojure.core$load$fn__4890.invoke(core.clj:5415)
> at clojure.core$load.doInvoke(core.clj:5414)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invoke(core.clj:5227)
> at clojure.core$load_lib.doInvoke(core.clj:5264)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$load_libs.doInvoke(core.clj:5298)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$require.doInvoke(core.clj:5381)
> at clojure.lang.RestFn.invoke(RestFn.java:2422)
> at midje.repl$eval5$loading__4784__auto____6.invoke(repl.clj:1)
> at midje.repl$eval5.invoke(repl.clj:1)
> at clojure.lang.Compiler.eval(Compiler.java:6511)
> at clojure.lang.Compiler.eval(Compiler.java:6501)
> at clojure.lang.Compiler.load(Compiler.java:6952)
> at clojure.lang.RT.loadResourceScript(RT.java:359)
> at clojure.lang.RT.loadResourceScript(RT.java:350)
> at clojure.lang.RT.load(RT.java:429)
> at clojure.lang.RT.load(RT.java:400)
> at clojure.core$load$fn__4890.invoke(core.clj:5415)
> at clojure.core$load.doInvoke(core.clj:5414)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invoke(core.clj:5227)
> at clojure.core$load_lib.doInvoke(core.clj:5264)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$load_libs.doInvoke(core.clj:5298)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invoke(core.clj:603)
> at clojure.core$require.doInvoke(core.clj:5381)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at user$eval1.invoke(NO_SOURCE_FILE:1)
> at clojure.lang.Compiler.eval(Compiler.java:6511)
> at clojure.lang.Compiler.eval(Compiler.java:6501)
> at clojure.lang.Compiler.eval(Compiler.java:6500)
> at clojure.lang.Compiler.eval(Compiler.java:6477)
> at clojure.core$eval.invoke(core.clj:2797)
> at clojure.main$eval_opt.invoke(main.clj:297)
> at clojure.main$initialize.invoke(main.clj:316)
> at clojure.main$null_opt.invoke(main.clj:349)
> at clojure.main$main.doInvoke(main.clj:427)
> at clojure.lang.RestFn.invoke(RestFn.java:421)
> at clojure.lang.Var.invoke(Var.java:419)
> at clojure.lang.AFn.applyToHelper(AFn.java:163)
> at clojure.lang.Var.applyTo(Var.java:532)
> at clojure.main.main(main.java:37)
> Caused by: java.lang.RuntimeException: Unable to resolve symbol: midje-position-stringx in this context
> at clojure.lang.Util.runtimeException(Util.java:170)
> at clojure.lang.Compiler.resolveIn(Compiler.java:6766)
> at clojure.lang.Compiler.resolve(Compiler.java:6710)
> at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6671)
> at clojure.lang.Compiler.analyze(Compiler.java:6244)
> ... 137 more
> Subprocess failed
--------
Occasional consulting on programming technique
Contract programming in Ruby and Clojure
Latest book: /Functional Programming for the Object-Oriented Programmer/
https://leanpub.com/fp-oo