Rewrote most of core so we can have one common Lam and App. Split out a separate `Array` from `Data`.