The external function has to be given a Haskell name. The name
must be a Haskell varid, so the language rules regarding
variable names must be followed, i.e., it must start with a
lower case letter followed by a sequence of alphanumeric
(`in the Unicode sense') characters or ' .
Notice that with Haskell 98, underscore ( '_' ) is included in
the character class small.
varid : small ( small | large | udigit | ' )*