I checked out your answer, I have meet all your said requirements. GHCi, inf-haskell (after I installed package haskell-mode) and setting `haskell-program-name`, I found there is no `defcustom` variable option named `haskell-program-name` at all.

[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/

On Wed, Nov 15, 2017 at 9:17 PM, numbchild@gmail.com <numbchild@gmail.com> wrote:
I required `(require 'inf-haskell)` But have not found the command `inf-haskell` to start inferior process.

[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/

On Mon, Nov 13, 2017 at 11:43 PM, Nick Dokos <ndokos@gmail.com> wrote:
stardiviner <numbchild@gmail.com> writes:

> When I execute the following Haskell src block:
>
> ```
>
> #+BEGIN_SRC haskell :session :tangle "Data/Code/hello_world.hs"
> main :: IO ()
> main = do
>   putStrLn "Hello, World!"
> #+END_SRC
>
> ```
>
> It reports error:
>
> ```
>
> Debugger entered--Lisp error: (file-missing "Cannot open load file" "No
> such file or directory" "inf-haskell")
>   require(inf-haskell)

See my answer to this SO question:

  https://stackoverflow.com/questions/42081379/how-to-set-up-org-babel-for-haskell-with-stack

for some details on setting up the environment.

--
Nick