-type options() :: #{moduledoc => boolean(), doc => boolean() | [{atom(), arity()}], eunit_opts => rebar3_config | [term()], extractors => [module()], bindings => erl_eval:binding_struct(), records => [{Name :: atom(), Fields :: [atom()]}]}.
-type result() :: ok | error.
-spec module(Mod) -> Result when Mod :: module(), Result :: result().
-spec module(Mod, Opts) -> Result when Mod :: module(), Opts :: options(), Result :: result().