anchor.diff:              Exceptions.jsNative
   
       [<Import("*", "child-process-promise")>]
  -    let child_process_promise : Globals = Exceptions.jsNative
  +    let child_process : Globals = Exceptions.jsNative
   
   module HtmlMapping =
       open AssemblyData
  -    let mapFunction f =
  -        ""
  +    let mapFunction (SMember(name, classification, signature)) =
  +        sprintf """
  +<h4>%s<h4>
  +<p><i>%s</i></p><hr>""" name signature
  +
       
       let mapType t = 
           ""
   
       let mapNamespace n =
           ""
  +    let node s c =
  +        sprintf "<%s>%s</%s>" s c s
  +
  +    let p s =
  +        node "p" s
   
       let mapAssembly (a:AssemblyData.Assembly) =
  -        let mutable pretty = a.name + "\n"
  +        let mutable pretty = "<body><div style=\"height: 100%; width: 100%\">" + node "h1" a.name
           for entity in a.entities do
               match entity with
  -            | Namespace (SNamespace(name, entities)) -> pretty <- pretty + name + "\n"
  -            | Module (SModule(name, entities)) -> pretty <- pretty + name + "\n"
  -            | Type(SType(name, classification, members)) ->pretty <- pretty + name + "\n"
  -            | Member(SMember(name, classification, signature)) -> pretty <- pretty + name + "\n"
  +            | Namespace (SNamespace(name, entities)) ->
  +                pretty <- pretty + node "h2" name
  +            | Module (SModule(name, entities)) ->
  +                pretty <- pretty + node "h2" name
  +            | Type(SType(name, classification, members)) ->
  +                pretty <- pretty + node "h3" name
  +                for m in members do
  +                    pretty <- pretty + mapFunction m
  +            | Member(SMember(name, classification, signature) as sm) ->
  +                pretty <- pretty + mapFunction sm
               //TODO recurse heavily on children
  -        pretty
  -            
  -
  -    
  +        let final = pretty + "</div></body>"
  +        console.log(final)
  +        final
  +               
   
   module Soothsayer =
       open Fable.PowerPack
  
positive.code:             //TODO: set max size of buffer later, only really applicable for soothsayer stdio as it will be large
          ]
  
      
  
      let runResolver() =
          promise {
              let options = createProcessOptionsWithBuffer (1024 * 500)
  
              let! result = child_process_promise.exec(createCommand resolverExe choosenProject, options)
              let result, error = result.stdout, result.stderr
  
              let! quickPickresult = 
  
negative.code:                     result.ToString().Split([|"\r";"\n"|], StringSplitOptions.RemoveEmptyEntries)
                      |> ResizeArray
                  vscode.window.showQuickPick (unbox inputList)
              let soothsayerUri = sprintf "soothsayer://%s" quickPickresult
              do! vscode.commands.executeCommand("vscode.previewHtml", soothsayerUri, vscode.ViewColumn.Two)
              return promise.Zero
          } |> ignore
  //---
  
  let activate(context: vscode.ExtensionContext) =
      let registerCommand com (f: unit->unit) =
          vscode.commands.registerCommand(com, unbox f)
          |> context.subscriptions.Add
      
      let prov = Soothsayer.createSoothsayerProvider()
      vscode.workspace.registerTextDocumentContentProvider("soothsayer" |> unbox, prov) |> ignore
  
      registerCommand "extension.soothsayer" Soothsayer.runResolver
  