def add(self, effect=None, act=None, obj=None,
            policy=None, policies=None):
        """Insert an individual (effect, action, object) triple or all
        triples for a policy or list of policies.

        """
        if policies is not None:
            for p in policies:
                self.add(policy=p)
        elif policy is not None:
            for e, a, o in policy:
                self.add(e, a, o)
        else:
            objc = obj.components if obj is not None else []
            self.tree[act.components + objc] = effect