anchor.diff:  
   
   -spec acquire_observations(station_selector(),[var_id()],{calendar:datetime(),calendar:datetime()}) -> ok|{error,any()}.
  -acquire_observations(_SSel,_VarIds,{From,To}) when From > To ->
  +acquire_observations(_SSel,_VarIds,{From,To}) when From > To and is_list(_VarIds) ->
     ok;
  -acquire_observations(SSel,VarIds,{From,To}) ->
  +acquire_observations(SSel,VarIds,{From,To}) when is_list(VarIds) ->
     STo = calendar:datetime_to_gregorian_seconds(To),
     SFrom = calendar:datetime_to_gregorian_seconds(From),
     case STo - SFrom > 2 * 86400 of
  
positive.code: 
  
  -spec retrieve_station_info(string()) -> #raws_station{} | no_such_station.
  retrieve_station_info(StId) ->
    case mnesia:transaction(fun () -> mnesia:read({raws_station,StId}) end) of
      {atomic,[StInfo]} ->
        StInfo;
  
negative.code: 
  
  -spec retrieve_stations_in_region({number(),number()},{number(),number()}) -> [#raws_station{}].
  retrieve_stations_in_region({MinLat,MaxLat},{MinLon,MaxLon}) when is_number(MinLat) and is_number(MaxLat)
                                                                and is_number(MinLon) and is_number(MaxLon) ->
    case mnesia:transaction(fun() ->
          Q = qlc:q([X || X=#raws_station{lat=Lat,lon=Lon} <- mnesia:table(raws_station),
                      Lat >= MinLat, Lat =< MaxLat, Lon >= MinLon, Lon =< MaxLon]),
          qlc:e(Q) end) of
  