module arch.system.types.commitment; import prelude open; import arch.node.types.crypto open; type Commitment A := mkCommitment@{ committed : A; commitment : Digest; }; deriving instance CommitmentEq {A} {{Eq A}} : Eq (Commitment A); deriving instance CommitmentOrd {A} {{Ord A}} : Ord (Commitment A); makeCommitment {A} (a : A) : Commitment A := mkCommitment@{ committed := a; commitment := hash a; };