Comment made by: chrisblom
I'm not using this to match empty lists, I ran into this corner case when generating case statements from a DSL.
While it is a pathological case, I disagree that is does not make any sense, an empty list here simply represents no alternatives,
so the clause wil never match and its result-expr will never run.
My point is that now (in clojure 1.8) this is allowed:
(case a
() :never-happens
1 :a
2 :b
:default)
it is equivalent to (as an empty list never matches)
(case a
1 :a
2 :b
:default)
But
(case a
() :never-happens
:default)
gives an uninformative error.
I argue that it should be equivalent to
(case a
:default)
as rejecting empty lists in case statements in general would be a breaking change,
and only rejecting empty lists when no other clauses are present is inconsistent.