Wrote non-recursive versions of all the previous work. (Recursion in path generators is still allowed, however.) loop : base == base actually type checks in this setting.