Theorems are opaque, Definitions are transparent
A* returns path . refactor puts as fold . extrinsically define "g"