}
public Object clone()
{
Set nf = (Set) ((HashSet) facts).clone();
TotalOrderPlan p = (TotalOrderPlan) plan.clone();
Map nfuncs = (Map) ((Hashtable) funcValues).clone();
Set oA = (Set) ((HashSet)openActions).clone();
List i = (List) ((ArrayList)invariants).clone();
Set na = (Set) ((HashSet) actions).clone();
TemporalMetricState ts = new TemporalMetricState(na, nf, goal, nfuncs, p, metric, oA, i);