hmm, maybe i can create something based on ==
(instanto string instant) such that
if string and instant are grounded, check if (= (parse-instant string) instant
if only string is grounded, bind instant to (parse-string string)
if only instant is grounded, bind string to (format-string instant)
i'll have to figure out how to handle the case where both are unbounded
You would need to basically store your relation until either becomes ground and check again, which is more or less how constraints work
yeah that makes sense, what i need is basically equality modulo parsing/formatting, so it should work similar how the constraints enforce equality