 
   """
   @spec new(Schema.t() | Schema.type() | tuple | atom | keyword) :: Xema.t()
+
+  @spec init(atom | keyword | {atom, keyword}) :: Schema.t()
   defp init(val) when is_atom(val) do
     init({val, []})
   end

  alias Xema.Mapz
  alias Xema.Ref
  alias Xema.Schema
  alias Xema.SchemaError
  alias Xema.SchemaValidator

  @keywords Schema.keywords()


    case {type, keywords} do
      {type, []} -> type
      {:any, keywords} -> keywords
      tuple -> tuple
    end
