mochijson2 ou mochijson

Estou codificando alguns dados usando o mochijson2. Mas achei que se comporta de maneira estranha em strings como listas.

Exemplo:

mochijson2: encode ("foo").

[91, "102", 44, "111", 44, "111", 93]

Onde "102", "111", "111" são $ f, $ o, $ o codificados como as strings 44 são vírgulas e 91 e 93 são braquetes quadrados.

Claro que se eu produzir isso em algum lugar eu vou pegar string "[102,111,111]", que obviamente não é isso que eu o quê.

Se eu tentar

mochijson2: encode (<< "foo" >>).

[34, << "foo" >>, 34]

Então eu novamente eu recebo uma lista de duas duplas e parte binária dentro da qual pode ser traduzida para binário com list_to_binary / 1

Aqui está a pergunta - por que é tão inconsistente. Eu entendo que há um problema distingushing lista erlang que deve ser codificado como json array e erlang string, que deve ser codificado como json string, mas pelo menos ele pode saída binária quando eu passar binário?

E a segunda pergunta: Parece que o mochijson produz tudo de bom (porque usa uma tupla especial para designar arrays {array, ...})

mochijson: encode (<< "foo" >>).
"\" foo \ ""

Qual a diferença entre o mochijson2 e o mochijson? Atuação? Manipulação de Unicode? Algo mais?

obrigado