class Dry::Types::PrimitiveInferrer::Compiler

@api private
Compiler reduces type AST into a list of primitives

def visit(node)

Other tags:
    Api: - private
def visit(node)
  meth, rest = node
  public_send(:"visit_#{meth}", rest)
end

def visit_any(_) = ::Object

Other tags:
    Api: - private
def visit_any(_) = ::Object

def visit_array(_) = ::Array

Other tags:
    Api: - private
def visit_array(_) = ::Array

def visit_constrained(node)

Other tags:
    Api: - private
def visit_constrained(node)
  other, * = node
  visit(other)
end

def visit_constructor(node)

Other tags:
    Api: - private
def visit_constructor(node)
  other, * = node
  visit(other)
end

def visit_enum(node)

Other tags:
    Api: - private
def visit_enum(node)
  other, * = node
  visit(other)
end

def visit_hash(_) = ::Hash

Other tags:
    Api: - private
def visit_hash(_) = ::Hash

def visit_lax(node) = visit(node)

Other tags:
    Api: - private
def visit_lax(node) = visit(node)

def visit_nominal(node)

Other tags:
    Api: - private
def visit_nominal(node)
  type, _ = node
  type
end

def visit_sum(node)

Other tags:
    Api: - private
def visit_sum(node)
  left, right = node
  [visit(left), visit(right)].flatten(1)
end