runFrontendNoCommentsT :: MonadIO m => FrontendNoCommentsT pos tok m a
                       -> [(ByteString, pos -> tok)]
                       -> m a
runFrontendNoCommentsT lexer keywords =
  let
    commentbuffer = runKeywordsT lexer keywords
    srcbuf = runSkipCommentsT commentbuffer
    genpos = runSourceBufferT srcbuf
    gensym  = startGenposT genpos
  in
    startGensymT gensym
runFrontendNoCommentsT :: MonadIO m => FrontendNoCommentsT pos tok m a
                       -> [(ByteString, pos -> tok)]
                       -> m a
runFrontendNoCommentsT lexer keywords =
  let
    commentbuffer = runKeywordsT lexer keywords
    srcbuf = runSkipCommentsT commentbuffer
    genpos = runSourceBufferT srcbuf
    gensym  = startGenposT genpos
  in
    startGensymT gensym
runFrontendNoCommentsT lexer keywords =
  let
    commentbuffer = runKeywordsT lexer keywords
    srcbuf = runSkipCommentsT commentbuffer
    genpos = runSourceBufferT srcbuf
    gensym  = startGenposT genpos
  in
    startGensymT gensym