Enabling developers to write concise code in solving complex problems is one of the significant characteristics of functional programming. The conciseness is mostly due to the abstractions provided by the functional programming language. Can we apply these abstractions and write concurrent programs with ease? In this talk, we are going to find the answer to this question by solving tricky concurrent problems in F# using the Hopac library.