haskell: start on Gram type, plus lexer for J