Yeah I can see pointer weirdness being an issue.
As for being not expressive enough for specifications, isn't the code itself a form of specification? :)
As for being not expressive enough for specifications, isn't the code itself a form of specification? :)