diff options
Diffstat (limited to 'stdlib/source/library/lux/type/quotient.lux')
-rw-r--r-- | stdlib/source/library/lux/type/quotient.lux | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/stdlib/source/library/lux/type/quotient.lux b/stdlib/source/library/lux/type/quotient.lux index d4250a02f..5d2c29f2f 100644 --- a/stdlib/source/library/lux/type/quotient.lux +++ b/stdlib/source/library/lux/type/quotient.lux @@ -8,20 +8,24 @@ ["." type abstract]]]) -(abstract: #export (Class t c %) +(abstract: .public (Class t c %) + {} + (-> t c) - (def: #export class + (def: .public class (All [t c] (Ex [%] (-> (-> t c) (Class t c %)))) (|>> :abstraction)) - (abstract: #export (Quotient t c %) + (abstract: .public (Quotient t c %) + {} + {#value t #label c} - (def: #export (quotient class value) + (def: .public (quotient class value) (All [t c %] (-> (Class t c %) t (Quotient t c %))) @@ -29,7 +33,7 @@ #label ((:representation Class class) value)})) (template [<name> <output> <slot>] - [(def: #export <name> + [(def: .public <name> (All [t c %] (-> (Quotient t c %) <output>)) (|>> :representation (get@ <slot>)))] @@ -39,7 +43,7 @@ ) ) -(syntax: #export (type class) +(syntax: .public (type class) (with_gensyms [g!t g!c g!%] (in (list (` ((~! type.:by_example) [(~ g!t) (~ g!c) (~ g!%)] @@ -49,7 +53,7 @@ (..Quotient (~ g!t) (~ g!c) (~ g!%)))))))) -(implementation: #export (equivalence super) +(implementation: .public (equivalence super) (All [t c %] (-> (Equivalence c) (Equivalence (..Quotient t c %)))) (def: (= reference sample) |