defmodule Hyphen do @moduledoc """ Hyphen public API (prototype). This module provides a minimal behaviour and helpers for the demo prototype. """ defmacro __using__(_opts) do quote do @behaviour Hyphen.Backend defoverridable mount: 1 end end def hello, do: :world end defmodule Hyphen.Backend do @callback mount(map()) :: {:ok, map()} | {:error, any()} end defmodule Hyphen do @moduledoc """ Documentation for `Hyphen`. """ @doc """ Hello world. ## Examples iex> Hyphen.hello() :world """ def hello do :world end end