fact: Definition Compose_Decode' {S' : Type} (decode : DecodeM S' T) (g : S' -> option S) : DecodeM S T := fun b env => `(s', env') <- decode b env; match g s' with Some s => Some (s, env') | None => None end.
imports: Coq.ZArith.ZArith Coq.Strings.String Coq.Vectors.Vector Fiat.Common.DecideableEnsembles Fiat.Computation Fiat.Narcissus.Common.Specs