Module: Dhall::AsDhall::ExpressionList

Defined in:
lib/dhall/as_dhall.rb

Defined Under Namespace

Classes: Empty, Mono, Optional, Union

Class Method Summary collapse

Class Method Details

.for(values, exprs) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/dhall/as_dhall.rb', line 147

def self.for(values, exprs)
  types = exprs.map(&TypeChecker.method(:type_of))

  if types.empty?
    Empty
  elsif types.include?(nil) && types.uniq.length <= 2
    Optional
  elsif types.uniq.length == 1
    Mono
  else
    Union
  end.new(values, exprs, types)
end