I tried tom make a lazyscoped!T but I'm stuck at creating a constructor and determining the arguments from the Type.
Unfortunately I can't find a way in D to get a list of arguments at compile time for a given function. Is this at all possible? It sounds like an easy case of introspection.