First Order Logic

There should be some `apply` on this class, even if it just raises NotImplementedError.