meta-prog : memo-class