If you don't mind using an external SMT solver, you can use the SBV package:
Prelude Data.SBV> allSat $ \x -> 2*x^3-19*x^2+15*x+72 .== (0::SReal)
Solution #1:
s0 = 3.0 :: Real
Solution #2:
s0 = 8.0 :: Real
Solution #3:
s0 = -1.5 :: Real
Found 3 different solutions.
, , .. . Real . , :
Prelude Data.SBV> allSat $ \x -> x^2-2 .== (0::SReal)
Solution #1:
s0 = root(1, x^2 = 2) = -1.414213562373095... :: Real
Solution #2:
s0 = root(2, x^2 = 2) = 1.414213562373095... :: Real
Found 2 different solutions.
:
Prelude Data.SBV> allSatWith z3{printRealPrec=20} $ \x -> x^2-2 .== (0::SReal)
Solution #1:
s0 = root(1, x^2 = 2) = -1.4142135623730950488... :: Real
Solution #2:
s0 = root(2, x^2 = 2) = 1.4142135623730950488... :: Real
Found 2 different solutions.
, SMT ; :
Prelude Data.SBV> allSat $ \x -> x^2+1 .== (0::SReal)
No solutions found.
, :
Prelude Data.SBV> allSat $ \x -> x^3+2*x-1 .== (0::SReal)
Solution #1:
s0 = root(1, x^3+2x = 1) = 0.4533976515164037... :: Real
This is the only solution.
PS. , Z3 . https://github.com/Z3Prover/z3/releases