In reply to @Elegantbeef "Make a proc that": aaah, yeah, makes sense. I think it was just an unlucky scenario then because the two things I tried were: `for point in path[Grid, Point, int](grid, start, goal):` (from the astar library) which gives `cannot instantiate: 'path[Grid, Point, int]'`. This probably would've listed the reasons if it didn't have the [Grid, Point, int] in it, but I couldn't remove it since no argument matched the int And also: `let grid: Graph = Grid()` which gave `type mismatch: got 'Grid' for 'Grid()' but expected 'Graph = astar'` and `invalid type: 'Graph' for let`