what happens if you try to do
```
type Visited = Map[Prod[_], P#Plan[T]]
```
or
```
type Visited[T] = Map[Prod[_], P#Plan[T]]
```
do either work? would clean up the need for casting