     end
 
     defp to_condition([:'>=', version | _]) do
-      matchable = parse_version(version)
+      matchable = parse_condition(version)
 
       { :orelse, { :andalso, { :not, { :is_binary, :'$1' } },
                              { :'==', :'$_', { :const, matchable } } },

    end

    defp to_condition([:'<=', version | _]) do
      matchable = parse_version(version)

      { :orelse, { :andalso, { :not, { :is_binary, :'$1' } },
                             { :'==', :'$_', { :const, matchable } } },


  @type t :: String.t | Version.Schema.t
  @type requirement :: String.t | Version.Requirement.t
  @type matchable :: { major :: String.t | non_neg_integer,
                       minor :: non_neg_integer | nil,
                       patch :: non_neg_integer | nil,
                       pre   :: [String.t] }

  import Kernel, except: [match?: 2]

