let main () =
      match User_interface.Text.cp_experiment#get with
        "states" ->
          let module Go = Load_Synchronism (Topo) (States.Experiment (Topo))
          in
          Go.main ()
      | "stat_cmplx" ->
          let module Go =
            Load_Synchronism (Topo) (Stat_cmplx.Experiment (Topo))
          in
          Go.main ()
      | "lle" ->
          let module Go = Load_Synchronism (Topo) (Lle.Experiment (Topo))
          in
          Go.main ()
      | "op_cyclic_r1t2k4box" ->
          let module Go =
            Load_Synchronism (Topo) (Op_cyclic_r1t2k4box.Experiment (Topo))
          in
          Go.main ()
      | "synchronization" ->
          let module Go =
            Load_Synchronism (Topo) (Synchronization.Experiment (Topo))
          in
          Go.main ()
      | "density_vs_time" ->
          let module Go =
            Load_Synchronism (Topo) (Density_vs_time.Experiment (Topo))
          in
          Go.main ()
      | "density_avg" ->
          let module Go =
            Load_Synchronism (Topo) (Density_avg.Experiment (Topo))
          in
          Go.main ()
      | _ ->
          failwith
            ("The name of the experiment is unknown. Available experiments are " ^ User_interface.Text.available_experiments ^ ".")