// conductTypeChecking starts type checking the passed form for errors and warnings
func conductTypeChecking(form interfaces.Form) ([]error, []error) {
	typeChecker := typechecker.NewTypeChecker()
	typeCheckerArgs := typechecker.NewTypeCheckArgs(typeChecker, symbols.NewTypeCheckSymbols())
	form.TypeCheck(&typeCheckerArgs)
	warnings := typeChecker.EncounteredWarnings()
	errors := typeChecker.EncounteredErrors()

	log.WithFields(log.Fields{"errors": errors, "warnings": warnings}).Error("Type checking finished")

	return errors, warnings
}
func (suite *TypeCheckerTestSuite) SetupTest() {
	typeChecker := NewTypeChecker()
	suite.typeCheckArgs = NewTypeCheckArgs(typeChecker, symbols.NewTypeCheckSymbols())
}