Make domain, range queriable on function
Function composition