I have been tasked with this:

> 
> Write a function `enc :: Int -> String -> String` that encrypts a string by adding some given integer to each character's Unicode value. Now, using `enc` as a locally declared function write a function `encrypt :: Int -> String -> (String , String -> String)` that accepts a `String` and an `Int` and returns a pair of an encrypted string and a function with which to decrypt the string.
> 
> 
> 

I have written the function `enc`, that was fairly easy, but I cannot figure out how to return a function from `encrypt`.

So far I have

```
encrypt :: Int -> String -> (String , String -> String)
encrypt num word = (enc num word, ???)

```

I have no idea what to write in place of '???'. I've read a fair bit about curried functions but everything I've found defines a function that takes a function as a parameter and uses that function to recursively call itself. `encrypt` doesn't take a function as a parameter. How can I define an entirely new function and return it, rather than returning its value, all from within another function?