Refactor type, record and alias to have same underlying implementation

and sneak `.eslintrc` into