   Compiles a requirement to its internal representation with
   `:ets.match_spec_compile/1` for faster matching.
 
-  The internal representation is opaque and can not be converted to external
+  The internal representation is opaque and cannot be converted to external
   term format and then back again without losing its properties (meaning it
   can not be sent to a process on another node and still remain a valid
   compiled match_spec, nor can it be stored on disk).


  ## Struct

  The version is represented by the Version struct and fields
  are named according to SemVer: `:major`, `:minor`, `:patch`,
  `:pre` and `:build`.

  ## Requirements

  Requirements allow you to specify which versions of a given
  dependency you are willing to work against. It supports common
  operators like `>=`, `<=`, `>`, `==` and friends that
  work as one would expect:

      # Only version 2.0.0

    case Regex.run(~r/\+([^\s]+)$/, string) do
      nil ->
        nil
      [_, build] ->
        build
    end
