text: 'use strict'
  function factory (type, config, load, typed) {
    /**
     * Compile an inline expression like "x > 0"
     * @param {Node} expression
     * @param {Object} math
     * @param {Object} scope
     * @return {function} Returns a function with one argument which fills in the
     *                    undefined variable (like "x") and evaluates the expression
     */
    return function compileInlineExpression (expression, math, scope) {
      // find an undefined symbol
      const symbol = expression.filter(function (node) {
        return type.isSymbolNode(node) &&
            !(node.name in math) &&
            !(node.name in scope)
      })[0]
  
      if (!symbol) {
        throw new Error('No undefined variable found in inline expression "' + expression + '"')
      }
  
      // create a test function for this equation
      const name = symbol.name // variable name
      const subScope = Object.create(scope)
      const eq = expression.compile()
      return function inlineExpression (x) {
        subScope[name] = x
        return eq.eval(subScope)
      }
    }
  }
  
  exports.factory = factory
  