Module: Kleisli

Defined in:
lib/kleisli/run.rb,
lib/kleisli/run/version.rb

Defined Under Namespace

Modules: Run Classes: MonadTerminator, Runner

Class Method Summary collapse

Class Method Details

.run(runner_impl = Runner, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/kleisli/run.rb', line 5

def self.run(runner_impl = Runner, &block)
  r = runner_impl.new(block.binding)
  begin
    res = r.instance_eval(&block)
    r.start.fmap { res }
  rescue MonadTerminator => ex
    ex.m
  end
end