123456789101112131415161718192021222324252627282930313233moduletypePERMUTATION=sig(** Parameters for a specific instance *)typeparameters(** Context of the permutation *)typectxt(** [allocate_ctxt parameters]. Allocate a context for a specific instance of
the permutation.
*)valallocate_ctxt:parameters->ctxt(** Return the current state of the context *)valget_state:ctxt->Bls12_381.Fr.tarray(** Return the state size of the context *)valget_state_size:ctxt->int(** [set_state ctxt state]. Set the context state to the given value. The
value [state] must be of the same size than the expecting state *)valset_state:ctxt->Bls12_381.Fr.tarray->unit(** Apply a permutation on the current state of the context *)valapply_permutation:ctxt->unitendmoduletypeMODE=sigvaldigest:(modulePERMUTATIONwithtypeparameters='p)->'p->Bls12_381.Fr.tarray->Bls12_381.Fr.tend