Dear Singular Developement Team (SDT),
recently I stumbled about the memset instructions in some of
the singular functions, especially in the object constructors
of skStrategy, sLObject, sTObject. Whilst I can understand the
need for speed for the singular implementation, I think, that
memset for c++ objects is not the means of choice. This little
memset instruction interferes with some fundamental Object-oriented
programming (OOP) paradigms/techniques, e.g. polymorphism or
Composition of Objects. I wouldn't have noticed it, if I did not run
into problems myself. In short: I could patch the constructors of
these classes, to use an initializer list, instead of memset,
to set their members to 0. And I hope you (the SDT) are interested to
apply those patches. If you are interested in what I do at the
moment, I can give you an overview about how I am
using/(trying to use) OOP in Singular at the moment. 
If you would like to have some further information about what
problems memset can cause, have a look at this:
https://augias.org/paercebal/tech_doc/doc.en/cp.memset_is_evil.html
Well, I do not want to imply that memset is evil, but this short
article is quite readable and has the necessary information.
(In particular: Have a look at the section "memset vs. non-POD".)
Furthermore (if you are still willingly to read on):
As I already stated, the Removal of the memset instruction from
some places of the singular code is also personal concern of me.
But maybe this could be the place to offer some of my thinkings
about OOP in Singular in general. I don't know anything about
the plans of the SDT in this matter, but I am eager to hear
something about them. Already I heard of the plans of
Oleksandr Motsak to renew the template system of singular, but
as far as I can remember, there was yet no consent about it.
Are there still plans to develope in this direction? What other
plans has the SDT? Some thoughts of me:
� Apply encapsulation to the members of the Objects, use
  getters/setters, declare most members private.
� Split code in a c++ way. E.g. skStrategy seems to be an
  accumulation of many different algorithmic parts of Singular.
  This can make improvement and changes to it rather cumbersome.
  Here one can use Inheritance and maybe some Interfaces for
  sLObject and sTObject would be useful.
� Use C++ Namespace additionally: Not everything fits into a
  class. Namespaces make clear, which part of the code belongs
  where (and help to avoid name clashes).
� Document some of the code e.g. with doxygen or something like
  that. (Ok, this was a joke, but it would be handy to have a
  better documentation of the code.)
� A minor matter: Instead of having concrete Objects in say a
  class like skStrategy, it may be better to have pointers,
  since then, when one inherits (for example) from sLObject,
  one can initialize these pointers whith the inherited Object,
  instead of the normal sLObject (so there is no need to carry
  these around). But that may not be of great importance. I
  just got this idea, because I am in exact this situation.
After having done this, one could look for some other Software
Engeneering techniques to apply on the Singular code. However,
these are just some thoughts of mine and for sure the SDT is
quite busy at the moment. I may be able to help you a bit in
the future.
My Question for you:
Would you possibly apply the patch I could send to you,
or are you not interested in removing the memset instructions,
or do you want to do it on your own?
Benjamin Schnitzler