# File datatypes.rb, line 40
    def initialize
      
      @datatypes = {
        'symbol' => { 'valid' => proc {|x| SYMBOL.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'boolean' => { 'valid' => proc {|x| BOOLEAN.match(x)}, 'typecast' => proc {|x| x === BOOLEAN_TRUE} },
        'bool' => { 'valid' => proc {|x| BOOLEAN.match(x)}, 'typecast' => proc {|x| x === BOOLEAN_TRUE} },
        'yesno' => { 'valid' => proc {|x| BOOLEAN.match(x)}, 'typecast' => proc {|x| x === BOOLEAN_TRUE} },
        'string' => { 'valid' => proc {|x| STRING.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'text' => { 'valid' => proc {|x| STRING.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'varchar' => { 'valid' => proc {|x| STRING.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'var' => { 'valid' => proc {|x| STRING.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'char' => { 'valid' => proc {|x| STRING.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'int' => { 'valid' => proc {|x| INTEGER.match(x)}, 'typecast' => proc {|x| x.to_i} },
        'integer' => { 'valid' => proc {|x| INTEGER.match(x)}, 'typecast' => proc {|x| x.to_i} },
        'serial' => { 'valid' => proc {|x| INTEGER.match(x)}, 'typecast' => proc {|x| x.to_i} },
        'unsigned' => { 'valid' => proc {|x| UNSIGNED_INTEGER.match(x)}, 'typecast' => proc {|x| x.to_i} },
        'float' => { 'valid' => proc {|x| FLOAT.match(x)}, 'typecast' => proc {|x| x.to_f} },
        'double' => { 'valid' => proc {|x| FLOAT.match(x)}, 'typecast' => proc {|x| x.to_f} },
        'decimal' => { 'valid' => proc {|x| FLOAT.match(x)}, 'typecast' => proc {|x| x.to_f} },
        'numeric' => { 'valid' => proc {|x| FLOAT.match(x)}, 'typecast' => proc {|x| x.to_f} },
        'time' => { 'valid' => proc {|x| TIME.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'timestamp' => { 'valid' => proc {|x| TIMESTAMP.match(x)}, 'typecast' => proc {|x| x.to_s} },
        'date' => { 'valid' => proc {|x| complex_date_valid?(x)}, 'typecast' => proc {|x| x.to_s} },
        'ssn' => { 'valid' => proc {|x| SSN.match(x)}, 'typecast' => proc {|x| x.to_s} }
      }
      
    end