import type { Maybe } from './Maybe' ; export interface Path { readonly prev : Path | undefined ; readonly key : string | number ; readonly typename : string | undefined ; } /**
 * Given a Path and a key, return a new Path containing the new key.
 */ export function addPath ( prev , key , typename ) { return { prev , key , typename } ; } /**
 * Given a Path, return an Array of the path keys.
 */ export function pathToArray ( path ) { const flattened = [ ] ; let curr = path ; while ( curr ) { flattened . push ( curr . key ) ; curr = curr . prev ; } return flattened . reverse ( ) ; }