diff --git a/lib/monads/optional.rb b/lib/monads/optional.rb index 9ce77b3..137d687 100644 --- a/lib/monads/optional.rb +++ b/lib/monads/optional.rb @@ -1,8 +1,13 @@ require 'monads/monad' module Monads - Optional = Struct.new(:value) do + class Optional include Monad + attr_accessor :value + + def initialize(value) + @value = value + end def and_then(&block) block = ensure_monadic_result(&block)