Interesting, this seems very similar to Haskell at a very basic level.
A Haskell program consists of declarations of functions and constants. Constants belong to the class Eq
http://www.haskell.org/ghc/docs/latest/html/libraries/base/D...
Functions do not.
How is your notion of nonsymbol/symbol different from function/constant?