Removed arrow syntax, made things more Haskellish, removed distinction between vector and scalar types