diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,13 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
-## [1.0.0]
+## [1.0.1] - 2023-08-03
+
+### Changed
+
+- Do not use alternative monad for Either String values.
+
+## [1.0.0] - 2023-07-28
 
 ### Changed
 
diff --git a/haskoin-core.cabal b/haskoin-core.cabal
--- a/haskoin-core.cabal
+++ b/haskoin-core.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           haskoin-core
-version:        1.0.0
+version:        1.0.1
 synopsis:       Bitcoin & Bitcoin Cash library for Haskell
 description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-core#readme>
 category:       Bitcoin, Finance, Network
diff --git a/src/Haskoin/Crypto/Keys/Extended/Internal.hs b/src/Haskoin/Crypto/Keys/Extended/Internal.hs
--- a/src/Haskoin/Crypto/Keys/Extended/Internal.hs
+++ b/src/Haskoin/Crypto/Keys/Extended/Internal.hs
diff --git a/src/Haskoin/Network/Common.hs b/src/Haskoin/Network/Common.hs
--- a/src/Haskoin/Network/Common.hs
+++ b/src/Haskoin/Network/Common.hs
@@ -3,9 +3,9 @@
 {-# LANGUAGE DerivingStrategies #-}
 {-# LANGUAGE DuplicateRecordFields #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE ImportQualifiedPost #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE NoFieldSelectors #-}
-{-# LANGUAGE ImportQualifiedPost #-}
 
 -- |
 -- Module      : Haskoin.Network.Common
diff --git a/src/Haskoin/Script/SigHash.hs b/src/Haskoin/Script/SigHash.hs
--- a/src/Haskoin/Script/SigHash.hs
+++ b/src/Haskoin/Script/SigHash.hs
@@ -329,7 +329,7 @@
 instance MarshalJSON (Network, Ctx) TxSignature where
   marshalValue (net, ctx) = String . encodeHex . encodeTxSig net ctx
   marshalEncoding s = hexEncoding . runPutL . marshalPut s
-  unmarshalValue (net, ctx) = 
+  unmarshalValue (net, ctx) =
     withText "TxSignature" $ \t ->
       case decodeHex t of
         Nothing -> fail "Cannot decode hex signature"
diff --git a/src/Haskoin/Script/Standard.hs b/src/Haskoin/Script/Standard.hs
--- a/src/Haskoin/Script/Standard.hs
+++ b/src/Haskoin/Script/Standard.hs
@@ -185,7 +185,9 @@
   -- Provably unspendable data carrier output
   [OP_RETURN, OP_PUSHDATA bs _] -> Right $ DataCarrier bs
   -- Pay to MultiSig Keys
-  _ -> matchPayMulSig ctx s <|> Left "decodeOutput: Non-standard output"
+  _ -> case matchPayMulSig ctx s of
+    Right x -> return x
+    Left _ -> Left "decodeOutput: Non-standard output"
 
 witnessVersionOp :: Word8 -> Maybe ScriptOp
 witnessVersionOp 0 = Just OP_0
diff --git a/src/Haskoin/Transaction/Builder.hs b/src/Haskoin/Transaction/Builder.hs
--- a/src/Haskoin/Transaction/Builder.hs
+++ b/src/Haskoin/Transaction/Builder.hs
@@ -61,7 +61,7 @@
 import Data.Bytes.Serial
 import Data.Conduit (ConduitT, Void, await, runConduit, (.|))
 import Data.Conduit.List (sourceList)
-import Data.Either (fromRight)
+import Data.Either (fromRight, rights)
 import Data.List (nub)
 import Data.Maybe (catMaybes, fromJust, isJust)
 import Data.String.Conversions (cs)
@@ -509,9 +509,11 @@
   | isSegwit so0 =
       fromRight False $ (inp == mempty &&) . verifySegwitInput so0 <$> wp so0
   | otherwise =
-      fromRight False $
-        (verifyLegacyInput so0 <$> unmarshal (net, ctx) inp)
-          <|> (nestedScriptOutput >>= \so -> verifyNestedInput so0 so <$> wp so)
+      or $
+        rights
+          [ verifyLegacyInput so0 <$> unmarshal (net, ctx) inp,
+            nestedScriptOutput >>= \so -> verifyNestedInput so0 so <$> wp so
+          ]
   where
     inp = (tx.inputs !! i).script
     theTxSigHash so = Sign.makeSigHash net ctx tx i so val
diff --git a/src/Haskoin/Transaction/Partial.hs b/src/Haskoin/Transaction/Partial.hs
--- a/src/Haskoin/Transaction/Partial.hs
+++ b/src/Haskoin/Transaction/Partial.hs
@@ -55,8 +55,7 @@
 
 import Control.Applicative ((<|>))
 import Control.DeepSeq (NFData)
-import Control.Monad (foldM, guard, replicateM, void)
-import Control.Monad.Cont (unless)
+import Control.Monad (foldM, guard, replicateM, unless, void)
 import Crypto.Secp256k1
 import Data.Binary (Binary (..))
 import Data.ByteString (ByteString)
diff --git a/src/Haskoin/Util/Helpers.hs b/src/Haskoin/Util/Helpers.hs
--- a/src/Haskoin/Util/Helpers.hs
+++ b/src/Haskoin/Util/Helpers.hs
@@ -119,8 +119,8 @@
     f x = Just (fromInteger x :: Word8, x `shiftR` 8)
 
 hexEncoding :: LB.ByteString -> Encoding
-hexEncoding b = 
-  unsafeToEncoding $ 
+hexEncoding b =
+  unsafeToEncoding $
     char7 '"' <> hexBuilder b <> char7 '"'
 
 hexBuilder :: LB.ByteString -> Builder
diff --git a/src/Haskoin/Util/Marshal.hs b/src/Haskoin/Util/Marshal.hs
--- a/src/Haskoin/Util/Marshal.hs
+++ b/src/Haskoin/Util/Marshal.hs
diff --git a/test/Haskoin/BlockSpec.hs b/test/Haskoin/BlockSpec.hs
--- a/test/Haskoin/BlockSpec.hs
+++ b/test/Haskoin/BlockSpec.hs
@@ -7,6 +7,7 @@
   )
 where
 
+import Control.Monad
 import Control.Monad.State.Strict
 import Data.Either (fromRight)
 import Data.Maybe (fromJust)
