makeNode :: Data.Set.Set String -> (String -> Grammar) -> [Rule] ->
            String -> [Node] -> [Node]
makeNode wordSet nodeType rules word next =
    if   Data.Set.member word wordSet
    then [Node (nodeType word) rules next]
    else []
makeNode :: Data.Set.Set String -> (String -> Grammar) -> [Rule] ->
            String -> [Node] -> [Node]
makeNode wordSet nodeType rules word next =
    if   Data.Set.member word wordSet
    then [Node (nodeType word) rules next]
    else []
makeNode wordSet nodeType rules word next =
    if   Data.Set.member word wordSet
    then [Node (nodeType word) rules next]
    else []