A declarative, reactive shell