Resolving dependencies... Configuring mtl-2.2.1... Building mtl-2.2.1... Preprocessing library mtl-2.2.1... [ 1 of 22] Compiling Control.Monad.Writer.Class ( Control/Monad/Writer/Class.hs, dist/build/Control/Monad/Writer/Class.o ) [ 2 of 22] Compiling Control.Monad.State.Class ( Control/Monad/State/Class.hs, dist/build/Control/Monad/State/Class.o ) [ 3 of 22] Compiling Control.Monad.Reader.Class ( Control/Monad/Reader/Class.hs, dist/build/Control/Monad/Reader/Class.o ) [ 4 of 22] Compiling Control.Monad.RWS.Class ( Control/Monad/RWS/Class.hs, dist/build/Control/Monad/RWS/Class.o ) [ 5 of 22] Compiling Control.Monad.Identity ( Control/Monad/Identity.hs, dist/build/Control/Monad/Identity.o ) [ 6 of 22] Compiling Control.Monad.Error.Class ( Control/Monad/Error/Class.hs, dist/build/Control/Monad/Error/Class.o ) [ 7 of 22] Compiling Control.Monad.Cont.Class ( Control/Monad/Cont/Class.hs, dist/build/Control/Monad/Cont/Class.o ) [ 8 of 22] Compiling Control.Monad.Trans ( Control/Monad/Trans.hs, dist/build/Control/Monad/Trans.o ) [ 9 of 22] Compiling Control.Monad.Error ( Control/Monad/Error.hs, dist/build/Control/Monad/Error.o ) [10 of 22] Compiling Control.Monad.Except ( Control/Monad/Except.hs, dist/build/Control/Monad/Except.o ) [11 of 22] Compiling Control.Monad.List ( Control/Monad/List.hs, dist/build/Control/Monad/List.o ) [12 of 22] Compiling Control.Monad.RWS.Lazy ( Control/Monad/RWS/Lazy.hs, dist/build/Control/Monad/RWS/Lazy.o ) [13 of 22] Compiling Control.Monad.RWS ( Control/Monad/RWS.hs, dist/build/Control/Monad/RWS.o ) [14 of 22] Compiling Control.Monad.Reader ( Control/Monad/Reader.hs, dist/build/Control/Monad/Reader.o ) [15 of 22] Compiling Control.Monad.RWS.Strict ( Control/Monad/RWS/Strict.hs, dist/build/Control/Monad/RWS/Strict.o ) [16 of 22] Compiling Control.Monad.State.Lazy ( Control/Monad/State/Lazy.hs, dist/build/Control/Monad/State/Lazy.o ) [17 of 22] Compiling Control.Monad.State ( Control/Monad/State.hs, dist/build/Control/Monad/State.o ) [18 of 22] Compiling Control.Monad.State.Strict ( Control/Monad/State/Strict.hs, dist/build/Control/Monad/State/Strict.o ) [19 of 22] Compiling Control.Monad.Writer.Lazy ( Control/Monad/Writer/Lazy.hs, dist/build/Control/Monad/Writer/Lazy.o ) [20 of 22] Compiling Control.Monad.Writer ( Control/Monad/Writer.hs, dist/build/Control/Monad/Writer.o ) [21 of 22] Compiling Control.Monad.Writer.Strict ( Control/Monad/Writer/Strict.hs, dist/build/Control/Monad/Writer/Strict.o ) [22 of 22] Compiling Control.Monad.Cont ( Control/Monad/Cont.hs, dist/build/Control/Monad/Cont.o ) In-place registering mtl-2.2.1... Running Haddock for mtl-2.2.1... Running hscolour for mtl-2.2.1... Preprocessing library mtl-2.2.1... Preprocessing library mtl-2.2.1... Haddock coverage: 75% ( 3 / 4) in 'Control.Monad.Writer.Class' Missing documentation for: MonadWriter (Control/Monad/Writer/Class.hs:62) 100% ( 5 / 5) in 'Control.Monad.State.Class' 100% ( 3 / 3) in 'Control.Monad.Reader.Class' 80% ( 4 / 5) in 'Control.Monad.RWS.Class' Missing documentation for: MonadRWS (Control/Monad/RWS/Class.hs:44) 100% ( 4 / 4) in 'Control.Monad.Identity' 100% ( 3 / 3) in 'Control.Monad.Error.Class' 50% ( 1 / 2) in 'Control.Monad.Cont.Class' Missing documentation for: MonadCont (Control/Monad/Cont/Class.hs:73) 100% ( 3 / 3) in 'Control.Monad.Trans' 93% ( 14 / 15) in 'Control.Monad.Error' Missing documentation for: runErrorT 100% ( 19 / 19) in 'Control.Monad.Except' 100% ( 5 / 5) in 'Control.Monad.List' 95% ( 21 / 22) in 'Control.Monad.RWS.Lazy' Missing documentation for: runRWST 100% ( 2 / 2) in 'Control.Monad.RWS' 96% ( 22 / 23) in 'Control.Monad.Reader' Missing documentation for: runReaderT 95% ( 21 / 22) in 'Control.Monad.RWS.Strict' Missing documentation for: runRWST 96% ( 24 / 25) in 'Control.Monad.State.Lazy' Missing documentation for: runStateT 100% ( 2 / 2) in 'Control.Monad.State' 96% ( 24 / 25) in 'Control.Monad.State.Strict' Missing documentation for: runStateT 89% ( 17 / 19) in 'Control.Monad.Writer.Lazy' Missing documentation for: MonadWriter (Control/Monad/Writer/Class.hs:62) runWriterT 100% ( 2 / 2) in 'Control.Monad.Writer' 94% ( 17 / 18) in 'Control.Monad.Writer.Strict' Missing documentation for: MonadWriter (Control/Monad/Writer/Class.hs:62) 91% ( 20 / 22) in 'Control.Monad.Cont' Missing documentation for: MonadCont (Control/Monad/Cont/Class.hs:73) runContT Documentation created: dist/doc/html/mtl/index.html, dist/doc/html/mtl/mtl.txt Creating package registration file: /tmp/pkgConf-mtl-2.2278722862233665123.1 Installing library in /home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-7.10.2/mtl-2.2.1-KMpng31YRYc5JfMWFZ3FCU Registering mtl-2.2.1... Installed mtl-2.2.1 Configuring value-supply-0.6... Building value-supply-0.6... Preprocessing library value-supply-0.6... [1 of 1] Compiling Data.Supply ( Data/Supply.hs, dist/build/Data/Supply.o ) In-place registering value-supply-0.6... Running Haddock for value-supply-0.6... Running hscolour for value-supply-0.6... Preprocessing library value-supply-0.6... Preprocessing library value-supply-0.6... Haddock coverage: 100% ( 17 / 17) in 'Data.Supply' Documentation created: dist/doc/html/value-supply/index.html, dist/doc/html/value-supply/value-supply.txt Creating package registration file: /tmp/pkgConf-value-supply-0711645630195740084.6 Installing library in /home/builder/hackage-server/build-cache/tmp-install/lib/x86_64-linux-ghc-7.10.2/value-supply-0.6-6FTHZuhL89zGCMmrMWNSei Registering value-supply-0.6... Installed value-supply-0.6 Configuring Obsidian-0.0.0.2... Building Obsidian-0.0.0.2... Preprocessing library Obsidian-0.0.0.2... Obsidian/CodeGen/InOut.hs:2:14: Warning: -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS [ 1 of 22] Compiling Obsidian.CodeGen.PP ( Obsidian/CodeGen/PP.hs, dist/build/Obsidian/CodeGen/PP.o ) [ 2 of 22] Compiling Obsidian.DimSpec ( Obsidian/DimSpec.hs, dist/build/Obsidian/DimSpec.o ) [ 3 of 22] Compiling Obsidian.Globs ( Obsidian/Globs.hs, dist/build/Obsidian/Globs.o ) [ 4 of 22] Compiling Obsidian.CodeGen.SPMDC ( Obsidian/CodeGen/SPMDC.hs, dist/build/Obsidian/CodeGen/SPMDC.o ) [ 5 of 22] Compiling Obsidian.Names ( Obsidian/Names.hs, dist/build/Obsidian/Names.o ) [ 6 of 22] Compiling Obsidian.Types ( Obsidian/Types.hs, dist/build/Obsidian/Types.o ) [ 7 of 22] Compiling Obsidian.Exp ( Obsidian/Exp.hs, dist/build/Obsidian/Exp.o ) Obsidian/Exp.hs:788:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Num a) bound by a pattern with constructor Add :: forall a. Num a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:788:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CAdd In an equation for ‘binOpToCBinOp’: binOpToCBinOp Add = CAdd Obsidian/Exp.hs:789:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Num a) bound by a pattern with constructor Sub :: forall a. Num a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:789:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CSub In an equation for ‘binOpToCBinOp’: binOpToCBinOp Sub = CSub Obsidian/Exp.hs:790:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Num a) bound by a pattern with constructor Mul :: forall a. Num a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:790:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CMul In an equation for ‘binOpToCBinOp’: binOpToCBinOp Mul = CMul Obsidian/Exp.hs:791:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Num a) bound by a pattern with constructor Div :: forall a. Num a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:791:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CDiv In an equation for ‘binOpToCBinOp’: binOpToCBinOp Div = CDiv Obsidian/Exp.hs:792:22: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Floating a) bound by a pattern with constructor FDiv :: forall a. Floating a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:792:15-18 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CDiv In an equation for ‘binOpToCBinOp’: binOpToCBinOp FDiv = CDiv Obsidian/Exp.hs:793:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Integral a) bound by a pattern with constructor Mod :: forall a. Integral a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:793:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CMod In an equation for ‘binOpToCBinOp’: binOpToCBinOp Mod = CMod Obsidian/Exp.hs:795:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor Eq :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:795:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp Eq = CEq Obsidian/Exp.hs:796:23: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor NotEq :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:796:15-19 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CNotEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp NotEq = CNotEq Obsidian/Exp.hs:797:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor Lt :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:797:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CLt In an equation for ‘binOpToCBinOp’: binOpToCBinOp Lt = CLt Obsidian/Exp.hs:798:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor LEq :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:798:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CLEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp LEq = CLEq Obsidian/Exp.hs:799:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor Gt :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:799:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CGt In an equation for ‘binOpToCBinOp’: binOpToCBinOp Gt = CGt Obsidian/Exp.hs:800:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> Bool), Ord a) bound by a pattern with constructor GEq :: forall a. Ord a => Op ((a, a) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:800:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CGEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp GEq = CGEq Obsidian/Exp.hs:802:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((Bool, Bool) -> Bool)) bound by a pattern with constructor And :: Op ((Bool, Bool) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:802:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CAnd In an equation for ‘binOpToCBinOp’: binOpToCBinOp And = CAnd Obsidian/Exp.hs:803:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((Bool, Bool) -> Bool)) bound by a pattern with constructor Or :: Op ((Bool, Bool) -> Bool), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:803:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: COr In an equation for ‘binOpToCBinOp’: binOpToCBinOp Or = COr Obsidian/Exp.hs:805:21: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Floating a) bound by a pattern with constructor Pow :: forall a. Floating a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:805:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CPow In an equation for ‘binOpToCBinOp’: binOpToCBinOp Pow = CPow Obsidian/Exp.hs:807:28: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Bits a) bound by a pattern with constructor BitwiseAnd :: forall a. Bits a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:807:15-24 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CBitwiseAnd In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseAnd = CBitwiseAnd Obsidian/Exp.hs:808:28: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Bits a) bound by a pattern with constructor BitwiseOr :: forall a. Bits a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:808:15-23 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CBitwiseOr In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseOr = CBitwiseOr Obsidian/Exp.hs:809:28: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, a) -> a), Bits a) bound by a pattern with constructor BitwiseXor :: forall a. Bits a => Op ((a, a) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:809:15-24 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CBitwiseXor In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseXor = CBitwiseXor Obsidian/Exp.hs:810:28: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, b) -> a), Num b, Bits a) bound by a pattern with constructor ShiftL :: forall a b. (Num b, Bits a) => Op ((a, b) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:810:15-20 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CShiftL In an equation for ‘binOpToCBinOp’: binOpToCBinOp ShiftL = CShiftL Obsidian/Exp.hs:811:28: Couldn't match expected type ‘t’ with actual type ‘CBinOp’ ‘t’ is untouchable inside the constraints (t1 ~ ((a, b) -> a), Num b, Bits a) bound by a pattern with constructor ShiftR :: forall a b. (Num b, Bits a) => Op ((a, b) -> a), in an equation for ‘binOpToCBinOp’ at Obsidian/Exp.hs:811:15-20 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:788:1 Possible fix: add a type signature for ‘binOpToCBinOp’ Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:788:1) In the expression: CShiftR In an equation for ‘binOpToCBinOp’: binOpToCBinOp ShiftR = CShiftR Obsidian/Exp.hs:814:28: Couldn't match expected type ‘t’ with actual type ‘CUnOp’ ‘t’ is untouchable inside the constraints (t1 ~ (a -> a), Bits a) bound by a pattern with constructor BitwiseNeg :: forall a. Bits a => Op (a -> a), in an equation for ‘unOpToCUnOp’ at Obsidian/Exp.hs:814:15-24 ‘t’ is a rigid type variable bound by the inferred type of unOpToCUnOp :: Op t1 -> t at Obsidian/Exp.hs:814:1 Possible fix: add a type signature for ‘unOpToCUnOp’ Relevant bindings include unOpToCUnOp :: Op t1 -> t (bound at Obsidian/Exp.hs:814:1) In the expression: CBitwiseNeg In an equation for ‘unOpToCUnOp’: unOpToCUnOp BitwiseNeg = CBitwiseNeg Failed to install Obsidian-0.0.0.2 cabal: Error: some packages failed to install: Obsidian-0.0.0.2 failed during the building phase. The exception was: ExitFailure 1