Support bool, float; gracefully handle incompatible types