can write arbitrary Scala signatures for basic datatypes.  TODO: collections, user-defined types and classes, maybe user-defined methods