Introducing Labrea: How Embracing Declarative, Functional Programming Can Lead You Out of the Tar Pit