Array sizes with phantom types. We use a very primitive
arrangement because that's all we need for now: the base
type is Sz1
, Sz2
, etc., and it's doubled as many times
as necessary by applying
the Twice
constructor. The base value is sz1
, sz2
,
etc., and it's doubled by applying the twice
function.