fix various issues about registering
deal with constness of Language::eval and bring back FastFunction::()