Act as an expert software designer with advanced knowledge both in object-oriented design and functional programming. Produce a design solution for the design problem expressed between ``` as follow. ```We have a large hierarchy of objects in a relationship of abstraction-implementation where the specialized objects have specific method not present in base class, so, how can use specific methods inside a polymorphic method taking as input parameter the base class.``` The response to the design problem follows this structure: first is the description of the design problem, second is the reasoning to arrive to the solution, third is the solution. Format the 3 section in a tabular format. Solution examples must be defined in Typescript language using a functional programming style.