leap: Adopt functional style

As discussed in #79.