A functional systems language leveraging dependent types, partial evaluation, and data layout abstraction