anchor.diff:      abstract GetSearchProfileScript : scriptSig:string -> Choice<SearchProfileDelegate, IMessage>
   
   [<Sealed>]
  -type ScriptService(threadSafeWriter : ThreadSafeFileWriter) as self = 
  +type ScriptService() = 
       let scripts = conDict<Scripts.T>()
       let addScripts (s : seq<string * Scripts.T>) = 
           s |> Seq.iter (fun (scriptName, script) -> scripts.TryAdd(scriptName, script) |> ignore)
  
positive.code:     interface ISearchService with
          member __.Search(searchQuery : SearchQuery.Dto, inputFields : Dictionary<string, string>) = 
              search (searchQuery, Some <| inputFields)
          member this.Search(searchQuery : SearchQuery.Dto) = search (searchQuery, None)
  
  [<Sealed>]
  type DocumentService(searchService : ISearchService, indexService : IIndexService) = 
  
negative.code:         
          member __.OpenIndex(indexName : string) = 
              maybe { 
                  let! (indexState, _) = indexState indexName
                  match indexState with
                  | IndexState.Opening | IndexState.Online -> return! fail <| IndexIsAlreadyOnline(indexName)
                  | _ -> 
  