active-group / active-group/active-clojure

Sum types with aliases

オープン
#33 コメント 5 件 リアクション 0 件 担当者 1 名 @smoes が担当を希望しています GitHub で見る
enhancement
主要言語
Clojure
スター
31
フォーク
4
PR マージ指標
30日以内にマージされた PR はありません

説明

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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。