README.md

# Prefix

## "add" g to f

```elixir
defmodule Q do
  
  def i() do
    :ok
  end

  def f() do
    IO.puts "world"
  end

  def g() do
    IO.puts "hello"
  end

  def f(a) do
    IO.puts a
  end

  def ff() do
    f()
    f()
  end

end
```

```elixir
iex -S mix
Q.f
# => world
# => :ok
Q.f "cjen07"
# => cjen07
# => :ok
Q.ff
# => world
# => world
# => :ok
Z.h :f, :g
# => :ok
Q.f
# => hello
# => world
# => :ok
Q.f "cjen07"
# => hello
# => cjen07
# => :ok
Q.ff
# => hello
# => world
# => hello
# => world
# => :ok
Z.h :f, :i
# => :ok
Q.f
# => world
# => :ok
Q.f "cjen07"
# => cjen07
# => :ok
Q.ff
# => world
# => world
# => :ok
```

## remark

  * Z.h: without code change, reversible

  * Z.i: with code change, irreversible