Removed a redundant type-checking inferred types; provided arrow types as syntactic sugar