High level abstractions above the golang reflect library