When building specific functionals, we pass a name to the superclass constructor that is just a label.
A few of these superclass init calls have a functional name that doesn't match the class name. AFAICT this name is just an arbitrary label that one attaches, so it doesn't have to match.
To avoid this, we could make it an optional argument, and do:
class Functional:
def __init__(self, ..., functional_type=None):
...
self.functional_type = functional_type or type(self).__name__
Originally posted by @wence- in #56 (comment)