better handling of records in let bindings - take ann if present, otherwise typecheck value