let emit_config_as_fstar_module (module_name:string) (c:config) = 
  let flags = 
    List.map 
      (Printf.sprintf "[@@ CIfDef]\nassume\nval ___%s : bool" )
      c.compile_time_flags.flags
  in
  let assumes = String.concat "\n\n" flags in
  Printf.sprintf "module %s\n%s\n" module_name assumes
let emit_config_as_fstar_module (module_name: string) (c: config) =
let flags =
  List.map (Printf.sprintf "[@@ CIfDef]\nassume\nval ___%s : bool") c.compile_time_flags.flags
in
let assumes = String.concat "\n\n" flags in
Printf.sprintf "module %s\n%s\n" module_name assumes
Config.fst.checked
prims.fst.checked Options.fsti.checked FStar.String.fsti.checked FStar.Printf.fst.checked FStar.Pervasives.fsti.checked FStar.List.fst.checked
Config.fst
Prims.string Config.config FStar.Printf.sprintf FStar.String.concat Prims.list FStar.List.map Config.__proj__Mkcompile_time_flags__item__flags Config.__proj__Mkconfig__item__compile_time_flags
module Config
module O = Options
[@@ PpxDerivingYoJson]
type compile_time_flags = {
  flags : list string;
  include_file : string;
}

[@@ PpxDerivingYoJson]
type config = {
  compile_time_flags : compile_time_flags
}
val emit_config_as_fstar_module : module_name: Prims.string -> c: Config.config -> FStar.All.ALL (Prims.string <: Type0)
module_name: Prims.string -> c: Config.config -> FStar.All.ALL (Prims.string <: Type0)