=== Symmetric Paths === A symmetric path is a convenient short hand notation, e.g.: and[not] This is equal to the same expression as an asymmetric path: and[not x not -> not] The benefit of symmetric paths is that the number of arguments do not matter. Composition rules of symmetric paths is the same as for normal composition: f[g][h] <=> f[h . g] Most of generic path semantics is first defined for symmetric paths, because the more general case of asymmetric paths is a simple modification. Many useful laws in mathematics are expressible as symmetric paths: and[not] <=> or or[not] <=> and DeMorgan's laws add[exp] <=> mul mul[ln] <=> add Exponentiation and logarithm mul_mat[det] <=> mul Matrices and determinants concat[len] <=> add Lists and lengths