anchor.diff:          | "smart", [||] ->
               dumbMode <- false
               Plan.zero
  +        | "reset", [||] ->
  +            plan {
  +                do! DemoSetup.setUpDemoData
  +                let! id = Domain.getUserByName DemoSetup.defaultUserName |> Plan.map Option.get
  +                userId <- id
  +            }
           | "become", [| name |] ->
               plan {
                   let! resolved = Domain.getUserByName name
  
positive.code:             | None -> Plan.zero
              | Some id ->
                  showHierarchyWithPermissions userId (Some id)
          | _ ->
              eprintfn "Unrecognized command."
              Plan.ret ()
  
negative.code:                 let split = input.Split([|' '|], StringSplitOptions.RemoveEmptyEntries)
                  split.[0], Array.skip 1 split
              let plan = planCommand cmd args
              try
                  bench input plan
              with
              | :? AggregateException as e when e.InnerExceptions.Count = 1 ->
                  match e.InnerException with
                  | :? SecurityException as s ->
                      eprintfn "Security exception: %s" s.Message
                  | exn ->
                      eprintfn "Exception: %O" exn
              | :? SecurityException as s ->
                  eprintfn "Security exception: %s" s.Message
              | exn ->
                  eprintfn "Exception: %O" exn
  
  [<EntryPoint>]
  let main argv =
  