# Tips and tricks

## Alternate init path

Working on your init.fs often puts you at high risk of rendering it unbootable
with one tiny mistake. If you're working on the "high-level" part (after "emit"
and "key" are there) of your init, you can create a fork of it to allow you to
boot to the old init if needed. Example:

    key 'z' = [if] f<< /init2.fs \s [then]

## next

If you want to save yourself some painful debugging sessions, don't ever call a
struct field "next" or, if you do, make sure that this struct doesn't ever
define words in its namespace, otherwise it overrides core's "next" and all hell
breaks loose, sometimes (that's the worst), in subtle ways!

This can happen when describing a structure that is a linked list. Name this
field anything but "next", you probably won't use it anyways as iterating over a
LL is clearer with "llnext" anyways.
