(.using [library [lux "*" [abstract [equivalence (.only Equivalence)]] [data [binary (.only Binary)] ["[0]" sum] ["[0]" product]]]] ["[0]" /// "_" ["[1][0]" hash (.only 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) (all sum.equivalence ..any_equivalence (all sum.equivalence ///hash.equivalence ///hash.equivalence) (all product.equivalence ///hash.equivalence ///hash.equivalence) )) (def: .public (verified payload) (-> Binary Status) {#Verified (///hash.sha-1 payload) (///hash.md5 payload)})