Implement fully general LiftA w/ metaprogramming