anchor.diff:        raw : bool
         [<Option('s', HelpText = "The stage at which Starling should stop and output.")>]
         stage : string option
  +      [<Option('O', HelpText = "Perform no optimisation stages.")>]
  +      noOptimise : bool
         [<Value(0, MetaName = "input", HelpText = "The file to load (omit, or supply -, for standard input).")>]
         input : string option }
   
  
positive.code:         >> termGen
          >> reify
          >> flatten
          >> optimise
          >> z3 rq
          >> lift Response.Z3
      | Request.HSF ->
  
negative.code:                                                 | Lang.Frontend.Response.Model m -> m |> ok
                                                  | _ -> Other "internal error: bad frontend response" |> fail)
  
  /// Runs the Starling request at argument 2 on the file named by argument 3.
  /// If missing, we read from stdin.
  /// Argument 1 turns optimisation on if true.
  let runStarling opt = 
      let maybeOptimise = if opt then optimise else id
  
      function 
      | Request.Frontend rq -> frontend rq >> lift Response.Frontend
      | Request.Destructure -> 
  