(.using [library [lux (.except Type) [abstract [equivalence (.only Equivalence)] [order (.only Order)] [hash (.only Hash)]] [data ["[0]" product] ["[0]" text ("[1]#[0]" order) ["%" format (.only format)]]]]] ["[0]" // ["[1]" artifact (.only Artifact) ("[1]#[0]" order) [type (.only Type)]]]) (type: .public Dependency (Record [#artifact Artifact #type Type])) (def: .public hash (Hash Dependency) (all product.hash //.hash text.hash )) (def: .public equivalence (Equivalence Dependency) (# hash equivalence)) (implementation: .public order (Order Dependency) (def: equivalence ..equivalence) (def: (< reference subject) (<| (or (//#< (the #artifact reference) (the #artifact subject))) (and (//#= (the #artifact reference) (the #artifact subject))) (text#< (the #type reference) (the #type subject)))))