anchor.diff:  
       ok.
   
  +-spec type_check_module_funs(module(),
  +                             FunList::[{Fun::atom(), Arity::non_neg_integer()}],
  +                             ExcludeList::[{Fun::atom(), Arity::non_neg_integer()}],
  +                             Count::pos_integer()) -> [ok | skipped | [ok | skipped]].
   type_check_module_funs(Module, FunList, ExcludeList, Count) ->
       [ begin
             %% test all non excluded funs with std. settings
  
positive.code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec type_check_module(module(),
                          [{atom(), non_neg_integer()}], %% fun, arity
                          [{atom(), non_neg_integer()}], %% fun, arity
                         pos_integer()) -> ok.
  type_check_module(Module, ExcludeExported, ExcludePrivate, Count) ->
      ExpFuncs = Module:module_info(exports),
      ExcludeList = [{module_info, 0}, {module_info, 1}] ++ ExcludeExported,
  
      %% only excluded exported functions?
      ErrList = [ case lists:member(X, ExpFuncs) of
                      true -> true;
                      false ->
                          ct:pal("Excluded non exported function ~p:~p", [Module,X]),
                          false
                  end ||
                    X <- ExcludeList ],
      case lists:all(fun(X) -> X end, ErrList) of
          true -> ok;
          false -> throw(error)
      end,
  
      %% perform the actual tests
  
negative.code:             ct:pal("*** Detected cover analysis, have to skip tests of private funs."),
              ok
      end,
      %% Was there even anything left to test?
      case [] =:= ExcludeExported orelse
          lists:any(fun(X) -> skipped =/= X end,
                    lists:flatten(ResList)) of
  