class Mon::Contract::Monad
Public Instance Methods
valid?(val)
click to toggle source
# File lib/contracts/monad_contract.rb, line 36 def valid?(val) return false unless (val.is_a? Mon::M::Monad) case val when Mon::M::List Mon::C::List.new(@nested_contract).valid?(val) when Mon::M::Maybe Mon::C::Maybe.new(@nested_contract).valid?(val) when Mon::M::Try Mon::C::Try.new(@nested_contract).valid?(val) when Mon::M::Lazy Mon::C::Lazy.new(@nested_contract).valid?(val) when Mon::M::Future Mon::C::Future.new(@nested_contract).valid?(val) when Mon::M::React Mon::C::React.new(@nested_contract).valid?(val) else raise RuntimeError.new("Unrecognized monad: #{ val.class }!") end end