optimization

1. CTFE
2. Runtime (without inlining)