class Monadist::Monad

Public Instance Methods

fmap(&block) click to toggle source
# File lib/monadist/monad.rb, line 13
def fmap(&block)
  bind { |value| self.class.unit block.call value }
end
join() click to toggle source
# File lib/monadist/monad.rb, line 4
def join
  bind do |value|
    raise "Wrapped value not a monad of type #{self.class.name}" unless value.instance_of? self.class
    value
  end
end
method_missing(*args, &block) click to toggle source
# File lib/monadist/monad.rb, line 19
def method_missing(*args, &block)
  fmap { |value| value.public_send *args, &block }
end