implemented (scheme record) and (scheme lazy)