(.module: [library [lux "*" [abstract [equivalence {"+" [Equivalence]}]] [data [binary {"+" [Binary]}] ["." sum] ["." product]]]] ["." /// "_" ["#." hash {"+" [Hash SHA-1 MD5]}]]) (type: .public Status (Variant #Unverified (#Partial (Either (Hash SHA-1) (Hash MD5))) (#Verified (Hash SHA-1) (Hash MD5)))) (implementation: any_equivalence (Equivalence Any) (def: (= _ _) true)) (def: .public equivalence (Equivalence Status) ($_ sum.equivalence ..any_equivalence ($_ sum.equivalence ///hash.equivalence ///hash.equivalence) ($_ product.equivalence ///hash.equivalence ///hash.equivalence) )) (def: .public (verified payload) (-> Binary Status) (#Verified (///hash.sha-1 payload) (///hash.md5 payload)))