%%==============================================================================
%% Copyright 2010-2017 Adam Lindberg, 2010-2011 Erlang Solutions Ltd
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%==============================================================================

@author Adam Lindberg <eproxus@gmail.com>
@copyright 2010-2017 Adam Lindberg, 2010-2011 Erlang Solutions Ltd
@version 0.8.13
@title meck, a Mocking Library for Erlang

@doc

== About ==
meck is a mocking library for Erlang.
