active-group / active-group/active-clojure

Sum types with aliases

Offen
#33 5 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @smoes Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Clojure
Sterne
31
Forks
4
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Defining sum types does not work when aliasing types or predicates in match expressions, in ClojureScript at least:

```
(require '[active.clojure.sum-type :as st :include-macros true])
(require '[active.clojure.cljs.record :as rec :include-macros true])

(rec/define-record-type T {:rtd-record? true} (make-t) t? [])
(st/define-sum-type S1 s? [T])
(def S2 S1)
(st/define-sum-type S2 s? [T])
(def T2 T)
(st/define-sum-type S2 s? [T2])

Compile Exception: rtd-record or sum-type required, found: T2
```

A similar error is raised when using an alias of `t?` in a match expression.

This is quite a burden for code reuse/abstraction, and should be fixed if possible.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.