diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/host/jvm/constant.lux | 50 | ||||
-rw-r--r-- | stdlib/source/lux/host/jvm/constant/pool.lux | 12 | ||||
-rw-r--r-- | stdlib/source/lux/host/jvm/constant/tag.lux | 4 |
3 files changed, 34 insertions, 32 deletions
diff --git a/stdlib/source/lux/host/jvm/constant.lux b/stdlib/source/lux/host/jvm/constant.lux index 7f87136a5..1395e6d5a 100644 --- a/stdlib/source/lux/host/jvm/constant.lux +++ b/stdlib/source/lux/host/jvm/constant.lux @@ -5,10 +5,12 @@ ["." parser] ["." equivalence (#+ Equivalence)]] [data - ["." number] + [number + ["." int] + ["." frac]] ["." text] [format - ["." binary (#+ Format) ("mutation/." Monoid<Mutation>)]] + ["." binary (#+ Format) ("mutation/." monoid)]] [collection ["." row (#+ Row)]]] [type @@ -18,7 +20,7 @@ ["//." index (#+ Index)] [descriptor (#+ Descriptor)]] [/ - ["/." tag ("tag/." Equivalence<Tag>)]]) + ["/." tag ("tag/." equivalence)]]) (type: #export UTF8 Text) @@ -35,11 +37,11 @@ (-> (Index UTF8) Class) (|>> :abstraction)) - (def: #export Equivalence<Class> + (def: #export class-equivalence (Equivalence Class) - (:: equivalence.Contravariant<Equivalence> map-1 + (:: equivalence.contravariant map-1 (|>> :representation) - //index.Equivalence<Index>)) + //index.equivalence)) (def: class-format (Format Class) @@ -58,11 +60,11 @@ (All [kind] (-> (Value kind) kind)) (|>> :representation)) - (def: #export (Equivalence<Value> Equivalence<kind>) + (def: #export (value-equivalence Equivalence<kind>) (All [kind] (-> (Equivalence kind) (Equivalence (Value kind)))) - (:: equivalence.Contravariant<Equivalence> map-1 + (:: equivalence.contravariant map-1 (|>> :representation) Equivalence<kind>)) @@ -88,7 +90,7 @@ <base>))] [long-format Long .int (<|) binary.bits/64] - [double-format Double number.bits-to-frac number.frac-to-bits binary.bits/64] + [double-format Double frac.bits-to-frac frac.frac-to-bits binary.bits/64] [string-format String (<|) (<|) //index.format] ) ) @@ -105,8 +107,8 @@ [(def: #export <equivalence> (Equivalence <type>) ($_ equivalence.product - //index.Equivalence<Index> - //index.Equivalence<Index>)) + //index.equivalence + //index.equivalence)) (def: #export <format> (Format <type>) @@ -114,8 +116,8 @@ //index.format //index.format))] - [Name-And-Type Equivalence<Name-And-Type> name-and-type-format] - [Reference Equivalence<Reference> reference-format] + [Name-And-Type name-and-type-equivalence name-and-type-format] + [Reference reference-equivalence reference-format] ) (type: #export Constant @@ -129,27 +131,27 @@ (#Interface-Method Reference) (#Name-And-Type Name-And-Type)) -(def: #export Equivalence<Constant> +(def: #export equivalence (Equivalence Constant) ($_ equivalence.sum ## #UTF8 - text.Equivalence<Text> + text.equivalence ## #Long - (..Equivalence<Value> number.Equivalence<Int>) + (..value-equivalence int.equivalence) ## #Double - (..Equivalence<Value> number.Equivalence<Frac>) + (..value-equivalence frac.equivalence) ## #Class - ..Equivalence<Class> + ..class-equivalence ## #String - (..Equivalence<Value> //index.Equivalence<Index>) + (..value-equivalence //index.equivalence) ## #Field - ..Equivalence<Reference> + ..reference-equivalence ## #Method - ..Equivalence<Reference> + ..reference-equivalence ## #Interface-Method - ..Equivalence<Reference> + ..reference-equivalence ## #Name-And-Type - ..Equivalence<Name-And-Type> + ..name-and-type-equivalence )) (def: #export format @@ -169,7 +171,7 @@ ## TODO: Method-Type ## TODO: Invoke-Dynamic )] - {#binary.reader (do parser.Monad<Parser> + {#binary.reader (do parser.monad [tag (get@ #binary.reader /tag.format)] (`` (cond (~~ (do-template [<case> <tag> <format>] [(tag/= <tag> tag) diff --git a/stdlib/source/lux/host/jvm/constant/pool.lux b/stdlib/source/lux/host/jvm/constant/pool.lux index d1da6f606..7e3119222 100644 --- a/stdlib/source/lux/host/jvm/constant/pool.lux +++ b/stdlib/source/lux/host/jvm/constant/pool.lux @@ -5,15 +5,15 @@ [monad (#+ do)] ["." state (#+ State)]] [data - [text ("text/." Equivalence<Text>)] + [text ("text/." equivalence)] [format ["." binary (#+ Format)]] [collection - [list ("list/." Fold<List>)] + [list ("list/." fold)] ["." row (#+ Row)]]] [type abstract]] - ["." // (#+ UTF8 Class Constant) ("class/." Equivalence<Class>) + ["." // (#+ UTF8 Class Constant) ("class/." class-equivalence) [// ["." encoding] ["." index (#+ Index)] @@ -23,9 +23,9 @@ (type: #export Pool (Row Constant)) -(def: #export Equivalence<Pool> +(def: #export equivalence (Equivalence Pool) - (row.Equivalence<Row> //.Equivalence<Constant>)) + (row.equivalence //.equivalence)) (template: (!add <value> <tag> <=>) (function (_ pool) @@ -58,7 +58,7 @@ (def: #export (class name) (-> UTF8 (State Pool (Index Class))) - (do state.Monad<State> + (do state.monad [@name (utf8 name)] (class' (//.class @name)))) diff --git a/stdlib/source/lux/host/jvm/constant/tag.lux b/stdlib/source/lux/host/jvm/constant/tag.lux index 8e34d975d..3862f5158 100644 --- a/stdlib/source/lux/host/jvm/constant/tag.lux +++ b/stdlib/source/lux/host/jvm/constant/tag.lux @@ -8,14 +8,14 @@ [type abstract]] [/// - ["." encoding (#+ U1) ("u1/." Equivalence<U1>)]]) + ["." encoding (#+ U1) ("u1/." u1-equivalence)]]) (abstract: #export Tag {} U1 - (structure: #export _ (Equivalence Tag) + (structure: #export equivalence (Equivalence Tag) (def: (= reference sample) (u1/= (:representation reference) (:representation sample)))) |