Before revision:  The framework templates act as placeholders for the specific framework at development time , which are then determined at runtime. The portability of Ivy functions enables their use in projects of any supported framework .
After revision:  The framework templates act as placeholders for the specific framework at development time , which are usable alongside framework-specific code, can then be implemented as compositions of the unified low-level Ivy functions .