diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,11 @@
 
 ## 0.2.15
 
+* Fixing build on Windows.
+  [#80](https://github.com/kazu-yamamoto/quic/pull/80)
+
+## 0.2.15
+
 * Defining `ccUseServerNameIndication`.
 * Defining `ccOnServerCertificate`.
 
diff --git a/Network/QUIC/Client/Run.hs b/Network/QUIC/Client/Run.hs
--- a/Network/QUIC/Client/Run.hs
+++ b/Network/QUIC/Client/Run.hs
@@ -79,17 +79,18 @@
                     else wait1RTTReady conn
                 client0 conn
             ldcc = connLDCC conn
-            supporters =
-                foldr1
-                    concurrently_
-                    [ handshaker
-                    , sender conn
-                    , receiver conn
-                    , resender ldcc
-                    , ldccTimer ldcc
-                    ]
+        let s1 = labelMe "handshaker" >> handshaker
+            s2 = labelMe "sender" >> sender conn
+            s3 = labelMe "receiver" >> receiver conn
+            s4 = labelMe "resender" >> resender ldcc
+            s5 = labelMe "ldccTimer" >> ldccTimer ldcc
+            c1 = labelMe "concurrently1" >> concurrently_ s1 s2
+            c2 = labelMe "concurrently2" >> concurrently_ c1 s3
+            c3 = labelMe "concurrently3" >> concurrently_ c2 s4
+            c4 = labelMe "concurrently4" >> concurrently_ c3 s5
+            supporters = c4
             runThreads = do
-                er <- race supporters client
+                er <- race supporters (labelMe "QUIC client" >> client)
                 case er of
                     Left () -> E.throwIO MustNotReached
                     Right r -> return r
diff --git a/Network/QUIC/Connection/Queue.hs b/Network/QUIC/Connection/Queue.hs
--- a/Network/QUIC/Connection/Queue.hs
+++ b/Network/QUIC/Connection/Queue.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
 module Network.QUIC.Connection.Queue where
 
 import Control.Concurrent.STM
diff --git a/Network/QUIC/Connection/Stream.hs b/Network/QUIC/Connection/Stream.hs
--- a/Network/QUIC/Connection/Stream.hs
+++ b/Network/QUIC/Connection/Stream.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE BinaryLiterals #-}
-{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RecordWildCards #-}
 
 module Network.QUIC.Connection.Stream (
@@ -15,6 +14,7 @@
 ) where
 
 import Control.Concurrent.STM
+import qualified Control.Exception as E
 
 import Network.QUIC.Connection.Misc
 import Network.QUIC.Connection.Types
@@ -93,13 +93,13 @@
         1 -> readIORef peerStreamId
         2 -> readTVarIO myUniStreamId
         3 -> readIORef peerUniStreamId
-        _ -> error "never reach"
+        _ -> E.throwIO MustNotReached
     readForServer = case streamType of
         0 -> readIORef peerStreamId
         1 -> readTVarIO myStreamId
         2 -> readIORef peerUniStreamId
         3 -> readTVarIO myUniStreamId
-        _ -> error "never reach"
+        _ -> E.throwIO MustNotReached
 
 checkStreamIdRoom :: Connection -> Direction -> IO (Maybe Int)
 checkStreamIdRoom conn dir = do
diff --git a/Network/QUIC/Sender.hs b/Network/QUIC/Sender.hs
--- a/Network/QUIC/Sender.hs
+++ b/Network/QUIC/Sender.hs
@@ -276,7 +276,7 @@
         b1 <- not <$> isEmptyCryptoSTM conn
         b2 <- not <$> isEmptyOutputSTM conn
         b3 <- not <$> isEmptyStreamSTM conn
-        return $ or [b1, b2, b3]
+        return (b1 || b2 || b3)
     unless exist $ construct conn RTT1Level [] False >>= sendPacket conn
 sendOutput conn (OutControl lvl frames) = do
     mout <- tryPeekOutput conn
diff --git a/cbits/sysevent.c b/cbits/sysevent.c
--- a/cbits/sysevent.c
+++ b/cbits/sysevent.c
@@ -1,8 +1,7 @@
+#if defined(OS_MacOS)
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <unistd.h>
-
-#if defined(OS_MacOS)
 #include <sys/ioctl.h>
 #include <sys/kern_event.h>
 
@@ -34,6 +33,9 @@
   return ret;
 }
 #elif defined(OS_Linux)
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>
 #include <linux/netlink.h>
 #include <linux/rtnetlink.h>
 
diff --git a/quic.cabal b/quic.cabal
--- a/quic.cabal
+++ b/quic.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               quic
-version:            0.2.15
+version:            0.2.16
 license:            BSD3
 license-file:       LICENSE
 maintainer:         kazu@iij.ad.jp
