diff --git a/pkgs/development/haskell-modules/brainfuck-fix-ghc710.patch b/pkgs/development/haskell-modules/brainfuck-fix-ghc710.patch new file mode 100644 index 000000000000..ae3397fa573a --- /dev/null +++ b/pkgs/development/haskell-modules/brainfuck-fix-ghc710.patch @@ -0,0 +1,19 @@ +diff -ru3 brainfuck-0.1-old/Language/Brainfuck.hs brainfuck-0.1/Language/Brainfuck.hs +--- brainfuck-0.1-old/Language/Brainfuck.hs 2015-04-17 21:17:34.568721144 +0300 ++++ brainfuck-0.1/Language/Brainfuck.hs 2015-04-17 21:19:17.065872395 +0300 +@@ -19,6 +19,8 @@ + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -} + ++{-# LANGUAGE FlexibleContexts #-} ++ + module Language.Brainfuck where + + import Data.Array.IO +@@ -287,4 +289,4 @@ + + halt = if debug + then putStrLn "Machine Halted.\n" +- else putStrLn "\n" +\ No newline at end of file ++ else putStrLn "\n" diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix index 13a1701bd38e..ead618705198 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix @@ -314,4 +314,8 @@ self: super: { # Fix evaluation in GHC >=7.8: https://github.com/lambdabot/lambdabot/issues/116 lambdabot = appendPatch super.lambdabot ./lambdabot-fix-ghc78.patch; + # These packages don't have maintainers. + brainfuck = appendPatch super.brainfuck ./brainfuck-fix-ghc710.patch; + unlambda = appendPatch super.unlambda ./unlambda-fix-ghc710.patch; + } diff --git a/pkgs/development/haskell-modules/unlambda-fix-ghc710.patch b/pkgs/development/haskell-modules/unlambda-fix-ghc710.patch new file mode 100644 index 000000000000..51c453557aa8 --- /dev/null +++ b/pkgs/development/haskell-modules/unlambda-fix-ghc710.patch @@ -0,0 +1,28 @@ +diff -ru3 unlambda-0.1.3-old/Language/Unlambda.hs unlambda-0.1.3/Language/Unlambda.hs +--- unlambda-0.1.3-old/Language/Unlambda.hs 2015-04-17 21:16:32.415751612 +0300 ++++ unlambda-0.1.3/Language/Unlambda.hs 2015-04-17 21:25:38.210123501 +0300 +@@ -29,6 +29,7 @@ + import Prelude hiding(catch) + #endif + import Control.Exception (catch, IOException) ++import Control.Monad (liftM, ap) + + ------------------------------------------------------------------------ + -- Abstract syntax +@@ -85,6 +86,16 @@ + + type Cont a = (Maybe Char, Int) -> a -> IO Exp + ++instance Functor Eval where ++ ++ fmap = liftM ++ ++instance Applicative Eval where ++ ++ pure = return ++ ++ (<*>) = ap ++ + instance Monad Eval where + + (Eval cp1) >>= f = Eval $ \dat1 cont2 ->