The dual member of operators is assumed to be a class. However, for TRUE and FALSE, it is an object.
This leads to errors with simplify() or literalize() within the demorgan() method when applied on TRUE or FALSE objects (e.g., #85)
There are two ways of fixing this: either assign the dual member of TRUE and FALSE to the corresponding class, or add a __call__ method to these objects returning themselves.
This PR adopts the latter approach to respect as much as possible the singleton design pattern.
The
dual
member of operators is assumed to be a class. However, forTRUE
andFALSE
, it is an object.This leads to errors with
simplify()
orliteralize()
within thedemorgan()
method when applied onTRUE
orFALSE
objects (e.g., #85)There are two ways of fixing this: either assign the dual member of
TRUE
andFALSE
to the corresponding class, or add a__call__
method to these objects returning themselves.This PR adopts the latter approach to respect as much as possible the singleton design pattern.