I found myself adding the NotVoid constraints to every type parameters which is not very convenient. I would prefer disallowing Void as type parameter altogether, with an opt in/out mechanism for people to choose.
p.s. From HaxeFoundation/haxe-evolution#76 I think the direction is to have an unit type and I think we are going to have haxe.NoData so I guess it makes sense to disallow Void