I’ve knocked off the easiest of the jobs below, Scoping now caches the list of things in scope at each node for future use, this is useful for a number of reasons.
I’ve also added a function with the following signature:
colourin :: (Scoper c f x,Traversable f) =>
c -> x f CName -> x f (CName,NameKind)
what does this mean, well, if you have a p :: CProg (Either CShed) CName
and type
colourin () p
it should annotate the CNames with colours, I hope ;)
No testing has been done so I’ll fix any bugs when I get back next week, there’s still plenty to do but it should help the UI guys show us some good stuff.