@type t() :: %Muta.Source{ast: Macro.t(), code: String.t(), file: Path.t()}
@spec compilable(Macro.t()) :: Macro.t()
@spec parse(String.t(), Path.t()) :: t()
@spec read(Path.t()) :: t()