construyendo un analizador léxico usando ml-lex

Necesito crear una nueva instancia de unlexer atado al flujo de entrada estándar.
Sin embargo, cuando escribo

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

Me sale un error que no entiendo:

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 es un nombre de función presente en mi código fuente)

Respuestas a la pregunta(2)

Su respuesta a la pregunta