Jonathan Dayton and Valerie Faris‘s Ruby Sparks (Fox Searchlight, 7.25) is, at heart, a film about the impulse to try and change or control a girlfriend or boyfriend. The third-act lesson is that we all need to be better people, but a girlfriend or boyfriend has to either accept who and what their partner is…or not. But nobody is soft clay, and we need to respect each other’s integrity (unless, of course, he or she happens to be deranged or a druggie).

The screenplay, written by Zoe Kazan, is about a blocked novelist (Paul Dano) dreaming up an imaginary girlfriend (Kazan) named Ruby Sparks. After getting over the shock of her manifestation and then falling in love with her, Dano gradually realizes that if there’s anything about Ruby he doesn’t especially care for, all he has to do is go to his manual typewriter and type that she no longer has this trait or tendency, and/or that she has a new trait or tendency…simple. This leads to trouble, trauma and loss, of course. Even imaginary girlfriends have to be allowed to find their own way.

The interesting wrinkle is that Ruby/Zoe isn’t just a figment of Paul’s imagination. She’s absolutely, biologically real, and can be seen and heard and felt and smelled by anyone and everyone else — i.e., Paul’s brother (Chris Messina) and mother (Annette Bening) and the mother’s boyfriend (Antonio Banderas), etc. How has this happened? Kazan’s screenplay offers no answers or clues, which is a way of saying to the audience “forget the particulars and concentrate on what the story is about.”

But a really good screenplay always addresses the mundane and the profound stuff simultaneously. A really good screenwriter always deals with the people in the audience who insist on some kind of plausibility, and tries to make the movie work for them on some level. Why, then, did I totally buy everything that I saw in Being John Malkovich? Hard to answer that. Bit I know it’s bothersome that Ruby’s rules of existence are never explored or even questioned.

And that goes double for the ending when…forget it, spoiler, too soon, later.