Arc Hyperbolic Tangent
 ArcHyperbolicTangent is a curried constructor used to create a JS/JSON
		configuration object that represents an arc hyperbolic tangent operation.
const ArcHyperbolicTangent =
  (datatype = "Number") =>
  operand => ({
    tag: "ArcHyperbolicTangent",
    operand,
    datatype,
  })
 
export default ArcHyperbolicTangent
 
The first parameter to ArcHyperbolicTangent determines the datatype
		of the return value of the arc hyperbolic tangent operation: Number (float) or
Integer.
The second parameter is an operation that must eventually evaluate to a numerical value. This is the operand for which we will calculate the arc hyperbolic tangent.
The operand operation (add, subtract, etc.) may include nested operations to any depth, but the bottom (leaf) nodes must return values. Values are injected with injectors.
Because ArcHyperbolicTangent is curried, we can simplify our code
		by partial application, for example,
const AHTan = ArcHyperbolicTangent("Integer"). This returns a
		function that takes the operand operation and returns an
		ArcHyperbolicTangent configuration object for working with integers.
See below for an example.
The arcHyperbolicTangent function
 
We pass our configuration object to composeOperators, which composes the operations and returns a single function. This
		function takes an optional argument and returns the result of the
		calculation as a Right, e.g., { right: 42 }, or a Left with an array of Error objects,
{ left: [Error] }.
const arcHyperbolicTangent = operation => (arg? => Either<Array<Error>, result>) composeOperators works by recursing down through the
operation object, calling the correct operator function based on
		the tag (e.g., "ArcHyperbolicTangent"), and composing the functions
		returned.
composeOperators then returns this composed function. See composeOperators for a more detailed explanation.
The injectors are not called until this composed calculate function
		is run. Hence, evaluation is lazy: the values are not injected until the last
		moment.
See the injectors for a complete list of how values may be injected. See the list of operators for the full range of available mathematical operations.
Example
We use composeOperators to create a calculate function, passing it our ArcHyperbolicTangent operation object. We call the calculate function and pass it an
		(optional) argument to run our operation(s) and calculate the product.
Here our operation includes an operand in which the value is
		passed in via the optional argument to calculate. This is done
		using FromArgument.
Try leaving one of the numbers undefined to see an Error returned.