active-group / active-group/active-clojure

Sum types with aliases

Aberta
#33 5 comentários 0 reações 1 responsável Reivindicada por @smoes Ver no GitHub
enhancement
Linguagem predominante
Clojure
Estrelas
31
Forks
4
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.