Module PulseOperations.Import
For opening in other modules.
type access_mode=
Imported types for ease of use and so we can write variants without the corresponding module prefix
type 'abductive_domain_t execution_domain_base_t= 'abductive_domain_t PulseDomainInterface.ExecutionDomain.base_t=|ContinueProgram of 'abductive_domain_t|ExitProgram of PulseDomainInterface.AbductiveDomain.summary|AbortProgram of PulseDomainInterface.AbductiveDomain.summary|LatentAbortProgram of{astate : PulseDomainInterface.AbductiveDomain.summary;latent_issue : PulseDomainInterface.LatentIssue.t;}|LatentInvalidAccess of{astate : PulseDomainInterface.AbductiveDomain.summary;address : PulseBasicInterface.AbstractValue.t;must_be_valid : PulseBasicInterface.Trace.t * PulseBasicInterface.Invalidation.must_be_valid_reason option;calling_context : (PulseBasicInterface.CallEvent.t * IBase.Location.t) list;}|ISLLatentMemoryError of PulseDomainInterface.AbductiveDomain.summarytype 'astate base_error= 'astate PulseDomainInterface.AccessResult.error=|PotentialInvalidAccess of{astate : 'astate;address : PulseBasicInterface.AbstractValue.t;must_be_valid : PulseBasicInterface.Trace.t * PulseBasicInterface.Invalidation.must_be_valid_reason option;}|PotentialInvalidAccessSummary of{astate : PulseDomainInterface.AbductiveDomain.summary;address : PulseBasicInterface.AbstractValue.t;must_be_valid : PulseBasicInterface.Trace.t * PulseBasicInterface.Invalidation.must_be_valid_reason option;}|ReportableError of{astate : 'astate;diagnostic : PulseBasicInterface.Diagnostic.t;}|ISLError of 'astate
Monadic syntax
include module type of IStdlib.IResult.Let_syntax
include module type of IStdlib.IStd.Result.Monad_infix
val let+ : ('ok, 'err) IStdlib.IStd.result -> ('ok -> 'okk) -> ('okk, 'err) IStdlib.IStd.resultval let* : ('ok, 'err) IStdlib.IStd.result -> ('ok -> ('okk, 'err) IStdlib.IStd.result) -> ('okk, 'err) IStdlib.IStd.result
val let<*> : 'a PulseDomainInterface.AccessResult.t -> ('a -> 'b PulseDomainInterface.AccessResult.t list) -> 'b PulseDomainInterface.AccessResult.t listmonadic "bind" but not really that turns an
AccessResult.tinto a list ofAccessResult.ts (not really because the first type is not anAccessResult.t listbut just anAccessResult.t)
val let<+> : 'a PulseDomainInterface.AccessResult.t -> ('a -> 'abductive_domain_t) -> 'abductive_domain_t execution_domain_base_t PulseDomainInterface.AccessResult.t listmonadic "map" but even less really that turns an
AccessResult.tinto an analysis result