def CrMac.compute_with
import bend-osdev-crypto@0.1.0.0/mac.bend as Macimport Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr
30# the tag of m under a raw key
31def CrMac.compute_with(~K: Data, ~key: B.Octets -> Result<&2, &2, Cr.CrError, K>, ~compute: K -> B.Octets -> B.Octets, key_o: B.Octets, m: B.Octets) -> Result<&2, &2, Cr.CrError, B.Octets>:
32 Result.map(&2, &2, Cr.CrError, K, B.Octets, k => compute(k, m), key(key_o))