merkle: first go at types