@@ -645,15 +645,13 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
645 (argVar, Nothing)
645 (argVar, Nothing)
647 (Just $ CppIndexer
647 (Just $ CppIndexer
648− (fieldToIndex field)
648+ (fieldToIndex' field)
649− (CppCast (dataType $ fieldToIndex' field + 1) $ CppVar varName))
649+ (CppCast (dataType $ fieldToIndex field + 1) $ CppVar varName))
651− fieldToIndex :: Ident -> Cpp
651+ fieldToIndex :: Ident -> Int
652+ fieldToIndex = (+1) . read . dropWhile isLetter . runIdent
653+ fieldToIndex' :: Ident -> Cpp
652− fieldToIndex = CppNumericLiteral . Left . (+1) . read . dropWhile isLetter . runIdent
654+ fieldToIndex' = CppNumericLiteral . Left . toInteger . fieldToIndex
654− fieldToIndex' :: Ident -> Int
655− fieldToIndex' = (+1) . read . dropWhile isLetter . runIdent
657 ctor' :: Cpp
655 ctor' :: Cpp
658 ctor' = CppAccessor (CppVar . identToCpp $ Ident ctor) (CppVar "data")
656 ctor' = CppAccessor (CppVar . identToCpp $ Ident ctor) (CppVar "data")
659 ctorCpp :: Cpp
657 ctorCpp :: Cpp