anchor.diff:      | PathDoesNotExist of path : string
       | StoreUpdateError
       interface IMessage with
  +        member this.LogProperty() = (MessageKeyword.Index, MessageLevel.Error)
           member this.OperationMessage() = 
               match this with
               | FileNotFound(p) -> sprintf "File not found at address: %s" p
  
positive.code:     | ModuleNotFound of moduleName : string * moduleType : string
      | ModuleInitializationError of moduleName : string * moduleType : string * error : string
      interface IMessage with
          member this.OperationMessage() = 
              match this with
              | ModuleNotFound(mn, mt) -> sprintf "Module '%s' of type '%s' was not found" mn mt
  
negative.code:       Message : string
        ErrorCode : string }
  
  type MessageKeyword =
      | Node 
      | Index 
      | Search 
      | Document 
      | Default
      | Plugin
  
  type MessageLevel =
      | Critical
      | Error
      | Warning
      | Info
      | Verbose
      | Nothing
  
  /// Interface to expose internal message format
  type IMessage = 
      abstract OperationMessage : unit -> OperationMessage
      abstract LogProperty : unit -> MessageKeyword * MessageLevel
  
  /// General purpose exception to be used. It is better to use
  /// DU based error than this exception.
  