Resolving dependencies... Configuring value-supply-0.6... Configuring mtl-2.2.1... Building value-supply-0.6... Building mtl-2.2.1... Installed value-supply-0.6 Installed mtl-2.2.1 Downloading Obsidian-0.0.0.1... Configuring Obsidian-0.0.0.1... Building Obsidian-0.0.0.1... Failed to install Obsidian-0.0.0.1 Build log ( /home/builder/.cabal/logs/Obsidian-0.0.0.1.log ): cabal: Entering directory '/tmp/cabal-tmp-25556/Obsidian-0.0.0.1' Configuring Obsidian-0.0.0.1... Building Obsidian-0.0.0.1... Preprocessing library Obsidian-0.0.0.1... Obsidian/CodeGen/InOut.hs:2:14: warning: -XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS [ 1 of 22] Compiling Obsidian.Types ( Obsidian/Types.hs, dist/build/Obsidian/Types.o ) [ 2 of 22] Compiling Obsidian.Globs ( Obsidian/Globs.hs, dist/build/Obsidian/Globs.o ) [ 3 of 22] Compiling Obsidian.Names ( Obsidian/Names.hs, dist/build/Obsidian/Names.o ) [ 4 of 22] Compiling Obsidian.DimSpec ( Obsidian/DimSpec.hs, dist/build/Obsidian/DimSpec.o ) [ 5 of 22] Compiling Obsidian.CodeGen.PP ( Obsidian/CodeGen/PP.hs, dist/build/Obsidian/CodeGen/PP.o ) [ 6 of 22] Compiling Obsidian.CodeGen.SPMDC ( Obsidian/CodeGen/SPMDC.hs, dist/build/Obsidian/CodeGen/SPMDC.o ) [ 7 of 22] Compiling Obsidian.Exp ( Obsidian/Exp.hs, dist/build/Obsidian/Exp.o ) Obsidian/Exp.hs:789:21: error: • 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:789:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CAdd In an equation for ‘binOpToCBinOp’: binOpToCBinOp Add = CAdd • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:790:21: error: • 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:790:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CSub In an equation for ‘binOpToCBinOp’: binOpToCBinOp Sub = CSub • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:791:21: error: • 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:791:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CMul In an equation for ‘binOpToCBinOp’: binOpToCBinOp Mul = CMul • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:792:21: error: • 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:792:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CDiv In an equation for ‘binOpToCBinOp’: binOpToCBinOp Div = CDiv • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:793:22: error: • 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:793:15-18 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CDiv In an equation for ‘binOpToCBinOp’: binOpToCBinOp FDiv = CDiv • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:794:21: error: • 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:794:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CMod In an equation for ‘binOpToCBinOp’: binOpToCBinOp Mod = CMod • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:796:21: error: • 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:796:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp Eq = CEq • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:797:23: error: • 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:797:15-19 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CNotEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp NotEq = CNotEq • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:798:21: error: • 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:798:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CLt In an equation for ‘binOpToCBinOp’: binOpToCBinOp Lt = CLt • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:799:21: error: • 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:799:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CLEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp LEq = CLEq • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:800:21: error: • 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:800:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CGt In an equation for ‘binOpToCBinOp’: binOpToCBinOp Gt = CGt • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:801:21: error: • 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:801:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CGEq In an equation for ‘binOpToCBinOp’: binOpToCBinOp GEq = CGEq • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:803:21: error: • 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:803:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CAnd In an equation for ‘binOpToCBinOp’: binOpToCBinOp And = CAnd • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:804:21: error: • 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:804:15-16 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: COr In an equation for ‘binOpToCBinOp’: binOpToCBinOp Or = COr • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:806:21: error: • 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:806:15-17 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CPow In an equation for ‘binOpToCBinOp’: binOpToCBinOp Pow = CPow • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:808:28: error: • 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:808:15-24 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CBitwiseAnd In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseAnd = CBitwiseAnd • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:809:28: error: • 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:809:15-23 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CBitwiseOr In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseOr = CBitwiseOr • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:810:28: error: • 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:810:15-24 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CBitwiseXor In an equation for ‘binOpToCBinOp’: binOpToCBinOp BitwiseXor = CBitwiseXor • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:811:28: error: • 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:811:15-20 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CShiftL In an equation for ‘binOpToCBinOp’: binOpToCBinOp ShiftL = CShiftL • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:812:28: error: • 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:812:15-20 ‘t’ is a rigid type variable bound by the inferred type of binOpToCBinOp :: Op t1 -> t at Obsidian/Exp.hs:789:1 Possible fix: add a type signature for ‘binOpToCBinOp’ • In the expression: CShiftR In an equation for ‘binOpToCBinOp’: binOpToCBinOp ShiftR = CShiftR • Relevant bindings include binOpToCBinOp :: Op t1 -> t (bound at Obsidian/Exp.hs:789:1) Obsidian/Exp.hs:815:28: error: • 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:815:15-24 ‘t’ is a rigid type variable bound by the inferred type of unOpToCUnOp :: Op t1 -> t at Obsidian/Exp.hs:815:1 Possible fix: add a type signature for ‘unOpToCUnOp’ • In the expression: CBitwiseNeg In an equation for ‘unOpToCUnOp’: unOpToCUnOp BitwiseNeg = CBitwiseNeg • Relevant bindings include unOpToCUnOp :: Op t1 -> t (bound at Obsidian/Exp.hs:815:1) cabal: Leaving directory '/tmp/cabal-tmp-25556/Obsidian-0.0.0.1' cabal: Error: some packages failed to install: Obsidian-0.0.0.1 failed during the building phase. The exception was: ExitFailure 1