Question: How to list all known types

If a type is not known, an error is thrown

type([],foo)
Error, type `foo` does not exist

Since no error is thrown, these types are known

type({},'{}');# why that output?
                             false

type([],'[]')
                              true

I would have expceted {} and [] to be listed as subtypes of set and list since their counterparts (nonemptylist and nonemptyset) exist. Technically the types {} and [] are not needed since negating

not(type([],nonemptylist));
not(type({},nonemptyset));
                              true

                              true

works.  However, the types exist, hence my question

Please Wait...