Added a 'value' property to ast nodes to make it less confusing because I was calling the node's value 'type' previously. Also added some assign type checking