basic datatypes patterned after haskell prelude