(.module: [lux #* [abstract ["." equivalence (#+ Equivalence)]] [control ["." try (#+ Try) ("#@." functor)] [parser ["<.>" xml]]] [data ["." binary (#+ Binary)] [format ["." xml (#+ XML)]] [collection [set (#+ Set)]]]] ["." // #_ [dependency (#+ Dependency)] ["/" profile] ["#." hash (#+ Hash SHA-1 MD5)] ["#." pom]]) (type: #export Package {#library Binary #pom XML #sha-1 (Hash SHA-1) #md5 (Hash MD5)}) (def: #export (local pom library) (-> XML Binary Package) {#library library #pom pom #sha-1 (//hash.sha-1 library) #md5 (//hash.md5 library)}) (def: #export dependencies (-> Package (Try (Set Dependency))) (|>> (get@ #pom) (.run //pom.parser) (try@map (get@ #/.dependencies)))) (def: #export equivalence (Equivalence Package) ($_ equivalence.product binary.equivalence xml.equivalence //hash.equivalence //hash.equivalence ))