Skip to content

Instantly share code, notes, and snippets.

@oakes

oakes/core.clj Secret

Created July 2, 2018 20:26
Show Gist options
  • Save oakes/dbc902e8fb077d6430fa0909cf4d7272 to your computer and use it in GitHub Desktop.
Save oakes/dbc902e8fb077d6430fa0909cf4d7272 to your computer and use it in GitHub Desktop.
expound error
(require '[clojure.spec.alpha :as s]
'[expound.alpha :as expound])
(def instruments #{:piano :guitar :banjo})
(def octave-operators #{\+ \-})
(def digits #{\0 \1 \2 \3 \4 \5 \6 \7 \8 \9})
(def notes #{\c \d \e \f \g \a \b})
(def accidentals #{\# \= \_})
(def accidental->keyword
{\# :sharp
\= :flat
\_ :natural})
(s/def ::note-parts (s/cat
:octave-op (s/? octave-operators)
:octaves (s/* digits)
:note notes
:accidental (s/? accidentals)))
(defn parse-note [note]
(if-not (keyword? note)
:clojure.spec.alpha/invalid
(s/conform ::note-parts (seq (name note)))))
(defn note? [x]
(not= :clojure.spec.alpha/invalid (parse-note x)))
(s/def ::note note?)
(s/def ::rest #{:r})
(s/def ::octave integer?)
(s/def ::length number?)
(s/def ::tempo integer?)
(s/def ::pan #(<= 0 % 100))
(s/def ::quantize #(<= 0 % 100))
(s/def ::transpose integer?)
(s/def ::volume #(<= 0 % 100))
(s/def ::play? boolean?)
(s/def ::key-signature (s/coll-of ::note :kind set?))
(s/def ::attrs (s/keys :opt-un [::note ::octave ::length ::tempo
::pan ::quantize ::transpose
::volume ::play? ::key-signature]))
(s/def ::chord (s/coll-of
(s/or
:note ::note
:rest ::rest
:attrs (s/merge ::attrs (s/keys :req-un [::note])))
:kind set?))
(s/def ::score (s/cat
:instrument (s/? instruments)
:subscores (s/* ::subscore)))
(s/def ::subscore (s/or
:note ::note
:rest ::rest
:length ::length
:attrs ::attrs
:chord ::chord
:concurrent-score (s/coll-of ::score :kind set?)
:score (s/spec ::score)))
(defn parse [content]
(let [res (s/conform ::subscore content)]
(if (= res :clojure.spec.alpha/invalid)
(throw (Exception. (expound/expound-str ::subscore content)))
res)))
(def score
[{:tempo 80}
[:guitarx {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/2 :d 1/8 :g :g :a :b :g :b 1/2 :a]
[:banjo {:octave 3} 1/8 :g :g :a :b 1/2 :g]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 4}
1/16 #{:d :-b :-g} #{:d :-b :-g}
1/8 #{:d :-b :-g} #{:e :c :-g} #{:d :-b :-g}]
[:banjo {:octave 4}
1/16 #{:d :-b :-g} #{:d :-b :-g}
1/8 #{:d :-b :-g} #{:e :c :-g} #{:d :-b :-g}]
[:guitar {:octave 4}
1/16 #{:d :-b :-g} #{:d :-b :-g}
1/8 #{:d :-b :-g} #{:e :c :-g} #{:d :-b :-g}]
[:banjo {:octave 4}
1/16 #{:d :-b :-g} #{:d :-b :-g}
1/8 #{:d :-b :-g} #{:e :c :-g} #{:d :-b :-g}]
[:guitar {:octave 2} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
{:tempo 120}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/4 :g 1/8 :a :b 1/4 :g 1/8 :a :d]}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/4 :g 1/8 :a :b 1/4 :g 1/8 #{:f :-a} :b 1/4 :c]}])
(parse score)
;; run `clj core.clj` to see the error
{:deps {expound {:mvn/version "0.7.0"}}}
Exception in thread "main" java.lang.Exception: -- Syntax error -------------------
[...
[:guitarx
^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...]
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
has extra input
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-------------------------
Detected 1 error
, compiling:(/mnt/c/Users/sekao/Documents/expound-regression/parse.clj:118:1)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$script_opt.invokeStatic(main.clj:338)
at clojure.main$script_opt.invoke(main.clj:333)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: -- Syntax error -------------------
[...
[:guitarx
^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...]
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
has extra input
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-------------------------
Detected 1 error
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at clojure.lang.Reflector.invokeConstructor(Reflector.java:180)
at user$parse.invokeStatic(parse.clj:72)
at user$parse.invoke(parse.clj:69)
at user$eval868.invokeStatic(parse.clj:118)
at user$eval868.invoke(parse.clj:118)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.load(Compiler.java:7514)
... 9 more
Exception in thread "main" java.lang.Exception: -- Spec failed --------------------
[{:tempo 80}
[:guitarx {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/2 :d 1/8 :g :g :a :b :g :b 1/2 :a]
[:banjo {:octave 3} 1/8 :g :g :a :b 1/2 :g]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:banjo
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:guitar
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:banjo
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:guitar {:octave 2} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
{:tempo 120}
#{[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}
#{[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/4 :g 1/8 :a :b 1/4 :g 1/8 :a :d]}
#{[:guitar
{:octave 3}
1/4
:g
1/8
:a
:b
1/4
:g
1/8
#{:f :-a}
:b
1/4
:c] [:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}]
should satisfy
note?
or
number?
or
map?
or
set?
or
should be: :r
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-- Spec failed --------------------
[...
[:guitarx {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
should satisfy
note?
or
number?
or
map?
or
set?
or
should be: :r
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-- Syntax error -------------------
[...
[:guitarx
^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...]
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
has extra input
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-------------------------
Detected 3 errors
, compiling:(/mnt/c/Users/sekao/Documents/expound-regression/parse.clj:118:1)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$script_opt.invokeStatic(main.clj:338)
at clojure.main$script_opt.invoke(main.clj:333)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: -- Spec failed --------------------
[{:tempo 80}
[:guitarx {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/2 :d 1/8 :g :g :a :b :g :b 1/2 :a]
[:banjo {:octave 3} 1/8 :g :g :a :b 1/2 :g]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 2} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:banjo {:octave 3} 1/16 :g :g 1/8 :g :a :b :+c :+d :+c 1/2 :b]
[:guitar
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:banjo
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:guitar
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:banjo
{:octave 4}
1/16
#{:-g :-b :d}
#{:-g :-b :d}
1/8
#{:-g :-b :d}
#{:-g :e :c}
#{:-g :-b :d}]
[:guitar {:octave 2} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
{:tempo 120}
#{[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}
#{[:guitar {:octave 3} 1/16 :r :r 1/8 :g :r :d :r :g :g :d]
[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}
#{[:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
[:guitar {:octave 3} 1/4 :g 1/8 :a :b 1/4 :g 1/8 :a :d]}
#{[:guitar
{:octave 3}
1/4
:g
1/8
:a
:b
1/4
:g
1/8
#{:f :-a}
:b
1/4
:c] [:banjo {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]}]
should satisfy
note?
or
number?
or
map?
or
set?
or
should be: :r
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-- Spec failed --------------------
[...
[:guitarx {:octave 3} 1/16 :b :+c 1/8 :+d :b :+c :a :b :g :a]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
should satisfy
note?
or
number?
or
map?
or
set?
or
should be: :r
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-- Syntax error -------------------
[...
[:guitarx
^^^^^^^^
...
...
...
...
...
...
...
...
...
...
...
...]
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...]
has extra input
-- Relevant specs -------
:user/score:
(clojure.spec.alpha/cat
:instrument
(clojure.spec.alpha/? user/instruments)
:subscores
(clojure.spec.alpha/* :user/subscore))
:user/chord:
(clojure.spec.alpha/coll-of
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:attrs
(clojure.spec.alpha/merge
:user/attrs
(clojure.spec.alpha/keys :req-un [:user/note])))
:kind
clojure.core/set?)
:user/attrs:
(clojure.spec.alpha/keys
:opt-un
[:user/note
:user/octave
:user/length
:user/tempo
:user/pan
:user/quantize
:user/transpose
:user/volume
:user/play?
:user/key-signature])
:user/length:
clojure.core/number?
:user/rest:
#{:r}
:user/note:
user/note?
:user/subscore:
(clojure.spec.alpha/or
:note
:user/note
:rest
:user/rest
:length
:user/length
:attrs
:user/attrs
:chord
:user/chord
:concurrent-score
(clojure.spec.alpha/coll-of :user/score :kind clojure.core/set?)
:score
(clojure.spec.alpha/spec :user/score))
-------------------------
Detected 3 errors
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at clojure.lang.Reflector.invokeConstructor(Reflector.java:180)
at user$parse.invokeStatic(parse.clj:72)
at user$parse.invoke(parse.clj:69)
at user$eval959.invokeStatic(parse.clj:118)
at user$eval959.invoke(parse.clj:118)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.load(Compiler.java:7514)
... 9 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment