nicer function type sigs (andalso less broken)