Class: Mon::Contract::Maybe

Inherits:
MonadContract
  • Object
show all
Defined in:
lib/contracts/maybe.rb

Instance Method Summary collapse

Methods inherited from MonadContract

#initialize, #nested_contract, #to_s, #valid_nested_contract?

Constructor Details

This class inherits a constructor from Mon::Contract::MonadContract

Instance Method Details

#valid?(val) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
# File 'lib/contracts/maybe.rb', line 8

def valid?(val)
  # Should either be None or valid?
  val.is_a?(Mon::M::Maybe) and (val.is_a?(Mon::M::Some).implies(valid_nested_contract?(val._)))
end