work in progress: AST classes for Functor and metadata FunctorDef