diff --git a/abc-build/.hg_archival.txt b/abc-build/.hg_archival.txt
--- a/abc-build/.hg_archival.txt
+++ b/abc-build/.hg_archival.txt
@@ -1,5 +1,5 @@
 repo: 27f68cec826fd69da083a19ad1384a074eb56f73
-node: c16b9de6d2b4c7c267517efb75e50baf33a5d6f7
-branch: galois-abcBridge-0.14-dev
+node: 758ca61dba9ee9403b5e723b2dbdb49670d6616f
+branch: galois-abcBridge-0.15-dev
 latesttag: null
-latesttagdistance: 2713
+latesttagdistance: 2716
diff --git a/abc-build/galois-abcBridge.version b/abc-build/galois-abcBridge.version
--- a/abc-build/galois-abcBridge.version
+++ b/abc-build/galois-abcBridge.version
@@ -1,1 +1,1 @@
-0.14
+0.15
diff --git a/abcBridge.cabal b/abcBridge.cabal
--- a/abcBridge.cabal
+++ b/abcBridge.cabal
@@ -1,5 +1,5 @@
 Name:               abcBridge
-Version:            0.14
+Version:            0.15
 Synopsis:           Bindings for ABC, A System for Sequential
                     Synthesis and Verification
 Description:        Bindings for ABC focused on creating And-Inverter
@@ -56,7 +56,6 @@
     Data.ABC.Util
   Default-Language:     Haskell98
   Default-Extensions:   ForeignFunctionInterface,
-                        CPP,
                         FlexibleContexts,
                         MultiParamTypeClasses,
                         EmptyDataDecls
@@ -71,7 +70,11 @@
   }
 
   if os(windows) {
+    if arch(x86_64) {
+     CC-options: -D_WIN64 -DHAVE_STRUCT_TIMESPEC
+    } else {
      Cc-options: -D_WIN32
+    }
   }
 
   if !os(windows) {
@@ -87,6 +90,7 @@
 
   Build-depends:
     base == 4.*,
+    base-compat >= 0.6.0,
     aig >= 0.2.3,
     containers,
     directory,
@@ -116,6 +120,7 @@
     abc-test.hs
   build-depends:
     base == 4.*,
+    base-compat >= 0.6.0,
     abcBridge,
     aig,
     directory,
@@ -143,6 +148,7 @@
      buildable: True
      build-depends:
        base == 4.*,
+       base-compat >= 0.6.0,
        abcBridge,
        aig,
        directory,
@@ -172,4 +178,5 @@
     long-test.hs
   build-depends:
     base == 4.*,
+    base-compat >= 0.6.0,
     abcBridge
diff --git a/cbits/pthread_stubs.c b/cbits/pthread_stubs.c
--- a/cbits/pthread_stubs.c
+++ b/cbits/pthread_stubs.c
@@ -11,7 +11,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#ifdef _WIN32
+#if defined(_WIN32) || defined(_WIN64)
 #include "../abc-build/lib/pthread.h"
 
 #else
diff --git a/scripts/build-abc.sh b/scripts/build-abc.sh
--- a/scripts/build-abc.sh
+++ b/scripts/build-abc.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # bail out immediately if any command fails
 set -e
@@ -22,18 +22,49 @@
   -R .debug_ranges \
   -R .debug_str"
 
-# Select architecture-dependent compiler flags
-case "$ARCH" in
-  "I386") A="-m32 -DLIN -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4" ;;
-  "X86_64") A="-m64 -fPIC -DLIN64 -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 -DSIZEOF_INT=4" ;;
-  *) echo "Unknown architecture: $ARCH" ; exit 2 ;;
-esac
-
-# Set up some OS-dependent flags and actions
+# Select architecture- and OS-dependent compiler flags
 case "$OS" in
-  "Linux") S="" ;;
-  "OSX") S="" ;;
-  "Windows") S="libabc.dll" ; A="-m32 -DWIN32_NO_DLL -DABC_NO_DYNAMIC_LINKING -DLIN -DNT -UWIN32 -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 -DPTW32_STATIC_LIB -UZLIB_DLL -lmsvcrt -Wl,--undefined=___strtod,--wrap,strtod,--defsym,___wrap_strtod=___strtod" ; REMOVE_CMD="objcopy ${REMOVE_ARGS}" ;;
+  "Linux" | "OSX")
+    S=""
+    case "$ARCH" in
+      "I386") A="-m32 -DLIN -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4" ;;
+      "X86_64") A="-m64 -fPIC -DLIN64 -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=8 -DSIZEOF_INT=4" ;;
+      *) echo "Unknown architecture: $ARCH" ; exit 2 ;;
+    esac ;;
+  "Windows")
+    S="libabc.dll"
+    REMOVE_CMD="objcopy ${REMOVE_ARGS}"
+    case "$ARCH" in
+      "I386")
+        A="-m32 \
+           -DWIN32_NO_DLL \
+           -DABC_NO_DYNAMIC_LINKING \
+           -DLIN \
+           -DNT \
+           -D_WIN32 \
+           -UWIN32 \
+           -DSIZEOF_VOID_P=4 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 \
+           -DPTW32_STATIC_LIB \
+           -UZLIB_DLL \
+           -lmsvcrt \
+           -Wl,--undefined=___strtod,--wrap,strtod,--defsym,___wrap_strtod=___strtod" ;;
+
+      "X86_64")
+        # The `SIZEOF_*` arguments came from printing the
+        # corresponding `sizeof` results (using
+        # `abc-build/arch_flags.c`) on the Win64 machine. Note that
+        # the `SIZEOF_LONG` differs from the Lin64 value.
+        A="-m64 \
+           -DWIN32_NO_DLL \
+           -DABC_NO_DYNAMIC_LINKING \
+           -DNT64 \
+           -D_WIN64 \
+           -UWIN32 \
+           -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=4 -DSIZEOF_INT=4 \
+           -UZLIB_DLL \
+           -lmsvcrt" ;;
+      *) echo "Unknown architecture: $ARCH" ; exit 2 ;;
+    esac ;;
   *) echo "Unknown OS: $OS" ; exit 2 ;;
 esac
 
diff --git a/src/Data/ABC.hs b/src/Data/ABC.hs
--- a/src/Data/ABC.hs
+++ b/src/Data/ABC.hs
@@ -54,6 +54,10 @@
 
 type AIGLit = AIG.Lit
 
+{-# WARNING aigNetwork, readAigerAsAIG
+    "The Data.ABC.AIG module has known bugs (http://github.com/GaloisInc/abcBridge/issues/4) for which solutions do not currently exist.  Consider using Data.ABC.GIA instead."
+  #-}
+
 -- | Proxy for AIG interface.
 aigNetwork :: Proxy AIGLit AIG
 aigNetwork = AIG.proxy
diff --git a/src/Data/ABC/AIG.hs b/src/Data/ABC/AIG.hs
--- a/src/Data/ABC/AIG.hs
+++ b/src/Data/ABC/AIG.hs
@@ -14,7 +14,6 @@
 > import qualified Data.ABC.AIG as AIG
 
 -}
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE DoAndIfThenElse #-}
 {-# LANGUAGE EmptyDataDecls #-}
 {-# LANGUAGE FlexibleInstances #-}
@@ -24,6 +23,9 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE ViewPatterns #-}
 module Data.ABC.AIG
+{-# WARNING
+    "The Data.ABC.AIG module has known bugs (http://github.com/GaloisInc/abcBridge/issues/4) for which solutions do not currently exist.  Consider using Data.ABC.GIA instead."
+  #-}
   ( AIG
   , newAIG
   , readAiger
@@ -43,23 +45,19 @@
   , AIG.SomeGraph(..)
   ) where
 
-import Prelude hiding (and, or, not)
+import Prelude ()
+import Prelude.Compat hiding (and, or, not)
 
 import Foreign
 
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative
-#endif
 import Control.Exception
-import Control.Monad
+import Control.Monad.Compat
 import qualified Data.Vector.Storable as V
 import qualified Data.Vector.Storable.Mutable as VM
 import System.IO
 import qualified System.IO.Unsafe as Unsafe
 import qualified Data.Map as Map
 import           Data.IORef
-
-
 
 import Data.ABC.Internal.ABC
 import Data.ABC.Internal.AIG
diff --git a/src/Data/ABC/GIA.hs b/src/Data/ABC/GIA.hs
--- a/src/Data/ABC/GIA.hs
+++ b/src/Data/ABC/GIA.hs
@@ -18,7 +18,6 @@
 <http://bvsrc.org/research.html#AIG%20Package>  It is a more memory
 efficient method of storing AIG graphs.
 -}
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE DoAndIfThenElse #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE Rank2Types #-}
@@ -50,19 +49,16 @@
     , AIG.VerifyResult(..)
     ) where
 
-import Prelude hiding (and, not, or)
+import Prelude ()
+import Prelude.Compat hiding (and, not, or)
 import qualified Prelude
 import Control.Exception hiding (evaluate)
-import Control.Monad
+import Control.Monad.Compat
 import qualified Data.Map as Map
 import           Data.IORef
 import qualified Data.AIG as AIG
 import           Data.AIG.Interface (LitView(..))
 import qualified Data.AIG.Trace as Tr
-#if !MIN_VERSION_base(4,8,0)
-import Data.Functor
-import Data.Traversable (traverse)
-#endif
 
 import qualified Data.Vector.Storable as SV
 import qualified Data.Vector.Unboxed as V
diff --git a/tests/Tests/Basic.hs b/tests/Tests/Basic.hs
--- a/tests/Tests/Basic.hs
+++ b/tests/Tests/Basic.hs
@@ -1,16 +1,14 @@
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE PatternGuards #-}
 module Tests.Basic
   ( basic_tests
   ) where
 
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative
-#endif
 import Control.Exception
-import Control.Monad
+import Control.Monad.Compat
 import System.Directory
 import System.IO
+import Prelude ()
+import Prelude.Compat
 
 import Test.Tasty
 import Test.Tasty.HUnit as HU
diff --git a/tests/Tests/Operations.hs b/tests/Tests/Operations.hs
--- a/tests/Tests/Operations.hs
+++ b/tests/Tests/Operations.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE CPP #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE CPP #-}
 
 module Tests.Operations
   ( op_tests
