anchor.diff:      Script2 = lists:filter(fun (#operation{name = pool}) -> true; (_) -> false end, enumerate_pools(Script)),
       Script3 = mzbl_ast:map_meta(fun (Meta, Op) -> [{function, Op}|Meta] end, Script2),
       {Script3, Env2, Asserts}.
  +
  +string2lines("\n" ++ Str, Acc) -> [lists:reverse([$\n|Acc]) | string2lines(Str,[])];
  +string2lines([H|T], Acc)       -> string2lines(T, [H|Acc]);
  +string2lines([], Acc)          -> [lists:reverse(Acc)].
   
   import_resource(Env, File, Type) ->
       try
  
positive.code:              (string() | binary(), binary) -> binary();
               (string() | binary(), text) -> string();
               (string() | binary(), json) -> list() | map();
               (string() | binary(), lines) -> [string()];
               (string() | binary(), tsv) -> [binary()].
  convert(X, lines) when is_binary(X) -> binary:split(X, <<"\n">>);
  convert(X, binary) when is_binary(X) -> X;
  convert(X, binary) -> list_to_binary(X);
  convert(X, text) when is_binary(X) -> binary_to_list(X);
  
negative.code:                         end
                  end
          end,
          case Type of
              lines ->  convert(string2lines(erlang:binary_to_list(Content), []), Type) ;
              _ -> convert(Content, Type)
          end
      catch
          _:Reason ->
              lager:error("Resource ~p(~p) import error: ~p", [File, Type, Reason]),
  