construindo um analisador lexical usando ml-lex

Eu preciso criar uma nova instância de umlexer vinculado ao fluxo de entrada padrão.
No entanto, quando eu digito

val lexer = makeLexer( fn n => inputLine( stdIn ) );

Eu recebo um erro que não entendo:

stdIn:1.5-11.13 Error: operator and operand don't agree [tycon mismatch]
  operator domain: int -> string
  operand:         int -> string option
  in expression:

(makeLexer é um nome de função presente no meu código-fonte)

questionAnswers(2)

yourAnswerToTheQuestion