function getRules(has) { var getRule = function (x) { return x[1] } var falseRule = function (x) { return has(x[0], false) } var trueRule = fu.comp(fu.not, falseRule) return fu.concat( rules.builtin, fu.map(getRule, fu.filter(falseRule, fu.intoArray(rules.aretrue))), fu.map(getRule, fu.filter(trueRule, fu.intoArray(rules.arefalse))) ) }
function getObjProperty(obj) { return fu.head(fu.filter(function (x) { return obj.hasOwnProperty(x) }, ['or', 'maybe', 'type', 'fn'])) }
function getOtherNode(left, right) { return fu.filter(function (node) { return !isNaNIdentifier(node) }, [left, right]) }