To make the gleam_ir library portable over browser, node and erlang you need to bring your own sha implementation
pub type Effect(t) { Sha256(bytes: BitArray, resume: fn(BitArray) -> t) }
Sha256(bytes: BitArray, resume: fn(BitArray) -> t)
pub fn from_block(bytes: BitArray) -> Effect(v1.Cid)
pub fn from_tree( source: #(tree.Expression(a), a), ) -> Effect(v1.Cid)