code: function substitution(f, g, x) {
    if(!(isFunction(f) && isFunction(g))) {
      throw new TypeError(
        'substitution: Functions required for first two arguments'
      )
    }
  
    return curry(f)(x, g(x))
  }
docs: Substitution (Starling) substitution : (a -> b -> c) -> (a -> b) -> a -> c