anchor.diff:                ct_groupname/0,
                 ct_config/0,
                 ct_status/0,
  -              ct_groups_def/0,
  -              ct_tests_def/0,
  +              ct_group_def/0,
  +              ct_test_def/0,
                 ct_info/0
                ]).
   
  
positive.code:             repeat_until_any_fail.
  -type ct_test_repeat() :: integer() |
              forever.
  -type ct_groups_def() :: {ct_groupname(), ct_group_props(), [
                  ct_testname() |
                  ct_groups_def() |
                  {group, ct_groupname()} |
                  ct_testcase_ref()
              ]}.
  
negative.code:                 {CTHModule :: atom(), CTHInitArgs :: term()} |
                  {CTHModule :: atom(), CTHInitArgs :: term(), CTHPriority :: integer()}
              ].
  -type ct_test_def() :: ct_testname() | ct_group_ref() | ct_testcase_ref().
  
  -callback all() ->
      [TestDef :: ct_test_def()] |
      {skip, Reason :: term()}.
  
  -callback groups() ->
      [GroupDef :: ct_group_def()].
  
  -callback suite() ->
      [Info :: ct_info()].
  