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) = visit(node[0])

Other tags:
    Api: - private
def visit_constrained(node) = visit(node[0])

def visit_constructor(node) = visit(node[0])

Other tags:
    Api: - private
def visit_constructor(node) = visit(node[0])

def visit_enum(node) = visit(node[0])

Other tags:
    Api: - private
def visit_enum(node) = visit(node[0])

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) = node[0]

Other tags:
    Api: - private
def visit_nominal(node) = node[0]

def visit_sum(node)

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