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