# "Base compiler" vs "variants" switches

**URL:** <https://discuss.ocaml.org/t/base-compiler-vs-variants-switches/10592>\
**Category:** Learning\
**Tags:** opam\
**Created:** [October 9, 2022, 11:20pm UTC](https://discuss.ocaml.org/t/base-compiler-vs-variants-switches/10592 "2022-10-09T23:20:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jon\_Harrop](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/jon_harrop/32/2015_2.png) [@Jon\_Harrop](https://discuss.ocaml.org/u/Jon_Harrop)\
**Post date:** [October 9, 2022, 11:20pm UTC](https://discuss.ocaml.org/t/base-compiler-vs-variants-switches/10592/1 "2022-10-09T23:20:47Z")

</div>

What is the difference between these two opam switches:

```auto
ocaml-base-compiler 4.14.0 Official release 4.14.0
ocaml-variants 4.14.0+options Official release of OCaml 4.14.0

```

and will it affect the ability to install libraries?

---

<div class="post-metadata">

**Author:** ![emillon](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/emillon/32/1206_2.png) [@emillon](https://discuss.ocaml.org/u/emillon)\
**Post date:** [October 10, 2022, 7:32am UTC](https://discuss.ocaml.org/t/base-compiler-vs-variants-switches/10592/2 "2022-10-10T07:32:23Z")

</div>

Hi,  
The difference is described in [this post](https://discuss.ocaml.org/t/experimental-new-layout-for-the-ocaml-variants-packages-in-opam-repository/6779). In a nutshell, `opam-base-compiler` is a “vanilla” compiler, while the `+options` compiler can be reconfigured without recreating the switch. For example, on a switch based on a `+options` compiler, it’s possible to `opam install ocaml-option-afl` to make the compiler use AFL instrumentation (which will also rebuild all packages in it).  
Most libraries are compatible with all options, but some packages are incompatible with a certain one.
