packages feed

HROOT-hist 0.9.0.1 → 0.10.0.1

raw patch · 243 files changed

+14415/−11294 lines, 243 filesdep +stdcxxdep ~HROOT-coredep ~fficxxdep ~fficxx-runtimesetup-changed

Dependencies added: stdcxx

Dependency ranges changed: HROOT-core, fficxx, fficxx-runtime

Files

+ CHANGES view
@@ -0,0 +1,60 @@+# Changelog for HROOT++## 0.10.0.1+- Use hackage-version of fficxx (#18)+- Generate docs in CI (#17)+- Update flake.nix with recent fficxx and ormolu format (#16)+- Update fficxx to support GHC 9.4 (#15)+- Add TMutex and test multithreading with GUI (#12)+- HROOT now uses common stdcxx (#11)+- idealized gas simulation (#10)+- Add TMarker and Range. Test 2D graphics using gas example (#9)+- HROOT generation and packing via nix (#8)+- Revive umbrella package generation (#7)+- Static files (Config.hs, Setup.lhs) and custom-setup dependency (#6)+- Modernize HROOT with fficxx 0.5.1 (#5)++## 0.9.0.1++## 0.9+- HROOT-tree+- HROOT only support ROOT > 6++## 0.8+- separate packages into HROOT-core, HROOT-hist, HROOT-io, HROOT-math, HROOT-graf and HROOT is now an umbrella package++## 0.7+- separate all class interfaces and implementation in different modules+- overhaul Existential++## 0.7.1+- support for static methods+- add TROOT++## 0.6.9+- implement almost all class methods of TLine, TAttLine, TAttMarker, TAttText and TAttPad++## 0.6.8+- implement almost all class methods of TH2, TH3, TFormula, TF1 and TGraph++## 0.6.7+- implement almost all TH1 class methods++## 0.6.6+- do not need OverlappingInstances, IncoherentInstances, UndecidableInstances++## 0.6.4+- add many TH2 class methods++## 0.6.3+- Implement Existential Types++## 0.6+- implement Deletable. delete method for every object+- refactor HROOT generated file names (Interface.hs, Implementation.hs, FFI.hs)++## 0.5.1+- support for delete++## 0.5.0+- initial preview release
− Config.hs
@@ -1,85 +0,0 @@-{-# LANGUAGE ScopedTypeVariables #-}--module Config where- -import Distribution.Simple-import Distribution.Simple.Setup-import Distribution.PackageDescription-import Distribution.Simple.LocalBuildInfo--import System.Exit-import System.Process--config :: LocalBuildInfo -> IO (Maybe HookedBuildInfo)-config bInfo = do -  (excode, out, err) <- readProcessWithExitCode "root-config" ["--glibs"] ""-  liboptset' <- case excode of -                  ExitSuccess -> do  -                    return . Just .  mkLibraryOptionSet . words $ out-                  _ -> do -                    putStrLn $ "root-config failure but I am installing HROOT without ROOT. It will not work. This is only for documentation." -                    return Nothing              -  (excode2,out2,err2) <- readProcessWithExitCode "root-config" ["--incdir"] ""-  incdir' <- case excode2 of -               ExitSuccess -> do  -                 return . Just . head . words $ out2-               _ -> do -                 putStrLn $ "root-config failure but I am installing HROOT without ROOT. It will not work. This is only for documentation." -                 return Nothing-  let Just lib = library . localPkgDescr $ bInfo-      buildinfo = libBuildInfo lib-  let (r :: Maybe HookedBuildInfo) = case liboptset' of -            Nothing -> Nothing-            Just liboptset -> -              case incdir' of -                Nothing -> Nothing -                Just incdir -> -                  let hbi = emptyBuildInfo { extraLibs = extraLibs buildinfo -                                                         ++ libs liboptset-                                           , extraLibDirs = libdirs liboptset -                                           , includeDirs = incdir : includeDirs buildinfo-                                           }-                  in Just (Just hbi, []) -  return r ---data LibraryOptionSet = LibraryOptionSet { -  libs :: [String], -  libdirs :: [String], -  libopts :: [String]-} deriving Show--data LibraryOption = Lib String -                   | Dir String-                   | Opt String -                   deriving Show--mkLibraryOptionSet :: [String] -> LibraryOptionSet-mkLibraryOptionSet strs = let opts = libraryOptions strs-                          in  foldr f (LibraryOptionSet [] [] []) opts -  where f x (LibraryOptionSet l d o) = case x of-                                         Lib st -> LibraryOptionSet (st:l) d o -                                         Dir st -> LibraryOptionSet l (st:d) o -                                         Opt st -> LibraryOptionSet l d (st:o) --libraryOptions :: [String] -> [LibraryOption] -- LibraryOptionSet -libraryOptions = map f -  where f x = let r = parseLibraryOptionClassifier x-              in  case r of -                    Left msg -> error (show msg)-                    Right result -> result---parseLibraryOptionClassifier :: String -> Either String LibraryOption -parseLibraryOptionClassifier [] = Left "empty option"-parseLibraryOptionClassifier str@(x:xs) = -  case x of-    '-' -> if null xs -             then Left "parse error"-             else let (y:ys) = xs-                  in  case y of-                        'L' -> Right (Dir ys)-                        'l' -> Right (Lib ys)-                        _ -> Right (Opt str)-    _ -> Right (Opt str) -
HROOT-hist.cabal view
@@ -1,94 +1,107 @@-Name:                HROOT-hist-Version:     0.9.0.1-Synopsis:    Haskell binding to ROOT Hist modules-Description:         HROOT is a haskell Foreign Function Interface (FFI) binding to ROOT. ROOT(http://root.cern.ch) is an object-oriented program and library developed by CERN for physics data analysis.-Homepage:       http://ianwookim.org/HROOT-license: LGPL-2.1-license-file: LICENSE-Author:              Ian-Woo Kim-Maintainer:  Ian-Woo Kim <ianwookim@gmail.com>-Category:       Graphics, Statistics, Math, Numerical-Tested-with:    GHC >= 7.6-Build-Type:  Custom-cabal-version:  >=1.10+Cabal-version: 3.0+Name:          HROOT-hist+Version:       0.10.0.1+Synopsis:      Haskell binding to ROOT Hist modules+Description:+  HROOT is a haskell Foreign Function Interface (FFI) binding to ROOT.+  ROOT(http://root.cern.ch) is an object-oriented program and library+  developed by CERN for physics data analysis.+Homepage:      https://wavewave.github.io/HROOT+license:       LGPL-2.1-or-later+license-file:  LICENSE+Author:        Ian-Woo Kim+Maintainer:    Ian-Woo Kim <ianwookim@gmail.com>+Category:      Graphics, Statistics, Math, Numerical+Tested-with:   GHC == 9.0.2 || == 9.2.4 || == 9.4.2  Extra-source-files:-                       Config.hs-                       csrc/HROOTHistTAxis.h-                       csrc/HROOTHistTF1.h-                       csrc/HROOTHistTFitResult.h-                       csrc/HROOTHistTFitResultPtr.h-                       csrc/HROOTHistTGraph.h-                       csrc/HROOTHistTGraphAsymmErrors.h-                       csrc/HROOTHistTGraphBentErrors.h-                       csrc/HROOTHistTGraphErrors.h-                       csrc/HROOTHistTH1.h-                       csrc/HROOTHistTH1C.h-                       csrc/HROOTHistTH1D.h-                       csrc/HROOTHistTH1F.h-                       csrc/HROOTHistTH1I.h-                       csrc/HROOTHistTH1K.h-                       csrc/HROOTHistTH1S.h-                       csrc/HROOTHistTH2.h-                       csrc/HROOTHistTH2C.h-                       csrc/HROOTHistTH2D.h-                       csrc/HROOTHistTH2F.h-                       csrc/HROOTHistTH2I.h-                       csrc/HROOTHistTH2Poly.h-                       csrc/HROOTHistTH2S.h-                       csrc/HROOTHistTH3.h-                       csrc/HROOTHistTH3C.h-                       csrc/HROOTHistTH3D.h-                       csrc/HROOTHistTH3F.h-                       csrc/HROOTHistTH3I.h-                       csrc/HROOTHistTH3S.h-                       csrc/HROOTHistTHStack.h-                       csrc/HROOTHistTAxis.cpp-                       csrc/HROOTHistTF1.cpp-                       csrc/HROOTHistTFitResult.cpp-                       csrc/HROOTHistTFitResultPtr.cpp-                       csrc/HROOTHistTGraph.cpp-                       csrc/HROOTHistTGraphAsymmErrors.cpp-                       csrc/HROOTHistTGraphBentErrors.cpp-                       csrc/HROOTHistTGraphErrors.cpp-                       csrc/HROOTHistTH1.cpp-                       csrc/HROOTHistTH1C.cpp-                       csrc/HROOTHistTH1D.cpp-                       csrc/HROOTHistTH1F.cpp-                       csrc/HROOTHistTH1I.cpp-                       csrc/HROOTHistTH1K.cpp-                       csrc/HROOTHistTH1S.cpp-                       csrc/HROOTHistTH2.cpp-                       csrc/HROOTHistTH2C.cpp-                       csrc/HROOTHistTH2D.cpp-                       csrc/HROOTHistTH2F.cpp-                       csrc/HROOTHistTH2I.cpp-                       csrc/HROOTHistTH2Poly.cpp-                       csrc/HROOTHistTH2S.cpp-                       csrc/HROOTHistTH3.cpp-                       csrc/HROOTHistTH3C.cpp-                       csrc/HROOTHistTH3D.cpp-                       csrc/HROOTHistTH3F.cpp-                       csrc/HROOTHistTH3I.cpp-                       csrc/HROOTHistTH3S.cpp-                       csrc/HROOTHistTHStack.cpp--+  CHANGES+  csrc/HROOTHistTAxis.h+  csrc/HROOTHistTF1.h+  csrc/HROOTHistTFitResult.h+  csrc/HROOTHistTFitResultPtr.h+  csrc/HROOTHistTGraph.h+  csrc/HROOTHistTGraph2D.h+  csrc/HROOTHistTGraphAsymmErrors.h+  csrc/HROOTHistTGraphBentErrors.h+  csrc/HROOTHistTGraphErrors.h+  csrc/HROOTHistTH1.h+  csrc/HROOTHistTH1C.h+  csrc/HROOTHistTH1D.h+  csrc/HROOTHistTH1F.h+  csrc/HROOTHistTH1I.h+  csrc/HROOTHistTH1K.h+  csrc/HROOTHistTH1S.h+  csrc/HROOTHistTH2.h+  csrc/HROOTHistTH2C.h+  csrc/HROOTHistTH2D.h+  csrc/HROOTHistTH2F.h+  csrc/HROOTHistTH2I.h+  csrc/HROOTHistTH2Poly.h+  csrc/HROOTHistTH2S.h+  csrc/HROOTHistTH3.h+  csrc/HROOTHistTH3C.h+  csrc/HROOTHistTH3D.h+  csrc/HROOTHistTH3F.h+  csrc/HROOTHistTH3I.h+  csrc/HROOTHistTH3S.h+  csrc/HROOTHistTHStack.h+  csrc/HROOTHistTMultiGraph.h+  csrc/HROOTHistTAxis.cpp+  csrc/HROOTHistTF1.cpp+  csrc/HROOTHistTFitResult.cpp+  csrc/HROOTHistTFitResultPtr.cpp+  csrc/HROOTHistTGraph.cpp+  csrc/HROOTHistTGraph2D.cpp+  csrc/HROOTHistTGraphAsymmErrors.cpp+  csrc/HROOTHistTGraphBentErrors.cpp+  csrc/HROOTHistTGraphErrors.cpp+  csrc/HROOTHistTH1.cpp+  csrc/HROOTHistTH1C.cpp+  csrc/HROOTHistTH1D.cpp+  csrc/HROOTHistTH1F.cpp+  csrc/HROOTHistTH1I.cpp+  csrc/HROOTHistTH1K.cpp+  csrc/HROOTHistTH1S.cpp+  csrc/HROOTHistTH2.cpp+  csrc/HROOTHistTH2C.cpp+  csrc/HROOTHistTH2D.cpp+  csrc/HROOTHistTH2F.cpp+  csrc/HROOTHistTH2I.cpp+  csrc/HROOTHistTH2Poly.cpp+  csrc/HROOTHistTH2S.cpp+  csrc/HROOTHistTH3.cpp+  csrc/HROOTHistTH3C.cpp+  csrc/HROOTHistTH3D.cpp+  csrc/HROOTHistTH3F.cpp+  csrc/HROOTHistTH3I.cpp+  csrc/HROOTHistTH3S.cpp+  csrc/HROOTHistTHStack.cpp+  csrc/HROOTHistTMultiGraph.cpp+Build-Type: Custom+custom-setup+  setup-depends: Cabal < 4, base > 4 && < 5, process +Source-repository head+  type:     git+  location: https://github.com/wavewave/HROOT  Library   default-language: Haskell2010   hs-source-dirs: src   ghc-options:  -Wall -funbox-strict-fields -fno-warn-unused-do-bind -fno-warn-orphans -fno-warn-unused-imports-  ghc-prof-options: -caf-all -auto-all-  cc-options: -std=c++14-  Build-Depends:      base>4 && < 5, fficxx >= 0.3, fficxx-runtime >= 0.3, template-haskell,HROOT-core+  cxx-options: -std=c++17+  Build-Depends: base > 4 && < 5, fficxx >= 0.7, fficxx-runtime >= 0.7, template-haskell, stdcxx, HROOT-core == 0.10.0.1   Exposed-Modules:                        HROOT.Hist+                       HROOT.Hist.Ordinary+                       HROOT.Hist.Template+                       HROOT.Hist.TH                        HROOT.Hist.TAxis                        HROOT.Hist.TF1                        HROOT.Hist.TFitResult                        HROOT.Hist.TFitResultPtr                        HROOT.Hist.TGraph+                       HROOT.Hist.TGraph2D                        HROOT.Hist.TGraphAsymmErrors                        HROOT.Hist.TGraphBentErrors                        HROOT.Hist.TGraphErrors@@ -113,11 +126,13 @@                        HROOT.Hist.TH3I                        HROOT.Hist.TH3S                        HROOT.Hist.THStack+                       HROOT.Hist.TMultiGraph                        HROOT.Hist.TAxis.RawType                        HROOT.Hist.TF1.RawType                        HROOT.Hist.TFitResult.RawType                        HROOT.Hist.TFitResultPtr.RawType                        HROOT.Hist.TGraph.RawType+                       HROOT.Hist.TGraph2D.RawType                        HROOT.Hist.TGraphAsymmErrors.RawType                        HROOT.Hist.TGraphBentErrors.RawType                        HROOT.Hist.TGraphErrors.RawType@@ -142,11 +157,13 @@                        HROOT.Hist.TH3I.RawType                        HROOT.Hist.TH3S.RawType                        HROOT.Hist.THStack.RawType+                       HROOT.Hist.TMultiGraph.RawType                        HROOT.Hist.TAxis.FFI                        HROOT.Hist.TF1.FFI                        HROOT.Hist.TFitResult.FFI                        HROOT.Hist.TFitResultPtr.FFI                        HROOT.Hist.TGraph.FFI+                       HROOT.Hist.TGraph2D.FFI                        HROOT.Hist.TGraphAsymmErrors.FFI                        HROOT.Hist.TGraphBentErrors.FFI                        HROOT.Hist.TGraphErrors.FFI@@ -171,11 +188,13 @@                        HROOT.Hist.TH3I.FFI                        HROOT.Hist.TH3S.FFI                        HROOT.Hist.THStack.FFI+                       HROOT.Hist.TMultiGraph.FFI                        HROOT.Hist.TAxis.Interface                        HROOT.Hist.TF1.Interface                        HROOT.Hist.TFitResult.Interface                        HROOT.Hist.TFitResultPtr.Interface                        HROOT.Hist.TGraph.Interface+                       HROOT.Hist.TGraph2D.Interface                        HROOT.Hist.TGraphAsymmErrors.Interface                        HROOT.Hist.TGraphBentErrors.Interface                        HROOT.Hist.TGraphErrors.Interface@@ -200,11 +219,13 @@                        HROOT.Hist.TH3I.Interface                        HROOT.Hist.TH3S.Interface                        HROOT.Hist.THStack.Interface+                       HROOT.Hist.TMultiGraph.Interface                        HROOT.Hist.TAxis.Cast                        HROOT.Hist.TF1.Cast                        HROOT.Hist.TFitResult.Cast                        HROOT.Hist.TFitResultPtr.Cast                        HROOT.Hist.TGraph.Cast+                       HROOT.Hist.TGraph2D.Cast                        HROOT.Hist.TGraphAsymmErrors.Cast                        HROOT.Hist.TGraphBentErrors.Cast                        HROOT.Hist.TGraphErrors.Cast@@ -229,11 +250,13 @@                        HROOT.Hist.TH3I.Cast                        HROOT.Hist.TH3S.Cast                        HROOT.Hist.THStack.Cast+                       HROOT.Hist.TMultiGraph.Cast                        HROOT.Hist.TAxis.Implementation                        HROOT.Hist.TF1.Implementation                        HROOT.Hist.TFitResult.Implementation                        HROOT.Hist.TFitResultPtr.Implementation                        HROOT.Hist.TGraph.Implementation+                       HROOT.Hist.TGraph2D.Implementation                        HROOT.Hist.TGraphAsymmErrors.Implementation                        HROOT.Hist.TGraphBentErrors.Implementation                        HROOT.Hist.TGraphErrors.Implementation@@ -258,12 +281,12 @@                        HROOT.Hist.TH3I.Implementation                        HROOT.Hist.TH3S.Implementation                        HROOT.Hist.THStack.Implementation-+                       HROOT.Hist.TMultiGraph.Implementation   Other-Modules:-   extra-lib-dirs: -  extra-libraries:    stdc++ +  extra-libraries:       Include-dirs:       csrc +  pkgconfig-depends:    Install-includes:                        HROOT-histType.h                        HROOTHistTAxis.h@@ -271,6 +294,7 @@                        HROOTHistTFitResult.h                        HROOTHistTFitResultPtr.h                        HROOTHistTGraph.h+                       HROOTHistTGraph2D.h                        HROOTHistTGraphAsymmErrors.h                        HROOTHistTGraphBentErrors.h                        HROOTHistTGraphErrors.h@@ -295,13 +319,14 @@                        HROOTHistTH3I.h                        HROOTHistTH3S.h                        HROOTHistTHStack.h--  C-sources:+                       HROOTHistTMultiGraph.h+  Cxx-sources:                        csrc/HROOTHistTAxis.cpp                        csrc/HROOTHistTF1.cpp                        csrc/HROOTHistTFitResult.cpp                        csrc/HROOTHistTFitResultPtr.cpp                        csrc/HROOTHistTGraph.cpp+                       csrc/HROOTHistTGraph2D.cpp                        csrc/HROOTHistTGraphAsymmErrors.cpp                        csrc/HROOTHistTGraphBentErrors.cpp                        csrc/HROOTHistTGraphErrors.cpp@@ -326,5 +351,5 @@                        csrc/HROOTHistTH3I.cpp                        csrc/HROOTHistTH3S.cpp                        csrc/HROOTHistTHStack.cpp-+                       csrc/HROOTHistTMultiGraph.cpp 
LICENSE view
@@ -1,502 +0,0 @@-                  GNU LESSER GENERAL PUBLIC LICENSE-                       Version 2.1, February 1999-- Copyright (C) 1991, 1999 Free Software Foundation, Inc.- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA- Everyone is permitted to copy and distribute verbatim copies- of this license document, but changing it is not allowed.--[This is the first released version of the Lesser GPL.  It also counts- as the successor of the GNU Library Public License, version 2, hence- the version number 2.1.]--                            Preamble--  The licenses for most software are designed to take away your-freedom to share and change it.  By contrast, the GNU General Public-Licenses are intended to guarantee your freedom to share and change-free software--to make sure the software is free for all its users.--  This license, the Lesser General Public License, applies to some-specially designated software packages--typically libraries--of the-Free Software Foundation and other authors who decide to use it.  You-can use it too, but we suggest you first think carefully about whether-this license or the ordinary General Public License is the better-strategy to use in any particular case, based on the explanations below.--  When we speak of free software, we are referring to freedom of use,-not price.  Our General Public Licenses are designed to make sure that-you have the freedom to distribute copies of free software (and charge-for this service if you wish); that you receive source code or can get-it if you want it; that you can change the software and use pieces of-it in new free programs; and that you are informed that you can do-these things.--  To protect your rights, we need to make restrictions that forbid-distributors to deny you these rights or to ask you to surrender these-rights.  These restrictions translate to certain responsibilities for-you if you distribute copies of the library or if you modify it.--  For example, if you distribute copies of the library, whether gratis-or for a fee, you must give the recipients all the rights that we gave-you.  You must make sure that they, too, receive or can get the source-code.  If you link other code with the library, you must provide-complete object files to the recipients, so that they can relink them-with the library after making changes to the library and recompiling-it.  And you must show them these terms so they know their rights.--  We protect your rights with a two-step method: (1) we copyright the-library, and (2) we offer you this license, which gives you legal-permission to copy, distribute and/or modify the library.--  To protect each distributor, we want to make it very clear that-there is no warranty for the free library.  Also, if the library is-modified by someone else and passed on, the recipients should know-that what they have is not the original version, so that the original-author's reputation will not be affected by problems that might be-introduced by others.--  Finally, software patents pose a constant threat to the existence of-any free program.  We wish to make sure that a company cannot-effectively restrict the users of a free program by obtaining a-restrictive license from a patent holder.  Therefore, we insist that-any patent license obtained for a version of the library must be-consistent with the full freedom of use specified in this license.--  Most GNU software, including some libraries, is covered by the-ordinary GNU General Public License.  This license, the GNU Lesser-General Public License, applies to certain designated libraries, and-is quite different from the ordinary General Public License.  We use-this license for certain libraries in order to permit linking those-libraries into non-free programs.--  When a program is linked with a library, whether statically or using-a shared library, the combination of the two is legally speaking a-combined work, a derivative of the original library.  The ordinary-General Public License therefore permits such linking only if the-entire combination fits its criteria of freedom.  The Lesser General-Public License permits more lax criteria for linking other code with-the library.--  We call this license the "Lesser" General Public License because it-does Less to protect the user's freedom than the ordinary General-Public License.  It also provides other free software developers Less-of an advantage over competing non-free programs.  These disadvantages-are the reason we use the ordinary General Public License for many-libraries.  However, the Lesser license provides advantages in certain-special circumstances.--  For example, on rare occasions, there may be a special need to-encourage the widest possible use of a certain library, so that it becomes-a de-facto standard.  To achieve this, non-free programs must be-allowed to use the library.  A more frequent case is that a free-library does the same job as widely used non-free libraries.  In this-case, there is little to gain by limiting the free library to free-software only, so we use the Lesser General Public License.--  In other cases, permission to use a particular library in non-free-programs enables a greater number of people to use a large body of-free software.  For example, permission to use the GNU C Library in-non-free programs enables many more people to use the whole GNU-operating system, as well as its variant, the GNU/Linux operating-system.--  Although the Lesser General Public License is Less protective of the-users' freedom, it does ensure that the user of a program that is-linked with the Library has the freedom and the wherewithal to run-that program using a modified version of the Library.--  The precise terms and conditions for copying, distribution and-modification follow.  Pay close attention to the difference between a-"work based on the library" and a "work that uses the library".  The-former contains code derived from the library, whereas the latter must-be combined with the library in order to run.--                  GNU LESSER GENERAL PUBLIC LICENSE-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION--  0. This License Agreement applies to any software library or other-program which contains a notice placed by the copyright holder or-other authorized party saying it may be distributed under the terms of-this Lesser General Public License (also called "this License").-Each licensee is addressed as "you".--  A "library" means a collection of software functions and/or data-prepared so as to be conveniently linked with application programs-(which use some of those functions and data) to form executables.--  The "Library", below, refers to any such software library or work-which has been distributed under these terms.  A "work based on the-Library" means either the Library or any derivative work under-copyright law: that is to say, a work containing the Library or a-portion of it, either verbatim or with modifications and/or translated-straightforwardly into another language.  (Hereinafter, translation is-included without limitation in the term "modification".)--  "Source code" for a work means the preferred form of the work for-making modifications to it.  For a library, complete source code means-all the source code for all modules it contains, plus any associated-interface definition files, plus the scripts used to control compilation-and installation of the library.--  Activities other than copying, distribution and modification are not-covered by this License; they are outside its scope.  The act of-running a program using the Library is not restricted, and output from-such a program is covered only if its contents constitute a work based-on the Library (independent of the use of the Library in a tool for-writing it).  Whether that is true depends on what the Library does-and what the program that uses the Library does.--  1. You may copy and distribute verbatim copies of the Library's-complete source code as you receive it, in any medium, provided that-you conspicuously and appropriately publish on each copy an-appropriate copyright notice and disclaimer of warranty; keep intact-all the notices that refer to this License and to the absence of any-warranty; and distribute a copy of this License along with the-Library.--  You may charge a fee for the physical act of transferring a copy,-and you may at your option offer warranty protection in exchange for a-fee.--  2. You may modify your copy or copies of the Library or any portion-of it, thus forming a work based on the Library, and copy and-distribute such modifications or work under the terms of Section 1-above, provided that you also meet all of these conditions:--    a) The modified work must itself be a software library.--    b) You must cause the files modified to carry prominent notices-    stating that you changed the files and the date of any change.--    c) You must cause the whole of the work to be licensed at no-    charge to all third parties under the terms of this License.--    d) If a facility in the modified Library refers to a function or a-    table of data to be supplied by an application program that uses-    the facility, other than as an argument passed when the facility-    is invoked, then you must make a good faith effort to ensure that,-    in the event an application does not supply such function or-    table, the facility still operates, and performs whatever part of-    its purpose remains meaningful.--    (For example, a function in a library to compute square roots has-    a purpose that is entirely well-defined independent of the-    application.  Therefore, Subsection 2d requires that any-    application-supplied function or table used by this function must-    be optional: if the application does not supply it, the square-    root function must still compute square roots.)--These requirements apply to the modified work as a whole.  If-identifiable sections of that work are not derived from the Library,-and can be reasonably considered independent and separate works in-themselves, then this License, and its terms, do not apply to those-sections when you distribute them as separate works.  But when you-distribute the same sections as part of a whole which is a work based-on the Library, the distribution of the whole must be on the terms of-this License, whose permissions for other licensees extend to the-entire whole, and thus to each and every part regardless of who wrote-it.--Thus, it is not the intent of this section to claim rights or contest-your rights to work written entirely by you; rather, the intent is to-exercise the right to control the distribution of derivative or-collective works based on the Library.--In addition, mere aggregation of another work not based on the Library-with the Library (or with a work based on the Library) on a volume of-a storage or distribution medium does not bring the other work under-the scope of this License.--  3. You may opt to apply the terms of the ordinary GNU General Public-License instead of this License to a given copy of the Library.  To do-this, you must alter all the notices that refer to this License, so-that they refer to the ordinary GNU General Public License, version 2,-instead of to this License.  (If a newer version than version 2 of the-ordinary GNU General Public License has appeared, then you can specify-that version instead if you wish.)  Do not make any other change in-these notices.--  Once this change is made in a given copy, it is irreversible for-that copy, so the ordinary GNU General Public License applies to all-subsequent copies and derivative works made from that copy.--  This option is useful when you wish to copy part of the code of-the Library into a program that is not a library.--  4. You may copy and distribute the Library (or a portion or-derivative of it, under Section 2) in object code or executable form-under the terms of Sections 1 and 2 above provided that you accompany-it with the complete corresponding machine-readable source code, which-must be distributed under the terms of Sections 1 and 2 above on a-medium customarily used for software interchange.--  If distribution of object code is made by offering access to copy-from a designated place, then offering equivalent access to copy the-source code from the same place satisfies the requirement to-distribute the source code, even though third parties are not-compelled to copy the source along with the object code.--  5. A program that contains no derivative of any portion of the-Library, but is designed to work with the Library by being compiled or-linked with it, is called a "work that uses the Library".  Such a-work, in isolation, is not a derivative work of the Library, and-therefore falls outside the scope of this License.--  However, linking a "work that uses the Library" with the Library-creates an executable that is a derivative of the Library (because it-contains portions of the Library), rather than a "work that uses the-library".  The executable is therefore covered by this License.-Section 6 states terms for distribution of such executables.--  When a "work that uses the Library" uses material from a header file-that is part of the Library, the object code for the work may be a-derivative work of the Library even though the source code is not.-Whether this is true is especially significant if the work can be-linked without the Library, or if the work is itself a library.  The-threshold for this to be true is not precisely defined by law.--  If such an object file uses only numerical parameters, data-structure layouts and accessors, and small macros and small inline-functions (ten lines or less in length), then the use of the object-file is unrestricted, regardless of whether it is legally a derivative-work.  (Executables containing this object code plus portions of the-Library will still fall under Section 6.)--  Otherwise, if the work is a derivative of the Library, you may-distribute the object code for the work under the terms of Section 6.-Any executables containing that work also fall under Section 6,-whether or not they are linked directly with the Library itself.--  6. As an exception to the Sections above, you may also combine or-link a "work that uses the Library" with the Library to produce a-work containing portions of the Library, and distribute that work-under terms of your choice, provided that the terms permit-modification of the work for the customer's own use and reverse-engineering for debugging such modifications.--  You must give prominent notice with each copy of the work that the-Library is used in it and that the Library and its use are covered by-this License.  You must supply a copy of this License.  If the work-during execution displays copyright notices, you must include the-copyright notice for the Library among them, as well as a reference-directing the user to the copy of this License.  Also, you must do one-of these things:--    a) Accompany the work with the complete corresponding-    machine-readable source code for the Library including whatever-    changes were used in the work (which must be distributed under-    Sections 1 and 2 above); and, if the work is an executable linked-    with the Library, with the complete machine-readable "work that-    uses the Library", as object code and/or source code, so that the-    user can modify the Library and then relink to produce a modified-    executable containing the modified Library.  (It is understood-    that the user who changes the contents of definitions files in the-    Library will not necessarily be able to recompile the application-    to use the modified definitions.)--    b) Use a suitable shared library mechanism for linking with the-    Library.  A suitable mechanism is one that (1) uses at run time a-    copy of the library already present on the user's computer system,-    rather than copying library functions into the executable, and (2)-    will operate properly with a modified version of the library, if-    the user installs one, as long as the modified version is-    interface-compatible with the version that the work was made with.--    c) Accompany the work with a written offer, valid for at-    least three years, to give the same user the materials-    specified in Subsection 6a, above, for a charge no more-    than the cost of performing this distribution.--    d) If distribution of the work is made by offering access to copy-    from a designated place, offer equivalent access to copy the above-    specified materials from the same place.--    e) Verify that the user has already received a copy of these-    materials or that you have already sent this user a copy.--  For an executable, the required form of the "work that uses the-Library" must include any data and utility programs needed for-reproducing the executable from it.  However, as a special exception,-the materials to be distributed need not include anything that is-normally distributed (in either source or binary form) with the major-components (compiler, kernel, and so on) of the operating system on-which the executable runs, unless that component itself accompanies-the executable.--  It may happen that this requirement contradicts the license-restrictions of other proprietary libraries that do not normally-accompany the operating system.  Such a contradiction means you cannot-use both them and the Library together in an executable that you-distribute.--  7. You may place library facilities that are a work based on the-Library side-by-side in a single library together with other library-facilities not covered by this License, and distribute such a combined-library, provided that the separate distribution of the work based on-the Library and of the other library facilities is otherwise-permitted, and provided that you do these two things:--    a) Accompany the combined library with a copy of the same work-    based on the Library, uncombined with any other library-    facilities.  This must be distributed under the terms of the-    Sections above.--    b) Give prominent notice with the combined library of the fact-    that part of it is a work based on the Library, and explaining-    where to find the accompanying uncombined form of the same work.--  8. You may not copy, modify, sublicense, link with, or distribute-the Library except as expressly provided under this License.  Any-attempt otherwise to copy, modify, sublicense, link with, or-distribute the Library is void, and will automatically terminate your-rights under this License.  However, parties who have received copies,-or rights, from you under this License will not have their licenses-terminated so long as such parties remain in full compliance.--  9. You are not required to accept this License, since you have not-signed it.  However, nothing else grants you permission to modify or-distribute the Library or its derivative works.  These actions are-prohibited by law if you do not accept this License.  Therefore, by-modifying or distributing the Library (or any work based on the-Library), you indicate your acceptance of this License to do so, and-all its terms and conditions for copying, distributing or modifying-the Library or works based on it.--  10. Each time you redistribute the Library (or any work based on the-Library), the recipient automatically receives a license from the-original licensor to copy, distribute, link with or modify the Library-subject to these terms and conditions.  You may not impose any further-restrictions on the recipients' exercise of the rights granted herein.-You are not responsible for enforcing compliance by third parties with-this License.--  11. If, as a consequence of a court judgment or allegation of patent-infringement or for any other reason (not limited to patent issues),-conditions are imposed on you (whether by court order, agreement or-otherwise) that contradict the conditions of this License, they do not-excuse you from the conditions of this License.  If you cannot-distribute so as to satisfy simultaneously your obligations under this-License and any other pertinent obligations, then as a consequence you-may not distribute the Library at all.  For example, if a patent-license would not permit royalty-free redistribution of the Library by-all those who receive copies directly or indirectly through you, then-the only way you could satisfy both it and this License would be to-refrain entirely from distribution of the Library.--If any portion of this section is held invalid or unenforceable under any-particular circumstance, the balance of the section is intended to apply,-and the section as a whole is intended to apply in other circumstances.--It is not the purpose of this section to induce you to infringe any-patents or other property right claims or to contest validity of any-such claims; this section has the sole purpose of protecting the-integrity of the free software distribution system which is-implemented by public license practices.  Many people have made-generous contributions to the wide range of software distributed-through that system in reliance on consistent application of that-system; it is up to the author/donor to decide if he or she is willing-to distribute software through any other system and a licensee cannot-impose that choice.--This section is intended to make thoroughly clear what is believed to-be a consequence of the rest of this License.--  12. If the distribution and/or use of the Library is restricted in-certain countries either by patents or by copyrighted interfaces, the-original copyright holder who places the Library under this License may add-an explicit geographical distribution limitation excluding those countries,-so that distribution is permitted only in or among countries not thus-excluded.  In such case, this License incorporates the limitation as if-written in the body of this License.--  13. The Free Software Foundation may publish revised and/or new-versions of the Lesser General Public License from time to time.-Such new versions will be similar in spirit to the present version,-but may differ in detail to address new problems or concerns.--Each version is given a distinguishing version number.  If the Library-specifies a version number of this License which applies to it and-"any later version", you have the option of following the terms and-conditions either of that version or of any later version published by-the Free Software Foundation.  If the Library does not specify a-license version number, you may choose any version ever published by-the Free Software Foundation.--  14. If you wish to incorporate parts of the Library into other free-programs whose distribution conditions are incompatible with these,-write to the author to ask for permission.  For software which is-copyrighted by the Free Software Foundation, write to the Free-Software Foundation; we sometimes make exceptions for this.  Our-decision will be guided by the two goals of preserving the free status-of all derivatives of our free software and of promoting the sharing-and reuse of software generally.--                            NO WARRANTY--  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.--  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH-DAMAGES.--                     END OF TERMS AND CONDITIONS--           How to Apply These Terms to Your New Libraries--  If you develop a new library, and you want it to be of the greatest-possible use to the public, we recommend making it free software that-everyone can redistribute and change.  You can do so by permitting-redistribution under these terms (or, alternatively, under the terms of the-ordinary General Public License).--  To apply these terms, attach the following notices to the library.  It is-safest to attach them to the start of each source file to most effectively-convey the exclusion of warranty; and each file should have at least the-"copyright" line and a pointer to where the full notice is found.--    <one line to give the library's name and a brief idea of what it does.>-    Copyright (C) <year>  <name of author>--    This library is free software; you can redistribute it and/or-    modify it under the terms of the GNU Lesser General Public-    License as published by the Free Software Foundation; either-    version 2.1 of the License, or (at your option) any later version.--    This library is distributed in the hope that it will be useful,-    but WITHOUT ANY WARRANTY; without even the implied warranty of-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU-    Lesser General Public License for more details.--    You should have received a copy of the GNU Lesser General Public-    License along with this library; if not, write to the Free Software-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA--Also add information on how to contact you by electronic and paper mail.--You should also get your employer (if you work as a programmer) or your-school, if any, to sign a "copyright disclaimer" for the library, if-necessary.  Here is a sample; alter the names:--  Yoyodyne, Inc., hereby disclaims all copyright interest in the-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.--  <signature of Ty Coon>, 1 April 1990-  Ty Coon, President of Vice--That's all there is to it!
+ Setup.hs view
@@ -0,0 +1,27 @@+import Distribution.Simple+import Distribution.Simple.Setup+import Distribution.PackageDescription+import Distribution.Simple.LocalBuildInfo+import Config++myconfigHook = simpleUserHooks { confHook = hookfunction }++hookfunction x y = do+  binfo <- confHook simpleUserHooks x y+  r_pbi <- config binfo+  let pkg_descr = localPkgDescr binfo++  let newbinfo = case r_pbi of+                   Just pbi ->  binfo { localPkgDescr = updatePackageDescription pbi pkg_descr }+                   Nothing -> do+                     let r_lib = library pkg_descr+                     case r_lib of+                       Just lib ->+                         let binfo2 = libBuildInfo lib+                             newlib = lib { libBuildInfo = binfo2 { cSources = [] }}+                          in  binfo { localPkgDescr = pkg_descr { library = Just newlib }}+                       Nothing -> error "some library setting is wrong."+--   putStrLn (show (localPkgDescr newbinfo))+  return newbinfo++main = defaultMainWithHooks myconfigHook
− Setup.lhs
@@ -1,33 +0,0 @@-#! /usr/bin/env runhaskell-  -> import Distribution.Simple-> import Distribution.Simple.Setup-> import Distribution.PackageDescription-> import Distribution.Simple.LocalBuildInfo->-> import Config->-> myconfigHook = simpleUserHooks { confHook = hookfunction } ->-> hookfunction x y = do ->   binfo <- confHook simpleUserHooks x y ->   r_pbi <- config binfo->   let pkg_descr = localPkgDescr binfo->   ->   let newbinfo = case r_pbi of ->                    Just pbi ->  binfo { localPkgDescr = updatePackageDescription pbi pkg_descr }->                    Nothing -> do ->                      let r_lib = library pkg_descr ->                      case r_lib of->                        Just lib ->  ->                          let binfo2 = libBuildInfo lib->                              newlib = lib { libBuildInfo = binfo2 { cSources = [] }}  ->                          in  binfo { localPkgDescr = pkg_descr { library = Just newlib }}  ->                        Nothing -> error "some library setting is wrong." -> --   putStrLn (show (localPkgDescr newbinfo))->   return newbinfo->  ->-> main = defaultMainWithHooks myconfigHook->-
csrc/HROOT-histType.h view
@@ -1,186 +1,72 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__-#define __HROOT_HIST__--// Opaque type definition for TAxis -typedef struct TAxis_tag TAxis_t; -typedef TAxis_t * TAxis_p; -typedef TAxis_t const* const_TAxis_p; ---// Opaque type definition for TF1 -typedef struct TF1_tag TF1_t; -typedef TF1_t * TF1_p; -typedef TF1_t const* const_TF1_p; ---// Opaque type definition for TFitResult -typedef struct TFitResult_tag TFitResult_t; -typedef TFitResult_t * TFitResult_p; -typedef TFitResult_t const* const_TFitResult_p; ---// Opaque type definition for TFitResultPtr -typedef struct TFitResultPtr_tag TFitResultPtr_t; -typedef TFitResultPtr_t * TFitResultPtr_p; -typedef TFitResultPtr_t const* const_TFitResultPtr_p; ---// Opaque type definition for TGraph -typedef struct TGraph_tag TGraph_t; -typedef TGraph_t * TGraph_p; -typedef TGraph_t const* const_TGraph_p; ---// Opaque type definition for TGraphAsymmErrors -typedef struct TGraphAsymmErrors_tag TGraphAsymmErrors_t; -typedef TGraphAsymmErrors_t * TGraphAsymmErrors_p; -typedef TGraphAsymmErrors_t const* const_TGraphAsymmErrors_p; ---// Opaque type definition for TGraphBentErrors -typedef struct TGraphBentErrors_tag TGraphBentErrors_t; -typedef TGraphBentErrors_t * TGraphBentErrors_p; -typedef TGraphBentErrors_t const* const_TGraphBentErrors_p; ---// Opaque type definition for TGraphErrors -typedef struct TGraphErrors_tag TGraphErrors_t; -typedef TGraphErrors_t * TGraphErrors_p; -typedef TGraphErrors_t const* const_TGraphErrors_p; ---// Opaque type definition for TH1 -typedef struct TH1_tag TH1_t; -typedef TH1_t * TH1_p; -typedef TH1_t const* const_TH1_p; ---// Opaque type definition for TH1C -typedef struct TH1C_tag TH1C_t; -typedef TH1C_t * TH1C_p; -typedef TH1C_t const* const_TH1C_p; ---// Opaque type definition for TH1D -typedef struct TH1D_tag TH1D_t; -typedef TH1D_t * TH1D_p; -typedef TH1D_t const* const_TH1D_p; ---// Opaque type definition for TH1F -typedef struct TH1F_tag TH1F_t; -typedef TH1F_t * TH1F_p; -typedef TH1F_t const* const_TH1F_p; ---// Opaque type definition for TH1I -typedef struct TH1I_tag TH1I_t; -typedef TH1I_t * TH1I_p; -typedef TH1I_t const* const_TH1I_p; ---// Opaque type definition for TH1K -typedef struct TH1K_tag TH1K_t; -typedef TH1K_t * TH1K_p; -typedef TH1K_t const* const_TH1K_p; ---// Opaque type definition for TH1S -typedef struct TH1S_tag TH1S_t; -typedef TH1S_t * TH1S_p; -typedef TH1S_t const* const_TH1S_p; ---// Opaque type definition for TH2 -typedef struct TH2_tag TH2_t; -typedef TH2_t * TH2_p; -typedef TH2_t const* const_TH2_p; ---// Opaque type definition for TH2C -typedef struct TH2C_tag TH2C_t; -typedef TH2C_t * TH2C_p; -typedef TH2C_t const* const_TH2C_p; ---// Opaque type definition for TH2D -typedef struct TH2D_tag TH2D_t; -typedef TH2D_t * TH2D_p; -typedef TH2D_t const* const_TH2D_p; ---// Opaque type definition for TH2F -typedef struct TH2F_tag TH2F_t; -typedef TH2F_t * TH2F_p; -typedef TH2F_t const* const_TH2F_p; ---// Opaque type definition for TH2I -typedef struct TH2I_tag TH2I_t; -typedef TH2I_t * TH2I_p; -typedef TH2I_t const* const_TH2I_p; ---// Opaque type definition for TH2Poly -typedef struct TH2Poly_tag TH2Poly_t; -typedef TH2Poly_t * TH2Poly_p; -typedef TH2Poly_t const* const_TH2Poly_p; ---// Opaque type definition for TH2S -typedef struct TH2S_tag TH2S_t; -typedef TH2S_t * TH2S_p; -typedef TH2S_t const* const_TH2S_p; ---// Opaque type definition for TH3 -typedef struct TH3_tag TH3_t; -typedef TH3_t * TH3_p; -typedef TH3_t const* const_TH3_p; ---// Opaque type definition for TH3C -typedef struct TH3C_tag TH3C_t; -typedef TH3C_t * TH3C_p; -typedef TH3C_t const* const_TH3C_p; ---// Opaque type definition for TH3D -typedef struct TH3D_tag TH3D_t; -typedef TH3D_t * TH3D_p; -typedef TH3D_t const* const_TH3D_p; ---// Opaque type definition for TH3F -typedef struct TH3F_tag TH3F_t; -typedef TH3F_t * TH3F_p; -typedef TH3F_t const* const_TH3F_p; ---// Opaque type definition for TH3I -typedef struct TH3I_tag TH3I_t; -typedef TH3I_t * TH3I_p; -typedef TH3I_t const* const_TH3I_p; ---// Opaque type definition for TH3S -typedef struct TH3S_tag TH3S_t; -typedef TH3S_t * TH3S_p; -typedef TH3S_t const* const_TH3S_p; ---// Opaque type definition for THStack -typedef struct THStack_tag THStack_t; -typedef THStack_t * THStack_p; -typedef THStack_t const* const_THStack_p; ---#endif // __HROOT_HIST__+#pragma once +// Opaque type definition for $classname+typedef struct TAxis_tag TAxis_t;typedef TAxis_t * TAxis_p;typedef TAxis_t const* const_TAxis_p;+// Opaque type definition for $classname+typedef struct TF1_tag TF1_t;typedef TF1_t * TF1_p;typedef TF1_t const* const_TF1_p;+// Opaque type definition for $classname+typedef struct TFitResult_tag TFitResult_t;typedef TFitResult_t * TFitResult_p;typedef TFitResult_t const* const_TFitResult_p;+// Opaque type definition for $classname+typedef struct TFitResultPtr_tag TFitResultPtr_t;typedef TFitResultPtr_t * TFitResultPtr_p;typedef TFitResultPtr_t const* const_TFitResultPtr_p;+// Opaque type definition for $classname+typedef struct TGraph_tag TGraph_t;typedef TGraph_t * TGraph_p;typedef TGraph_t const* const_TGraph_p;+// Opaque type definition for $classname+typedef struct TGraph2D_tag TGraph2D_t;typedef TGraph2D_t * TGraph2D_p;typedef TGraph2D_t const* const_TGraph2D_p;+// Opaque type definition for $classname+typedef struct TGraphAsymmErrors_tag TGraphAsymmErrors_t;typedef TGraphAsymmErrors_t * TGraphAsymmErrors_p;typedef TGraphAsymmErrors_t const* const_TGraphAsymmErrors_p;+// Opaque type definition for $classname+typedef struct TGraphBentErrors_tag TGraphBentErrors_t;typedef TGraphBentErrors_t * TGraphBentErrors_p;typedef TGraphBentErrors_t const* const_TGraphBentErrors_p;+// Opaque type definition for $classname+typedef struct TGraphErrors_tag TGraphErrors_t;typedef TGraphErrors_t * TGraphErrors_p;typedef TGraphErrors_t const* const_TGraphErrors_p;+// Opaque type definition for $classname+typedef struct TH1_tag TH1_t;typedef TH1_t * TH1_p;typedef TH1_t const* const_TH1_p;+// Opaque type definition for $classname+typedef struct TH1C_tag TH1C_t;typedef TH1C_t * TH1C_p;typedef TH1C_t const* const_TH1C_p;+// Opaque type definition for $classname+typedef struct TH1D_tag TH1D_t;typedef TH1D_t * TH1D_p;typedef TH1D_t const* const_TH1D_p;+// Opaque type definition for $classname+typedef struct TH1F_tag TH1F_t;typedef TH1F_t * TH1F_p;typedef TH1F_t const* const_TH1F_p;+// Opaque type definition for $classname+typedef struct TH1I_tag TH1I_t;typedef TH1I_t * TH1I_p;typedef TH1I_t const* const_TH1I_p;+// Opaque type definition for $classname+typedef struct TH1K_tag TH1K_t;typedef TH1K_t * TH1K_p;typedef TH1K_t const* const_TH1K_p;+// Opaque type definition for $classname+typedef struct TH1S_tag TH1S_t;typedef TH1S_t * TH1S_p;typedef TH1S_t const* const_TH1S_p;+// Opaque type definition for $classname+typedef struct TH2_tag TH2_t;typedef TH2_t * TH2_p;typedef TH2_t const* const_TH2_p;+// Opaque type definition for $classname+typedef struct TH2C_tag TH2C_t;typedef TH2C_t * TH2C_p;typedef TH2C_t const* const_TH2C_p;+// Opaque type definition for $classname+typedef struct TH2D_tag TH2D_t;typedef TH2D_t * TH2D_p;typedef TH2D_t const* const_TH2D_p;+// Opaque type definition for $classname+typedef struct TH2F_tag TH2F_t;typedef TH2F_t * TH2F_p;typedef TH2F_t const* const_TH2F_p;+// Opaque type definition for $classname+typedef struct TH2I_tag TH2I_t;typedef TH2I_t * TH2I_p;typedef TH2I_t const* const_TH2I_p;+// Opaque type definition for $classname+typedef struct TH2Poly_tag TH2Poly_t;typedef TH2Poly_t * TH2Poly_p;typedef TH2Poly_t const* const_TH2Poly_p;+// Opaque type definition for $classname+typedef struct TH2S_tag TH2S_t;typedef TH2S_t * TH2S_p;typedef TH2S_t const* const_TH2S_p;+// Opaque type definition for $classname+typedef struct TH3_tag TH3_t;typedef TH3_t * TH3_p;typedef TH3_t const* const_TH3_p;+// Opaque type definition for $classname+typedef struct TH3C_tag TH3C_t;typedef TH3C_t * TH3C_p;typedef TH3C_t const* const_TH3C_p;+// Opaque type definition for $classname+typedef struct TH3D_tag TH3D_t;typedef TH3D_t * TH3D_p;typedef TH3D_t const* const_TH3D_p;+// Opaque type definition for $classname+typedef struct TH3F_tag TH3F_t;typedef TH3F_t * TH3F_p;typedef TH3F_t const* const_TH3F_p;+// Opaque type definition for $classname+typedef struct TH3I_tag TH3I_t;typedef TH3I_t * TH3I_p;typedef TH3I_t const* const_TH3I_p;+// Opaque type definition for $classname+typedef struct TH3S_tag TH3S_t;typedef TH3S_t * TH3S_p;typedef TH3S_t const* const_TH3S_p;+// Opaque type definition for $classname+typedef struct THStack_tag THStack_t;typedef THStack_t * THStack_p;typedef THStack_t const* const_THStack_p;+// Opaque type definition for $classname+typedef struct TMultiGraph_tag TMultiGraph_t;typedef TMultiGraph_t * TMultiGraph_p;typedef TMultiGraph_t const* const_TMultiGraph_p; #ifdef __cplusplus } #endif
csrc/HROOTHistTAxis.cpp view
@@ -1,25 +1,30 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"++#include "HROOTCoreTArrayD.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttAxis.h"+ #include "TAxis.h"-#include "HROOTHistTAxis.h" +#include "HROOTHistTAxis.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TNAMED_DEF_VIRT(TAxis) TATTAXIS_DEF_VIRT(TAxis) TOBJECT_DEF_VIRT(TAxis) DELETABLE_DEF_VIRT(TAxis)- TAXIS_DEF_VIRT(TAxis)- TAXIS_DEF_NONVIRT(TAxis)+TAXIS_DEF_ACCESSOR(TAxis) 
csrc/HROOTHistTAxis.h view
@@ -1,98 +1,139 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TAxis__-#define __HROOT_HIST__TAxis__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttAxis.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TAXIS_DECL_VIRT + #define TAXIS_DECL_VIRT(Type) \-int Type ## _findBinTAxis ( Type ## _p p, double x ); \-int Type ## _findFixBinTAxis ( Type ## _p p, double x ); \-double Type ## _getBinCenterTAxis ( Type ## _p p, int bin ); \-double Type ## _GetBinCenterLog ( Type ## _p p, int bin ); \-double Type ## _GetBinUpEdge ( Type ## _p p, int bin ); \-void Type ## _SetTimeDisplay ( Type ## _p p, int value ); \-void Type ## _SetTimeFormat ( Type ## _p p, const char* format ); \-void Type ## _SetTimeOffset ( Type ## _p p, double toffset, const char* option )+int Type##_findBinTAxis ( Type##_p p, double x );\+int Type##_findFixBinTAxis ( Type##_p p, double x );\+double Type##_getBinCenterTAxis ( Type##_p p, int bin );\+double Type##_GetBinCenterLog ( Type##_p p, int bin );\+double Type##_GetBinUpEdge ( Type##_p p, int bin );\+void Type##_SetLimits ( Type##_p p, double xmin, double xmax );\+void Type##_SetTimeDisplay ( Type##_p p, int value );\+void Type##_SetTimeFormat ( Type##_p p, const char* format );\+void Type##_SetTimeOffset ( Type##_p p, double toffset, const char* option ); -#undef TAXIS_DECL_NONVIRT + #define TAXIS_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTAxis ( int nbins, double xmin, double xmax ); \-int Type ## _tAxisGetCenterLabels ( Type ## _p p ); \-int Type ## _tAxisGetCenterTitle ( Type ## _p p )+Type##_p Type##_newTAxis ( int nbins, double xmin, double xmax );\+bool Type##_tAxis_GetCenterLabels ( Type##_p p );\+bool Type##_tAxis_GetCenterTitle ( Type##_p p );\+int Type##_tAxis_GetFirst ( Type##_p p );\+int Type##_tAxis_GetLast ( Type##_p p );\+int Type##_tAxis_GetNbins ( Type##_p p );\+TArrayD_p Type##_tAxis_GetXbins ( Type##_p p );\+double Type##_tAxis_GetXmax ( Type##_p p );\+double Type##_tAxis_GetXmin ( Type##_p p ); -#undef TAXIS_DEF_VIRT-#define TAXIS_DEF_VIRT(Type)\-int Type ## _findBinTAxis ( Type ## _p p, double x )\-{\-return TYPECASTMETHOD(Type,findBinTAxis,TAxis)(p)->FindBin(x);\++#define TAXIS_DECL_ACCESSOR(Type) \++++#define TAXIS_DEF_VIRT(Type) \+int Type##_findBinTAxis ( Type##_p p, double x ) {\+return ((TYPECASTMETHOD(Type, findBinTAxis, TAxis))(p))->FindBin(x);\ }\-int Type ## _findFixBinTAxis ( Type ## _p p, double x )\-{\-return TYPECASTMETHOD(Type,findFixBinTAxis,TAxis)(p)->FindFixBin(x);\+\+int Type##_findFixBinTAxis ( Type##_p p, double x ) {\+return ((TYPECASTMETHOD(Type, findFixBinTAxis, TAxis))(p))->FindFixBin(x);\ }\-double Type ## _getBinCenterTAxis ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,getBinCenterTAxis,TAxis)(p)->GetBinCenter(bin);\+\+double Type##_getBinCenterTAxis ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, getBinCenterTAxis, TAxis))(p))->GetBinCenter(bin);\ }\-double Type ## _GetBinCenterLog ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetBinCenterLog,TAxis)(p)->GetBinCenterLog(bin);\+\+double Type##_GetBinCenterLog ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetBinCenterLog, TAxis))(p))->GetBinCenterLog(bin);\ }\-double Type ## _GetBinUpEdge ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetBinUpEdge,TAxis)(p)->GetBinUpEdge(bin);\+\+double Type##_GetBinUpEdge ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetBinUpEdge, TAxis))(p))->GetBinUpEdge(bin);\ }\-void Type ## _SetTimeDisplay ( Type ## _p p, int value )\-{\-TYPECASTMETHOD(Type,SetTimeDisplay,TAxis)(p)->SetTimeDisplay(value);\+\+void Type##_SetLimits ( Type##_p p, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, SetLimits, TAxis))(p))->SetLimits(xmin, xmax);\ }\-void Type ## _SetTimeFormat ( Type ## _p p, const char* format )\-{\-TYPECASTMETHOD(Type,SetTimeFormat,TAxis)(p)->SetTimeFormat(format);\+\+void Type##_SetTimeDisplay ( Type##_p p, int value ) {\+((TYPECASTMETHOD(Type, SetTimeDisplay, TAxis))(p))->SetTimeDisplay(value);\ }\-void Type ## _SetTimeOffset ( Type ## _p p, double toffset, const char* option )\-{\-TYPECASTMETHOD(Type,SetTimeOffset,TAxis)(p)->SetTimeOffset(toffset, option);\+\+void Type##_SetTimeFormat ( Type##_p p, const char* format ) {\+((TYPECASTMETHOD(Type, SetTimeFormat, TAxis))(p))->SetTimeFormat(format);\+}\+\+void Type##_SetTimeOffset ( Type##_p p, double toffset, const char* option ) {\+((TYPECASTMETHOD(Type, SetTimeOffset, TAxis))(p))->SetTimeOffset(toffset, option);\ } -#undef TAXIS_DEF_NONVIRT-#define TAXIS_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTAxis ( int nbins, double xmin, double xmax )\-{\-Type * newp = new Type (nbins, xmin, xmax); \-return to_nonconst<Type ## _t, Type >(newp);\++#define TAXIS_DEF_NONVIRT(Type) \+Type##_p Type##_newTAxis ( int nbins, double xmin, double xmax ) {\+Type* newp=new Type(nbins, xmin, xmax);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\ }\-int Type ## _tAxisGetCenterLabels ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tAxisGetCenterLabels,TAxis)(p)->GetCenterLabels();\+\+bool Type##_tAxis_GetCenterLabels ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetCenterLabels, TAxis))(p))->GetCenterLabels();\ }\-int Type ## _tAxisGetCenterTitle ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tAxisGetCenterTitle,TAxis)(p)->GetCenterTitle();\+\+bool Type##_tAxis_GetCenterTitle ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetCenterTitle, TAxis))(p))->GetCenterTitle();\+}\+\+int Type##_tAxis_GetFirst ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetFirst, TAxis))(p))->GetFirst();\+}\+\+int Type##_tAxis_GetLast ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetLast, TAxis))(p))->GetLast();\+}\+\+int Type##_tAxis_GetNbins ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetNbins, TAxis))(p))->GetNbins();\+}\+\+TArrayD_p Type##_tAxis_GetXbins ( Type##_p p ) {\+return from_nonconst_to_nonconst<TArrayD_t, TArrayD>((TArrayD*)((TYPECASTMETHOD(Type, tAxis_GetXbins, TAxis))(p))->GetXbins());\+}\+\+double Type##_tAxis_GetXmax ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetXmax, TAxis))(p))->GetXmax();\+}\+\+double Type##_tAxis_GetXmin ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tAxis_GetXmin, TAxis))(p))->GetXmin();\ } -TNAMED_DECL_VIRT(TAxis);-TATTAXIS_DECL_VIRT(TAxis);-TOBJECT_DECL_VIRT(TAxis);-DELETABLE_DECL_VIRT(TAxis); +#define TAXIS_DEF_ACCESSOR(Type) \ -TAXIS_DECL_VIRT(TAxis);  -TAXIS_DECL_NONVIRT(TAxis);---#endif // __HROOT_HIST__TAxis__+TNAMED_DECL_VIRT(TAxis)+TATTAXIS_DECL_VIRT(TAxis)+TOBJECT_DECL_VIRT(TAxis)+DELETABLE_DECL_VIRT(TAxis)+TAXIS_DECL_VIRT(TAxis)+TAXIS_DECL_NONVIRT(TAxis)+TAXIS_DECL_ACCESSOR(TAxis)  #ifdef __cplusplus }
csrc/HROOTHistTF1.cpp view
@@ -1,29 +1,36 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTCoreTObject.h"+ #include "HROOTHistTH1.h"+ #include "HROOTHistTAxis.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "TF1.h"-#include "HROOTHistTF1.h" +#include "HROOTHistTF1.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TATTLINE_DEF_VIRT(TF1) TATTFILL_DEF_VIRT(TF1) TATTMARKER_DEF_VIRT(TF1) DELETABLE_DEF_VIRT(TF1)- TF1_DEF_VIRT(TF1)- TF1_DEF_NONVIRT(TF1)+TF1_DEF_ACCESSOR(TF1) 
csrc/HROOTHistTF1.h view
@@ -1,358 +1,364 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TF1__-#define __HROOT_HIST__TF1__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TF1_DECL_VIRT + #define TF1_DECL_VIRT(Type) \-double Type ## _Derivative ( Type ## _p p, double x, double * params, double epsilon ); \-double Type ## _Derivative2 ( Type ## _p p, double x, double * params, double epsilon ); \-double Type ## _Derivative3 ( Type ## _p p, double x, double * params, double epsilon ); \-Type ## _p Type ## _drawCopyTF1 ( Type ## _p p, const char* option ); \-TObject_p Type ## _DrawDerivative ( Type ## _p p, const char* option ); \-TObject_p Type ## _DrawIntegral ( Type ## _p p, const char* option ); \-void Type ## _FixParameter ( Type ## _p p, int ipar, double value ); \-double Type ## _getMaximumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \-double Type ## _getMinimumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \-double Type ## _GetMaximumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \-double Type ## _GetMinimumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx ); \-int Type ## _GetNDF ( Type ## _p p ); \-int Type ## _GetNpx ( Type ## _p p ); \-int Type ## _GetNumberFreeParameters ( Type ## _p p ); \-int Type ## _GetNumberFitPoints ( Type ## _p p ); \-double Type ## _GetParError ( Type ## _p p, int ipar ); \-double Type ## _GetProb ( Type ## _p p ); \-int Type ## _getQuantilesTF1 ( Type ## _p p, int nprobSum, double * q, double * probSum ); \-double Type ## _getRandomTF1 ( Type ## _p p, double xmin, double xmax ); \-double Type ## _GetSave ( Type ## _p p, double * x ); \-double Type ## _GetX ( Type ## _p p, double y, double xmin, double xmax, double epsilon, int maxiter ); \-double Type ## _GetXmin ( Type ## _p p ); \-double Type ## _GetXmax ( Type ## _p p ); \-double Type ## _GradientPar ( Type ## _p p, int ipar, double * x, double eps ); \-void Type ## _InitArgs ( Type ## _p p, double * x, double * params ); \-double Type ## _IntegralTF1 ( Type ## _p p, double a, double b, double epsilon ); \-double Type ## _IntegralError ( Type ## _p p, double a, double b, double * params, double * covmat, double epsilon ); \-double Type ## _IntegralFast ( Type ## _p p, int num, double * x, double * w, double a, double b, double * params, double epsilon ); \-int Type ## _IsInside ( Type ## _p p, double * x ); \-void Type ## _ReleaseParameter ( Type ## _p p, int ipar ); \-void Type ## _SetChisquare ( Type ## _p p, double chi2 ); \-void Type ## _setMaximumTF1 ( Type ## _p p, double maximum ); \-void Type ## _setMinimumTF1 ( Type ## _p p, double minimum ); \-void Type ## _SetNDF ( Type ## _p p, int ndf ); \-void Type ## _SetNumberFitPoints ( Type ## _p p, int npfits ); \-void Type ## _SetNpx ( Type ## _p p, int npx ); \-void Type ## _SetParError ( Type ## _p p, int ipar, double error ); \-void Type ## _SetParErrors ( Type ## _p p, double * errors ); \-void Type ## _SetParLimits ( Type ## _p p, int ipar, double parmin, double parmax ); \-void Type ## _SetParent ( Type ## _p p, TObject_p parent ); \-void Type ## _setRange1 ( Type ## _p p, double xmin, double xmax ); \-void Type ## _setRange2 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax ); \-void Type ## _setRange3 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ); \-void Type ## _SetSavedPoint ( Type ## _p p, int point, double value ); \-double Type ## _Moment ( Type ## _p p, double n, double a, double b, double * params, double epsilon ); \-double Type ## _CentralMoment ( Type ## _p p, double n, double a, double b, double * params, double epsilon ); \-double Type ## _Mean ( Type ## _p p, double a, double b, double * params, double epsilon ); \-double Type ## _Variance ( Type ## _p p, double a, double b, double * params, double epsilon )+double Type##_Derivative ( Type##_p p, double x, double* params, double epsilon );\+double Type##_Derivative2 ( Type##_p p, double x, double* params, double epsilon );\+double Type##_Derivative3 ( Type##_p p, double x, double* params, double epsilon );\+Type##_p Type##_drawCopyTF1 ( Type##_p p, const char* option );\+TObject_p Type##_DrawDerivative ( Type##_p p, const char* option );\+TObject_p Type##_DrawIntegral ( Type##_p p, const char* option );\+void Type##_FixParameter ( Type##_p p, int ipar, double value );\+double Type##_getMaximumTF1 ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx );\+double Type##_getMinimumTF1 ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx );\+double Type##_GetMaximumX ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx );\+double Type##_GetMinimumX ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx );\+int Type##_GetNDF ( Type##_p p );\+int Type##_GetNpx ( Type##_p p );\+int Type##_GetNumberFreeParameters ( Type##_p p );\+int Type##_GetNumberFitPoints ( Type##_p p );\+double Type##_GetParError ( Type##_p p, int ipar );\+double Type##_GetProb ( Type##_p p );\+int Type##_getQuantilesTF1 ( Type##_p p, int nprobSum, double* q, double* probSum );\+double Type##_getRandomTF1 ( Type##_p p, double xmin, double xmax );\+double Type##_GetSave ( Type##_p p, double* x );\+double Type##_GetX ( Type##_p p, double y, double xmin, double xmax, double epsilon, int maxiter );\+double Type##_GetXmin ( Type##_p p );\+double Type##_GetXmax ( Type##_p p );\+double Type##_GradientPar ( Type##_p p, int ipar, double* x, double eps );\+void Type##_InitArgs ( Type##_p p, double* x, double* params );\+double Type##_IntegralTF1 ( Type##_p p, double a, double b, double epsilon );\+double Type##_IntegralError ( Type##_p p, double a, double b, double* params, double* covmat, double epsilon );\+double Type##_IntegralFast ( Type##_p p, int num, double* x, double* w, double a, double b, double* params, double epsilon );\+bool Type##_IsInside ( Type##_p p, double* x );\+void Type##_ReleaseParameter ( Type##_p p, int ipar );\+void Type##_SetChisquare ( Type##_p p, double chi2 );\+void Type##_setMaximumTF1 ( Type##_p p, double maximum );\+void Type##_setMinimumTF1 ( Type##_p p, double minimum );\+void Type##_SetNDF ( Type##_p p, int ndf );\+void Type##_SetNumberFitPoints ( Type##_p p, int npfits );\+void Type##_SetNpx ( Type##_p p, int npx );\+void Type##_SetParError ( Type##_p p, int ipar, double error );\+void Type##_SetParErrors ( Type##_p p, double* errors );\+void Type##_SetParLimits ( Type##_p p, int ipar, double parmin, double parmax );\+void Type##_SetParent ( Type##_p p, TObject_p parent );\+void Type##_setRange1 ( Type##_p p, double xmin, double xmax );\+void Type##_setRange2 ( Type##_p p, double xmin, double xmax, double ymin, double ymax );\+void Type##_setRange3 ( Type##_p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax );\+void Type##_SetSavedPoint ( Type##_p p, int point, double value );\+double Type##_Moment ( Type##_p p, double n, double a, double b, double* params, double epsilon );\+double Type##_CentralMoment ( Type##_p p, double n, double a, double b, double* params, double epsilon );\+double Type##_Mean ( Type##_p p, double a, double b, double* params, double epsilon );\+double Type##_Variance ( Type##_p p, double a, double b, double* params, double epsilon ); -#undef TF1_DECL_NONVIRT + #define TF1_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTF1 ( const char* name, const char* formula, double xmin, double xmax ); \-double Type ## _tF1DerivativeError (  ); \-double Type ## _tF1GetChisquare ( Type ## _p p ); \-TH1_p Type ## _tF1GetHistogram ( Type ## _p p ); \-TObject_p Type ## _tF1GetParent ( Type ## _p p ); \-TAxis_p Type ## _tF1GetXaxis ( Type ## _p p ); \-TAxis_p Type ## _tF1GetYaxis ( Type ## _p p ); \-TAxis_p Type ## _tF1GetZaxis ( Type ## _p p ); \-void Type ## _tF1InitStandardFunctions (  ); \-TF1_p Type ## _tF1GetCurrent (  ); \-void Type ## _tF1AbsValue ( int reject ); \-void Type ## _tF1RejectPoint ( int reject ); \-int Type ## _tF1RejectedPoint (  ); \-void Type ## _tF1SetCurrent ( TF1_p f1 ); \-void Type ## _tF1CalcGaussLegendreSamplingPoints ( int num, double * x, double * w, double eps )+Type##_p Type##_newTF1 ( const char* name, const char* formula, double xmin, double xmax );\+double Type##_tF1_DerivativeError (  );\+double Type##_tF1_GetChisquare ( Type##_p p );\+TH1_p Type##_tF1_GetHistogram ( Type##_p p );\+TObject_p Type##_tF1_GetParent ( Type##_p p );\+TAxis_p Type##_tF1_GetXaxis ( Type##_p p );\+TAxis_p Type##_tF1_GetYaxis ( Type##_p p );\+TAxis_p Type##_tF1_GetZaxis ( Type##_p p );\+void Type##_tF1_InitStandardFunctions (  );\+TF1_p Type##_tF1_GetCurrent (  );\+void Type##_tF1_AbsValue ( bool reject );\+void Type##_tF1_RejectPoint ( bool reject );\+bool Type##_tF1_RejectedPoint (  );\+void Type##_tF1_SetCurrent ( TF1_p f1 );\+void Type##_tF1_CalcGaussLegendreSamplingPoints ( int num, double* x, double* w, double eps ); -#undef TF1_DEF_VIRT-#define TF1_DEF_VIRT(Type)\-double Type ## _Derivative ( Type ## _p p, double x, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Derivative,TF1)(p)->Derivative(x, params, epsilon);\++#define TF1_DECL_ACCESSOR(Type) \++++#define TF1_DEF_VIRT(Type) \+double Type##_Derivative ( Type##_p p, double x, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Derivative, TF1))(p))->Derivative(x, params, epsilon);\ }\-double Type ## _Derivative2 ( Type ## _p p, double x, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Derivative2,TF1)(p)->Derivative2(x, params, epsilon);\+\+double Type##_Derivative2 ( Type##_p p, double x, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Derivative2, TF1))(p))->Derivative2(x, params, epsilon);\ }\-double Type ## _Derivative3 ( Type ## _p p, double x, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Derivative3,TF1)(p)->Derivative3(x, params, epsilon);\+\+double Type##_Derivative3 ( Type##_p p, double x, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Derivative3, TF1))(p))->Derivative3(x, params, epsilon);\ }\-Type ## _p Type ## _drawCopyTF1 ( Type ## _p p, const char* option )\-{\-return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,drawCopyTF1,TF1)(p)->DrawCopy(option)) ;\+\+Type##_p Type##_drawCopyTF1 ( Type##_p p, const char* option ) {\+return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, drawCopyTF1, TF1))(p))->DrawCopy(option));\ }\-TObject_p Type ## _DrawDerivative ( Type ## _p p, const char* option )\-{\-return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,DrawDerivative,TF1)(p)->DrawDerivative(option));\+\+TObject_p Type##_DrawDerivative ( Type##_p p, const char* option ) {\+return from_nonconst_to_nonconst<TObject_t, TObject>((TObject*)((TYPECASTMETHOD(Type, DrawDerivative, TF1))(p))->DrawDerivative(option));\ }\-TObject_p Type ## _DrawIntegral ( Type ## _p p, const char* option )\-{\-return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,DrawIntegral,TF1)(p)->DrawIntegral(option));\+\+TObject_p Type##_DrawIntegral ( Type##_p p, const char* option ) {\+return from_nonconst_to_nonconst<TObject_t, TObject>((TObject*)((TYPECASTMETHOD(Type, DrawIntegral, TF1))(p))->DrawIntegral(option));\ }\-void Type ## _FixParameter ( Type ## _p p, int ipar, double value )\-{\-TYPECASTMETHOD(Type,FixParameter,TF1)(p)->FixParameter(ipar, value);\+\+void Type##_FixParameter ( Type##_p p, int ipar, double value ) {\+((TYPECASTMETHOD(Type, FixParameter, TF1))(p))->FixParameter(ipar, value);\ }\-double Type ## _getMaximumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\-{\-return TYPECASTMETHOD(Type,getMaximumTF1,TF1)(p)->GetMaximum(xmin, xmax, epsilon, maxiter, logx);\+\+double Type##_getMaximumTF1 ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx ) {\+return ((TYPECASTMETHOD(Type, getMaximumTF1, TF1))(p))->GetMaximum(xmin, xmax, epsilon, maxiter, logx);\ }\-double Type ## _getMinimumTF1 ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\-{\-return TYPECASTMETHOD(Type,getMinimumTF1,TF1)(p)->GetMinimum(xmin, xmax, epsilon, maxiter, logx);\+\+double Type##_getMinimumTF1 ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx ) {\+return ((TYPECASTMETHOD(Type, getMinimumTF1, TF1))(p))->GetMinimum(xmin, xmax, epsilon, maxiter, logx);\ }\-double Type ## _GetMaximumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\-{\-return TYPECASTMETHOD(Type,GetMaximumX,TF1)(p)->GetMaximumX(xmin, xmax, epsilon, maxiter, logx);\+\+double Type##_GetMaximumX ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx ) {\+return ((TYPECASTMETHOD(Type, GetMaximumX, TF1))(p))->GetMaximumX(xmin, xmax, epsilon, maxiter, logx);\ }\-double Type ## _GetMinimumX ( Type ## _p p, double xmin, double xmax, double epsilon, double maxiter, int logx )\-{\-return TYPECASTMETHOD(Type,GetMinimumX,TF1)(p)->GetMinimumX(xmin, xmax, epsilon, maxiter, logx);\+\+double Type##_GetMinimumX ( Type##_p p, double xmin, double xmax, double epsilon, double maxiter, bool logx ) {\+return ((TYPECASTMETHOD(Type, GetMinimumX, TF1))(p))->GetMinimumX(xmin, xmax, epsilon, maxiter, logx);\ }\-int Type ## _GetNDF ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNDF,TF1)(p)->GetNDF();\+\+int Type##_GetNDF ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNDF, TF1))(p))->GetNDF();\ }\-int Type ## _GetNpx ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNpx,TF1)(p)->GetNpx();\+\+int Type##_GetNpx ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNpx, TF1))(p))->GetNpx();\ }\-int Type ## _GetNumberFreeParameters ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNumberFreeParameters,TF1)(p)->GetNumberFreeParameters();\+\+int Type##_GetNumberFreeParameters ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNumberFreeParameters, TF1))(p))->GetNumberFreeParameters();\ }\-int Type ## _GetNumberFitPoints ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNumberFitPoints,TF1)(p)->GetNumberFitPoints();\+\+int Type##_GetNumberFitPoints ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNumberFitPoints, TF1))(p))->GetNumberFitPoints();\ }\-double Type ## _GetParError ( Type ## _p p, int ipar )\-{\-return TYPECASTMETHOD(Type,GetParError,TF1)(p)->GetParError(ipar);\+\+double Type##_GetParError ( Type##_p p, int ipar ) {\+return ((TYPECASTMETHOD(Type, GetParError, TF1))(p))->GetParError(ipar);\ }\-double Type ## _GetProb ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetProb,TF1)(p)->GetProb();\+\+double Type##_GetProb ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetProb, TF1))(p))->GetProb();\ }\-int Type ## _getQuantilesTF1 ( Type ## _p p, int nprobSum, double * q, double * probSum )\-{\-return TYPECASTMETHOD(Type,getQuantilesTF1,TF1)(p)->GetQuantiles(nprobSum, q, probSum);\+\+int Type##_getQuantilesTF1 ( Type##_p p, int nprobSum, double* q, double* probSum ) {\+return ((TYPECASTMETHOD(Type, getQuantilesTF1, TF1))(p))->GetQuantiles(nprobSum, q, probSum);\ }\-double Type ## _getRandomTF1 ( Type ## _p p, double xmin, double xmax )\-{\-return TYPECASTMETHOD(Type,getRandomTF1,TF1)(p)->GetRandom(xmin, xmax);\+\+double Type##_getRandomTF1 ( Type##_p p, double xmin, double xmax ) {\+return ((TYPECASTMETHOD(Type, getRandomTF1, TF1))(p))->GetRandom(xmin, xmax);\ }\-double Type ## _GetSave ( Type ## _p p, double * x )\-{\-return TYPECASTMETHOD(Type,GetSave,TF1)(p)->GetSave(x);\+\+double Type##_GetSave ( Type##_p p, double* x ) {\+return ((TYPECASTMETHOD(Type, GetSave, TF1))(p))->GetSave(x);\ }\-double Type ## _GetX ( Type ## _p p, double y, double xmin, double xmax, double epsilon, int maxiter )\-{\-return TYPECASTMETHOD(Type,GetX,TF1)(p)->GetX(y, xmin, xmax, epsilon, maxiter);\+\+double Type##_GetX ( Type##_p p, double y, double xmin, double xmax, double epsilon, int maxiter ) {\+return ((TYPECASTMETHOD(Type, GetX, TF1))(p))->GetX(y, xmin, xmax, epsilon, maxiter);\ }\-double Type ## _GetXmin ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetXmin,TF1)(p)->GetXmin();\+\+double Type##_GetXmin ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetXmin, TF1))(p))->GetXmin();\ }\-double Type ## _GetXmax ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetXmax,TF1)(p)->GetXmax();\+\+double Type##_GetXmax ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetXmax, TF1))(p))->GetXmax();\ }\-double Type ## _GradientPar ( Type ## _p p, int ipar, double * x, double eps )\-{\-return TYPECASTMETHOD(Type,GradientPar,TF1)(p)->GradientPar(ipar, x, eps);\+\+double Type##_GradientPar ( Type##_p p, int ipar, double* x, double eps ) {\+return ((TYPECASTMETHOD(Type, GradientPar, TF1))(p))->GradientPar(ipar, x, eps);\ }\-void Type ## _InitArgs ( Type ## _p p, double * x, double * params )\-{\-TYPECASTMETHOD(Type,InitArgs,TF1)(p)->InitArgs(x, params);\+\+void Type##_InitArgs ( Type##_p p, double* x, double* params ) {\+((TYPECASTMETHOD(Type, InitArgs, TF1))(p))->InitArgs(x, params);\ }\-double Type ## _IntegralTF1 ( Type ## _p p, double a, double b, double epsilon )\-{\-return TYPECASTMETHOD(Type,IntegralTF1,TF1)(p)->Integral(a, b, epsilon);\+\+double Type##_IntegralTF1 ( Type##_p p, double a, double b, double epsilon ) {\+return ((TYPECASTMETHOD(Type, IntegralTF1, TF1))(p))->Integral(a, b, epsilon);\ }\-double Type ## _IntegralError ( Type ## _p p, double a, double b, double * params, double * covmat, double epsilon )\-{\-return TYPECASTMETHOD(Type,IntegralError,TF1)(p)->IntegralError(a, b, params, covmat, epsilon);\+\+double Type##_IntegralError ( Type##_p p, double a, double b, double* params, double* covmat, double epsilon ) {\+return ((TYPECASTMETHOD(Type, IntegralError, TF1))(p))->IntegralError(a, b, params, covmat, epsilon);\ }\-double Type ## _IntegralFast ( Type ## _p p, int num, double * x, double * w, double a, double b, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,IntegralFast,TF1)(p)->IntegralFast(num, x, w, a, b, params, epsilon);\+\+double Type##_IntegralFast ( Type##_p p, int num, double* x, double* w, double a, double b, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, IntegralFast, TF1))(p))->IntegralFast(num, x, w, a, b, params, epsilon);\ }\-int Type ## _IsInside ( Type ## _p p, double * x )\-{\-return TYPECASTMETHOD(Type,IsInside,TF1)(p)->IsInside(x);\+\+bool Type##_IsInside ( Type##_p p, double* x ) {\+return ((TYPECASTMETHOD(Type, IsInside, TF1))(p))->IsInside(x);\ }\-void Type ## _ReleaseParameter ( Type ## _p p, int ipar )\-{\-TYPECASTMETHOD(Type,ReleaseParameter,TF1)(p)->ReleaseParameter(ipar);\+\+void Type##_ReleaseParameter ( Type##_p p, int ipar ) {\+((TYPECASTMETHOD(Type, ReleaseParameter, TF1))(p))->ReleaseParameter(ipar);\ }\-void Type ## _SetChisquare ( Type ## _p p, double chi2 )\-{\-TYPECASTMETHOD(Type,SetChisquare,TF1)(p)->SetChisquare(chi2);\+\+void Type##_SetChisquare ( Type##_p p, double chi2 ) {\+((TYPECASTMETHOD(Type, SetChisquare, TF1))(p))->SetChisquare(chi2);\ }\-void Type ## _setMaximumTF1 ( Type ## _p p, double maximum )\-{\-TYPECASTMETHOD(Type,setMaximumTF1,TF1)(p)->SetMaximum(maximum);\+\+void Type##_setMaximumTF1 ( Type##_p p, double maximum ) {\+((TYPECASTMETHOD(Type, setMaximumTF1, TF1))(p))->SetMaximum(maximum);\ }\-void Type ## _setMinimumTF1 ( Type ## _p p, double minimum )\-{\-TYPECASTMETHOD(Type,setMinimumTF1,TF1)(p)->SetMinimum(minimum);\+\+void Type##_setMinimumTF1 ( Type##_p p, double minimum ) {\+((TYPECASTMETHOD(Type, setMinimumTF1, TF1))(p))->SetMinimum(minimum);\ }\-void Type ## _SetNDF ( Type ## _p p, int ndf )\-{\-TYPECASTMETHOD(Type,SetNDF,TF1)(p)->SetNDF(ndf);\+\+void Type##_SetNDF ( Type##_p p, int ndf ) {\+((TYPECASTMETHOD(Type, SetNDF, TF1))(p))->SetNDF(ndf);\ }\-void Type ## _SetNumberFitPoints ( Type ## _p p, int npfits )\-{\-TYPECASTMETHOD(Type,SetNumberFitPoints,TF1)(p)->SetNumberFitPoints(npfits);\+\+void Type##_SetNumberFitPoints ( Type##_p p, int npfits ) {\+((TYPECASTMETHOD(Type, SetNumberFitPoints, TF1))(p))->SetNumberFitPoints(npfits);\ }\-void Type ## _SetNpx ( Type ## _p p, int npx )\-{\-TYPECASTMETHOD(Type,SetNpx,TF1)(p)->SetNpx(npx);\+\+void Type##_SetNpx ( Type##_p p, int npx ) {\+((TYPECASTMETHOD(Type, SetNpx, TF1))(p))->SetNpx(npx);\ }\-void Type ## _SetParError ( Type ## _p p, int ipar, double error )\-{\-TYPECASTMETHOD(Type,SetParError,TF1)(p)->SetParError(ipar, error);\+\+void Type##_SetParError ( Type##_p p, int ipar, double error ) {\+((TYPECASTMETHOD(Type, SetParError, TF1))(p))->SetParError(ipar, error);\ }\-void Type ## _SetParErrors ( Type ## _p p, double * errors )\-{\-TYPECASTMETHOD(Type,SetParErrors,TF1)(p)->SetParErrors(errors);\+\+void Type##_SetParErrors ( Type##_p p, double* errors ) {\+((TYPECASTMETHOD(Type, SetParErrors, TF1))(p))->SetParErrors(errors);\ }\-void Type ## _SetParLimits ( Type ## _p p, int ipar, double parmin, double parmax )\-{\-TYPECASTMETHOD(Type,SetParLimits,TF1)(p)->SetParLimits(ipar, parmin, parmax);\+\+void Type##_SetParLimits ( Type##_p p, int ipar, double parmin, double parmax ) {\+((TYPECASTMETHOD(Type, SetParLimits, TF1))(p))->SetParLimits(ipar, parmin, parmax);\ }\-void Type ## _SetParent ( Type ## _p p, TObject_p parent )\-{\-TYPECASTMETHOD(Type,SetParent,TF1)(p)->SetParent(to_nonconst<TObject,TObject_t>(parent));\+\+void Type##_SetParent ( Type##_p p, TObject_p parent ) {\+((TYPECASTMETHOD(Type, SetParent, TF1))(p))->SetParent(from_nonconst_to_nonconst<TObject, TObject_t>(parent));\ }\-void Type ## _setRange1 ( Type ## _p p, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,setRange1,TF1)(p)->SetRange(xmin, xmax);\+\+void Type##_setRange1 ( Type##_p p, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, setRange1, TF1))(p))->SetRange(xmin, xmax);\ }\-void Type ## _setRange2 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax )\-{\-TYPECASTMETHOD(Type,setRange2,TF1)(p)->SetRange(xmin, xmax, ymin, ymax);\+\+void Type##_setRange2 ( Type##_p p, double xmin, double xmax, double ymin, double ymax ) {\+((TYPECASTMETHOD(Type, setRange2, TF1))(p))->SetRange(xmin, xmax, ymin, ymax);\ }\-void Type ## _setRange3 ( Type ## _p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax )\-{\-TYPECASTMETHOD(Type,setRange3,TF1)(p)->SetRange(xmin, xmax, ymin, ymax, zmin, zmax);\+\+void Type##_setRange3 ( Type##_p p, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ) {\+((TYPECASTMETHOD(Type, setRange3, TF1))(p))->SetRange(xmin, xmax, ymin, ymax, zmin, zmax);\ }\-void Type ## _SetSavedPoint ( Type ## _p p, int point, double value )\-{\-TYPECASTMETHOD(Type,SetSavedPoint,TF1)(p)->SetSavedPoint(point, value);\+\+void Type##_SetSavedPoint ( Type##_p p, int point, double value ) {\+((TYPECASTMETHOD(Type, SetSavedPoint, TF1))(p))->SetSavedPoint(point, value);\ }\-double Type ## _Moment ( Type ## _p p, double n, double a, double b, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Moment,TF1)(p)->Moment(n, a, b, params, epsilon);\+\+double Type##_Moment ( Type##_p p, double n, double a, double b, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Moment, TF1))(p))->Moment(n, a, b, params, epsilon);\ }\-double Type ## _CentralMoment ( Type ## _p p, double n, double a, double b, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,CentralMoment,TF1)(p)->CentralMoment(n, a, b, params, epsilon);\+\+double Type##_CentralMoment ( Type##_p p, double n, double a, double b, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, CentralMoment, TF1))(p))->CentralMoment(n, a, b, params, epsilon);\ }\-double Type ## _Mean ( Type ## _p p, double a, double b, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Mean,TF1)(p)->Mean(a, b, params, epsilon);\+\+double Type##_Mean ( Type##_p p, double a, double b, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Mean, TF1))(p))->Mean(a, b, params, epsilon);\ }\-double Type ## _Variance ( Type ## _p p, double a, double b, double * params, double epsilon )\-{\-return TYPECASTMETHOD(Type,Variance,TF1)(p)->Variance(a, b, params, epsilon);\+\+double Type##_Variance ( Type##_p p, double a, double b, double* params, double epsilon ) {\+return ((TYPECASTMETHOD(Type, Variance, TF1))(p))->Variance(a, b, params, epsilon);\ } -#undef TF1_DEF_NONVIRT-#define TF1_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTF1 ( const char* name, const char* formula, double xmin, double xmax )\-{\-Type * newp = new Type (name, formula, xmin, xmax); \-return to_nonconst<Type ## _t, Type >(newp);\++#define TF1_DEF_NONVIRT(Type) \+Type##_p Type##_newTF1 ( const char* name, const char* formula, double xmin, double xmax ) {\+Type* newp=new Type(name, formula, xmin, xmax);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\ }\-double Type ## _tF1DerivativeError (  )\-{\+\+double Type##_tF1_DerivativeError (  ) {\ return TF1::DerivativeError();\ }\-double Type ## _tF1GetChisquare ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tF1GetChisquare,TF1)(p)->GetChisquare();\+\+double Type##_tF1_GetChisquare ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tF1_GetChisquare, TF1))(p))->GetChisquare();\ }\-TH1_p Type ## _tF1GetHistogram ( Type ## _p p )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,tF1GetHistogram,TF1)(p)->GetHistogram());\+\+TH1_p Type##_tF1_GetHistogram ( Type##_p p ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, tF1_GetHistogram, TF1))(p))->GetHistogram());\ }\-TObject_p Type ## _tF1GetParent ( Type ## _p p )\-{\-return to_nonconst<TObject_t,TObject>((TObject*)TYPECASTMETHOD(Type,tF1GetParent,TF1)(p)->GetParent());\+\+TObject_p Type##_tF1_GetParent ( Type##_p p ) {\+return from_nonconst_to_nonconst<TObject_t, TObject>((TObject*)((TYPECASTMETHOD(Type, tF1_GetParent, TF1))(p))->GetParent());\ }\-TAxis_p Type ## _tF1GetXaxis ( Type ## _p p )\-{\-return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetXaxis,TF1)(p)->GetXaxis());\+\+TAxis_p Type##_tF1_GetXaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tF1_GetXaxis, TF1))(p))->GetXaxis());\ }\-TAxis_p Type ## _tF1GetYaxis ( Type ## _p p )\-{\-return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetYaxis,TF1)(p)->GetYaxis());\+\+TAxis_p Type##_tF1_GetYaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tF1_GetYaxis, TF1))(p))->GetYaxis());\ }\-TAxis_p Type ## _tF1GetZaxis ( Type ## _p p )\-{\-return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tF1GetZaxis,TF1)(p)->GetZaxis());\+\+TAxis_p Type##_tF1_GetZaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tF1_GetZaxis, TF1))(p))->GetZaxis());\ }\-void Type ## _tF1InitStandardFunctions (  )\-{\+\+void Type##_tF1_InitStandardFunctions (  ) {\ TF1::InitStandardFunctions();\ }\-TF1_p Type ## _tF1GetCurrent (  )\-{\-return to_nonconst<TF1_t,TF1>((TF1*)TF1::GetCurrent());\+\+TF1_p Type##_tF1_GetCurrent (  ) {\+return from_nonconst_to_nonconst<TF1_t, TF1>((TF1*)TF1::GetCurrent());\ }\-void Type ## _tF1AbsValue ( int reject )\-{\+\+void Type##_tF1_AbsValue ( bool reject ) {\ TF1::AbsValue(reject);\ }\-void Type ## _tF1RejectPoint ( int reject )\-{\+\+void Type##_tF1_RejectPoint ( bool reject ) {\ TF1::RejectPoint(reject);\ }\-int Type ## _tF1RejectedPoint (  )\-{\+\+bool Type##_tF1_RejectedPoint (  ) {\ return TF1::RejectedPoint();\ }\-void Type ## _tF1SetCurrent ( TF1_p f1 )\-{\-TF1::SetCurrent(to_nonconst<TF1,TF1_t>(f1));\+\+void Type##_tF1_SetCurrent ( TF1_p f1 ) {\+TF1::SetCurrent(from_nonconst_to_nonconst<TF1, TF1_t>(f1));\ }\-void Type ## _tF1CalcGaussLegendreSamplingPoints ( int num, double * x, double * w, double eps )\-{\+\+void Type##_tF1_CalcGaussLegendreSamplingPoints ( int num, double* x, double* w, double eps ) {\ TF1::CalcGaussLegendreSamplingPoints(num, x, w, eps);\ } -TATTLINE_DECL_VIRT(TF1);-TATTFILL_DECL_VIRT(TF1);-TATTMARKER_DECL_VIRT(TF1);-DELETABLE_DECL_VIRT(TF1); +#define TF1_DEF_ACCESSOR(Type) \ -TF1_DECL_VIRT(TF1);  -TF1_DECL_NONVIRT(TF1);---#endif // __HROOT_HIST__TF1__+TATTLINE_DECL_VIRT(TF1)+TATTFILL_DECL_VIRT(TF1)+TATTMARKER_DECL_VIRT(TF1)+DELETABLE_DECL_VIRT(TF1)+TF1_DECL_VIRT(TF1)+TF1_DECL_NONVIRT(TF1)+TF1_DECL_ACCESSOR(TF1)  #ifdef __cplusplus }
csrc/HROOTHistTFitResult.cpp view
@@ -1,23 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTCoreTNamed.h"+ #include "TFitResult.h"-#include "HROOTHistTFitResult.h" +#include "HROOTHistTFitResult.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TNAMED_DEF_VIRT(TFitResult) TOBJECT_DEF_VIRT(TFitResult) DELETABLE_DEF_VIRT(TFitResult)- TFITRESULT_DEF_VIRT(TFitResult)- TFITRESULT_DEF_NONVIRT(TFitResult)+TFITRESULT_DEF_ACCESSOR(TFitResult) 
csrc/HROOTHistTFitResult.h view
@@ -1,44 +1,52 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TFitResult__-#define __HROOT_HIST__TFitResult__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TFITRESULT_DECL_VIRT + #define TFITRESULT_DECL_VIRT(Type) \  -#undef TFITRESULT_DECL_NONVIRT + #define TFITRESULT_DECL_NONVIRT(Type) \  -#undef TFITRESULT_DEF_VIRT-#define TFITRESULT_DEF_VIRT(Type)\ +#define TFITRESULT_DECL_ACCESSOR(Type) \ -#undef TFITRESULT_DEF_NONVIRT-#define TFITRESULT_DEF_NONVIRT(Type)\  -TNAMED_DECL_VIRT(TFitResult);-TOBJECT_DECL_VIRT(TFitResult);-DELETABLE_DECL_VIRT(TFitResult);+#define TFITRESULT_DEF_VIRT(Type) \  -TFITRESULT_DECL_VIRT(TFitResult); +#define TFITRESULT_DEF_NONVIRT(Type) \ -TFITRESULT_DECL_NONVIRT(TFitResult);  -#endif // __HROOT_HIST__TFitResult__+#define TFITRESULT_DEF_ACCESSOR(Type) \++++TNAMED_DECL_VIRT(TFitResult)+TOBJECT_DECL_VIRT(TFitResult)+DELETABLE_DECL_VIRT(TFitResult)+TFITRESULT_DECL_VIRT(TFitResult)+TFITRESULT_DECL_NONVIRT(TFitResult)+TFITRESULT_DECL_ACCESSOR(TFitResult)  #ifdef __cplusplus }
csrc/HROOTHistTFitResultPtr.cpp view
@@ -1,20 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTFitResult.h"+ #include "TFitResultPtr.h"-#include "HROOTHistTFitResultPtr.h" +#include "HROOTHistTFitResultPtr.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )--+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TFITRESULTPTR_DEF_VIRT(TFitResultPtr)- TFITRESULTPTR_DEF_NONVIRT(TFitResultPtr)+TFITRESULTPTR_DEF_ACCESSOR(TFitResultPtr) 
csrc/HROOTHistTFitResultPtr.h view
@@ -1,41 +1,43 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TFitResultPtr__-#define __HROOT_HIST__TFitResultPtr__+#pragma once + #include "HROOT-histType.h"  -#undef TFITRESULTPTR_DECL_VIRT  #define TFITRESULTPTR_DECL_VIRT(Type) \  -#undef TFITRESULTPTR_DECL_NONVIRT + #define TFITRESULTPTR_DECL_NONVIRT(Type) \-TFitResult_p Type ## _tFitResultPtrGet ( Type ## _p p )+TFitResult_p Type##_tFitResultPtr_Get ( Type##_p p ); -#undef TFITRESULTPTR_DEF_VIRT-#define TFITRESULTPTR_DEF_VIRT(Type)\ +#define TFITRESULTPTR_DECL_ACCESSOR(Type) \ -#undef TFITRESULTPTR_DEF_NONVIRT-#define TFITRESULTPTR_DEF_NONVIRT(Type)\-TFitResult_p Type ## _tFitResultPtrGet ( Type ## _p p )\-{\-return to_nonconst<TFitResult_t,TFitResult>((TFitResult*)TYPECASTMETHOD(Type,tFitResultPtrGet,TFitResultPtr)(p)->Get());\-}  +#define TFITRESULTPTR_DEF_VIRT(Type) \ -TFITRESULTPTR_DECL_VIRT(TFitResultPtr);  -TFITRESULTPTR_DECL_NONVIRT(TFitResultPtr);+#define TFITRESULTPTR_DEF_NONVIRT(Type) \+TFitResult_p Type##_tFitResultPtr_Get ( Type##_p p ) {\+return from_nonconst_to_nonconst<TFitResult_t, TFitResult>((TFitResult*)((TYPECASTMETHOD(Type, tFitResultPtr_Get, TFitResultPtr))(p))->Get());\+}  -#endif // __HROOT_HIST__TFitResultPtr__+#define TFITRESULTPTR_DEF_ACCESSOR(Type) \++++TFITRESULTPTR_DECL_VIRT(TFitResultPtr)+TFITRESULTPTR_DECL_NONVIRT(TFitResultPtr)+TFITRESULTPTR_DECL_ACCESSOR(TFitResultPtr)  #ifdef __cplusplus }
csrc/HROOTHistTGraph.cpp view
@@ -1,23 +1,32 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTF1.h"+ #include "HROOTHistTH1F.h"+ #include "HROOTHistTAxis.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "TGraph.h"-#include "HROOTHistTGraph.h" +#include "HROOTHistTGraph.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TNAMED_DEF_VIRT(TGraph) TATTLINE_DEF_VIRT(TGraph)@@ -25,8 +34,7 @@ TATTMARKER_DEF_VIRT(TGraph) TOBJECT_DEF_VIRT(TGraph) DELETABLE_DEF_VIRT(TGraph)- TGRAPH_DEF_VIRT(TGraph)- TGRAPH_DEF_NONVIRT(TGraph)+TGRAPH_DEF_ACCESSOR(TGraph) 
csrc/HROOTHistTGraph.h view
@@ -1,267 +1,275 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TGraph__-#define __HROOT_HIST__TGraph__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TGRAPH_DECL_VIRT + #define TGRAPH_DECL_VIRT(Type) \-void Type ## _Apply ( Type ## _p p, TF1_p f ); \-double Type ## _Chisquare ( Type ## _p p, TF1_p f1 ); \-void Type ## _DrawGraph ( Type ## _p p, int n, double * x, double * y, const char* option ); \-void Type ## _drawPanelTGraph ( Type ## _p p ); \-void Type ## _Expand ( Type ## _p p, int newsize, int step ); \-void Type ## _FitPanelTGraph ( Type ## _p p ); \-double Type ## _getCorrelationFactorTGraph ( Type ## _p p ); \-double Type ## _getCovarianceTGraph ( Type ## _p p ); \-double Type ## _getMeanTGraph ( Type ## _p p, int axis ); \-double Type ## _getRMSTGraph ( Type ## _p p, int axis ); \-double Type ## _GetErrorX ( Type ## _p p, int bin ); \-double Type ## _GetErrorY ( Type ## _p p, int bin ); \-double Type ## _GetErrorXhigh ( Type ## _p p, int bin ); \-double Type ## _GetErrorXlow ( Type ## _p p, int bin ); \-double Type ## _GetErrorYhigh ( Type ## _p p, int bin ); \-double Type ## _GetErrorYlow ( Type ## _p p, int bin ); \-void Type ## _InitExpo ( Type ## _p p, double xmin, double xmax ); \-void Type ## _InitGaus ( Type ## _p p, double xmin, double xmax ); \-void Type ## _InitPolynom ( Type ## _p p, double xmin, double xmax ); \-int Type ## _InsertPoint ( Type ## _p p ); \-double Type ## _integralTGraph ( Type ## _p p, int first, int last ); \-int Type ## _IsEditable ( Type ## _p p ); \-int Type ## _isInsideTGraph ( Type ## _p p, double x, double y ); \-void Type ## _LeastSquareFit ( Type ## _p p, int m, double * a, double xmin, double xmax ); \-void Type ## _PaintStats ( Type ## _p p, TF1_p fit ); \-int Type ## _RemovePoint ( Type ## _p p, int ipoint ); \-void Type ## _SetEditable ( Type ## _p p, int editable ); \-void Type ## _SetHistogram ( Type ## _p p, TH1F_p h ); \-void Type ## _setMaximumTGraph ( Type ## _p p, double maximum ); \-void Type ## _setMinimumTGraph ( Type ## _p p, double minimum ); \-void Type ## _Set ( Type ## _p p, int n ); \-void Type ## _SetPoint ( Type ## _p p, int i, double x, double y )+void Type##_Apply ( Type##_p p, TF1_p f );\+double Type##_Chisquare ( Type##_p p, TF1_p f1 );\+void Type##_DrawGraph ( Type##_p p, int n, double* x, double* y, const char* option );\+void Type##_drawPanelTGraph ( Type##_p p );\+void Type##_Expand ( Type##_p p, int newsize, int step );\+void Type##_FitPanelTGraph ( Type##_p p );\+double Type##_getCorrelationFactorTGraph ( Type##_p p );\+double Type##_getCovarianceTGraph ( Type##_p p );\+double Type##_getMeanTGraph ( Type##_p p, int axis );\+double Type##_getRMSTGraph ( Type##_p p, int axis );\+double Type##_GetErrorX ( Type##_p p, int bin );\+double Type##_GetErrorY ( Type##_p p, int bin );\+double Type##_GetErrorXhigh ( Type##_p p, int bin );\+double Type##_GetErrorXlow ( Type##_p p, int bin );\+double Type##_GetErrorYhigh ( Type##_p p, int bin );\+double Type##_GetErrorYlow ( Type##_p p, int bin );\+void Type##_InitExpo ( Type##_p p, double xmin, double xmax );\+void Type##_InitGaus ( Type##_p p, double xmin, double xmax );\+void Type##_InitPolynom ( Type##_p p, double xmin, double xmax );\+int Type##_InsertPoint ( Type##_p p );\+double Type##_integralTGraph ( Type##_p p, int first, int last );\+bool Type##_IsEditable ( Type##_p p );\+int Type##_isInsideTGraph ( Type##_p p, double x, double y );\+void Type##_LeastSquareFit ( Type##_p p, int m, double* a, double xmin, double xmax );\+void Type##_PaintStats ( Type##_p p, TF1_p fit );\+int Type##_RemovePoint ( Type##_p p, int ipoint );\+void Type##_SetEditable ( Type##_p p, bool editable );\+void Type##_SetHistogram ( Type##_p p, TH1F_p h );\+void Type##_setMaximumTGraph ( Type##_p p, double maximum );\+void Type##_setMinimumTGraph ( Type##_p p, double minimum );\+void Type##_Set ( Type##_p p, int n );\+void Type##_SetPoint ( Type##_p p, int i, double x, double y ); -#undef TGRAPH_DECL_NONVIRT + #define TGRAPH_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTGraph ( int n, double * x, double * y ); \-int Type ## _tGraphGetEditable ( Type ## _p p ); \-TF1_p Type ## _tGraphGetFunction ( Type ## _p p, const char* name ); \-TH1F_p Type ## _tGraphGetHistogram ( Type ## _p p ); \-int Type ## _tGraphGetMaxSize ( Type ## _p p ); \-int Type ## _tGraphGetN ( Type ## _p p ); \-double Type ## _tGraphGetMaximum ( Type ## _p p ); \-double Type ## _tGraphGetMinimum ( Type ## _p p ); \-TAxis_p Type ## _tGraphGetXaxis ( Type ## _p p ); \-TAxis_p Type ## _tGraphGetYaxis ( Type ## _p p ); \-void Type ## _tGraphPaintGraph ( Type ## _p p, int npoints, double * x, double * y, const char* chopt ); \-void Type ## _tGraphPaintGrapHist ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )+Type##_p Type##_newTGraph ( int n, double* x, double* y );\+bool Type##_tGraph_GetEditable ( Type##_p p );\+TF1_p Type##_tGraph_GetFunction ( Type##_p p, const char* name );\+TH1F_p Type##_tGraph_GetHistogram ( Type##_p p );\+int Type##_tGraph_GetMaxSize ( Type##_p p );\+int Type##_tGraph_GetN ( Type##_p p );\+double Type##_tGraph_GetMaximum ( Type##_p p );\+double Type##_tGraph_GetMinimum ( Type##_p p );\+TAxis_p Type##_tGraph_GetXaxis ( Type##_p p );\+TAxis_p Type##_tGraph_GetYaxis ( Type##_p p );\+void Type##_tGraph_PaintGraph ( Type##_p p, int npoints, double* x, double* y, const char* chopt );\+void Type##_tGraph_PaintGrapHist ( Type##_p p, int npoints, double* x, double* y, const char* chopt ); -#undef TGRAPH_DEF_VIRT-#define TGRAPH_DEF_VIRT(Type)\-void Type ## _Apply ( Type ## _p p, TF1_p f )\-{\-TYPECASTMETHOD(Type,Apply,TGraph)(p)->Apply(to_nonconst<TF1,TF1_t>(f));\++#define TGRAPH_DECL_ACCESSOR(Type) \++++#define TGRAPH_DEF_VIRT(Type) \+void Type##_Apply ( Type##_p p, TF1_p f ) {\+((TYPECASTMETHOD(Type, Apply, TGraph))(p))->Apply(from_nonconst_to_nonconst<TF1, TF1_t>(f));\ }\-double Type ## _Chisquare ( Type ## _p p, TF1_p f1 )\-{\-return TYPECASTMETHOD(Type,Chisquare,TGraph)(p)->Chisquare(to_nonconst<TF1,TF1_t>(f1));\+\+double Type##_Chisquare ( Type##_p p, TF1_p f1 ) {\+return ((TYPECASTMETHOD(Type, Chisquare, TGraph))(p))->Chisquare(from_nonconst_to_nonconst<TF1, TF1_t>(f1));\ }\-void Type ## _DrawGraph ( Type ## _p p, int n, double * x, double * y, const char* option )\-{\-TYPECASTMETHOD(Type,DrawGraph,TGraph)(p)->DrawGraph(n, x, y, option);\+\+void Type##_DrawGraph ( Type##_p p, int n, double* x, double* y, const char* option ) {\+((TYPECASTMETHOD(Type, DrawGraph, TGraph))(p))->DrawGraph(n, x, y, option);\ }\-void Type ## _drawPanelTGraph ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,drawPanelTGraph,TGraph)(p)->DrawPanel();\+\+void Type##_drawPanelTGraph ( Type##_p p ) {\+((TYPECASTMETHOD(Type, drawPanelTGraph, TGraph))(p))->DrawPanel();\ }\-void Type ## _Expand ( Type ## _p p, int newsize, int step )\-{\-TYPECASTMETHOD(Type,Expand,TGraph)(p)->Expand(newsize, step);\+\+void Type##_Expand ( Type##_p p, int newsize, int step ) {\+((TYPECASTMETHOD(Type, Expand, TGraph))(p))->Expand(newsize, step);\ }\-void Type ## _FitPanelTGraph ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,FitPanelTGraph,TGraph)(p)->FitPanel();\+\+void Type##_FitPanelTGraph ( Type##_p p ) {\+((TYPECASTMETHOD(Type, FitPanelTGraph, TGraph))(p))->FitPanel();\ }\-double Type ## _getCorrelationFactorTGraph ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,getCorrelationFactorTGraph,TGraph)(p)->GetCorrelationFactor();\+\+double Type##_getCorrelationFactorTGraph ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, getCorrelationFactorTGraph, TGraph))(p))->GetCorrelationFactor();\ }\-double Type ## _getCovarianceTGraph ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,getCovarianceTGraph,TGraph)(p)->GetCovariance();\+\+double Type##_getCovarianceTGraph ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, getCovarianceTGraph, TGraph))(p))->GetCovariance();\ }\-double Type ## _getMeanTGraph ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,getMeanTGraph,TGraph)(p)->GetMean(axis);\+\+double Type##_getMeanTGraph ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, getMeanTGraph, TGraph))(p))->GetMean(axis);\ }\-double Type ## _getRMSTGraph ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,getRMSTGraph,TGraph)(p)->GetRMS(axis);\+\+double Type##_getRMSTGraph ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, getRMSTGraph, TGraph))(p))->GetRMS(axis);\ }\-double Type ## _GetErrorX ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorX,TGraph)(p)->GetErrorX(bin);\+\+double Type##_GetErrorX ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorX, TGraph))(p))->GetErrorX(bin);\ }\-double Type ## _GetErrorY ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorY,TGraph)(p)->GetErrorY(bin);\+\+double Type##_GetErrorY ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorY, TGraph))(p))->GetErrorY(bin);\ }\-double Type ## _GetErrorXhigh ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorXhigh,TGraph)(p)->GetErrorXhigh(bin);\+\+double Type##_GetErrorXhigh ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorXhigh, TGraph))(p))->GetErrorXhigh(bin);\ }\-double Type ## _GetErrorXlow ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorXlow,TGraph)(p)->GetErrorXlow(bin);\+\+double Type##_GetErrorXlow ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorXlow, TGraph))(p))->GetErrorXlow(bin);\ }\-double Type ## _GetErrorYhigh ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorYhigh,TGraph)(p)->GetErrorYhigh(bin);\+\+double Type##_GetErrorYhigh ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorYhigh, TGraph))(p))->GetErrorYhigh(bin);\ }\-double Type ## _GetErrorYlow ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetErrorYlow,TGraph)(p)->GetErrorYlow(bin);\+\+double Type##_GetErrorYlow ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetErrorYlow, TGraph))(p))->GetErrorYlow(bin);\ }\-void Type ## _InitExpo ( Type ## _p p, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,InitExpo,TGraph)(p)->InitExpo(xmin, xmax);\+\+void Type##_InitExpo ( Type##_p p, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, InitExpo, TGraph))(p))->InitExpo(xmin, xmax);\ }\-void Type ## _InitGaus ( Type ## _p p, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,InitGaus,TGraph)(p)->InitGaus(xmin, xmax);\+\+void Type##_InitGaus ( Type##_p p, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, InitGaus, TGraph))(p))->InitGaus(xmin, xmax);\ }\-void Type ## _InitPolynom ( Type ## _p p, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,InitPolynom,TGraph)(p)->InitPolynom(xmin, xmax);\+\+void Type##_InitPolynom ( Type##_p p, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, InitPolynom, TGraph))(p))->InitPolynom(xmin, xmax);\ }\-int Type ## _InsertPoint ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,InsertPoint,TGraph)(p)->InsertPoint();\+\+int Type##_InsertPoint ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, InsertPoint, TGraph))(p))->InsertPoint();\ }\-double Type ## _integralTGraph ( Type ## _p p, int first, int last )\-{\-return TYPECASTMETHOD(Type,integralTGraph,TGraph)(p)->Integral(first, last);\+\+double Type##_integralTGraph ( Type##_p p, int first, int last ) {\+return ((TYPECASTMETHOD(Type, integralTGraph, TGraph))(p))->Integral(first, last);\ }\-int Type ## _IsEditable ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,IsEditable,TGraph)(p)->IsEditable();\+\+bool Type##_IsEditable ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, IsEditable, TGraph))(p))->IsEditable();\ }\-int Type ## _isInsideTGraph ( Type ## _p p, double x, double y )\-{\-return TYPECASTMETHOD(Type,isInsideTGraph,TGraph)(p)->IsInside(x, y);\+\+int Type##_isInsideTGraph ( Type##_p p, double x, double y ) {\+return ((TYPECASTMETHOD(Type, isInsideTGraph, TGraph))(p))->IsInside(x, y);\ }\-void Type ## _LeastSquareFit ( Type ## _p p, int m, double * a, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,LeastSquareFit,TGraph)(p)->LeastSquareFit(m, a, xmin, xmax);\+\+void Type##_LeastSquareFit ( Type##_p p, int m, double* a, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, LeastSquareFit, TGraph))(p))->LeastSquareFit(m, a, xmin, xmax);\ }\-void Type ## _PaintStats ( Type ## _p p, TF1_p fit )\-{\-TYPECASTMETHOD(Type,PaintStats,TGraph)(p)->PaintStats(to_nonconst<TF1,TF1_t>(fit));\+\+void Type##_PaintStats ( Type##_p p, TF1_p fit ) {\+((TYPECASTMETHOD(Type, PaintStats, TGraph))(p))->PaintStats(from_nonconst_to_nonconst<TF1, TF1_t>(fit));\ }\-int Type ## _RemovePoint ( Type ## _p p, int ipoint )\-{\-return TYPECASTMETHOD(Type,RemovePoint,TGraph)(p)->RemovePoint(ipoint);\+\+int Type##_RemovePoint ( Type##_p p, int ipoint ) {\+return ((TYPECASTMETHOD(Type, RemovePoint, TGraph))(p))->RemovePoint(ipoint);\ }\-void Type ## _SetEditable ( Type ## _p p, int editable )\-{\-TYPECASTMETHOD(Type,SetEditable,TGraph)(p)->SetEditable(editable);\+\+void Type##_SetEditable ( Type##_p p, bool editable ) {\+((TYPECASTMETHOD(Type, SetEditable, TGraph))(p))->SetEditable(editable);\ }\-void Type ## _SetHistogram ( Type ## _p p, TH1F_p h )\-{\-TYPECASTMETHOD(Type,SetHistogram,TGraph)(p)->SetHistogram(to_nonconst<TH1F,TH1F_t>(h));\+\+void Type##_SetHistogram ( Type##_p p, TH1F_p h ) {\+((TYPECASTMETHOD(Type, SetHistogram, TGraph))(p))->SetHistogram(from_nonconst_to_nonconst<TH1F, TH1F_t>(h));\ }\-void Type ## _setMaximumTGraph ( Type ## _p p, double maximum )\-{\-TYPECASTMETHOD(Type,setMaximumTGraph,TGraph)(p)->SetMaximum(maximum);\+\+void Type##_setMaximumTGraph ( Type##_p p, double maximum ) {\+((TYPECASTMETHOD(Type, setMaximumTGraph, TGraph))(p))->SetMaximum(maximum);\ }\-void Type ## _setMinimumTGraph ( Type ## _p p, double minimum )\-{\-TYPECASTMETHOD(Type,setMinimumTGraph,TGraph)(p)->SetMinimum(minimum);\+\+void Type##_setMinimumTGraph ( Type##_p p, double minimum ) {\+((TYPECASTMETHOD(Type, setMinimumTGraph, TGraph))(p))->SetMinimum(minimum);\ }\-void Type ## _Set ( Type ## _p p, int n )\-{\-TYPECASTMETHOD(Type,Set,TGraph)(p)->Set(n);\+\+void Type##_Set ( Type##_p p, int n ) {\+((TYPECASTMETHOD(Type, Set, TGraph))(p))->Set(n);\ }\-void Type ## _SetPoint ( Type ## _p p, int i, double x, double y )\-{\-TYPECASTMETHOD(Type,SetPoint,TGraph)(p)->SetPoint(i, x, y);\+\+void Type##_SetPoint ( Type##_p p, int i, double x, double y ) {\+((TYPECASTMETHOD(Type, SetPoint, TGraph))(p))->SetPoint(i, x, y);\ } -#undef TGRAPH_DEF_NONVIRT-#define TGRAPH_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTGraph ( int n, double * x, double * y )\-{\-Type * newp = new Type (n, x, y); \-return to_nonconst<Type ## _t, Type >(newp);\++#define TGRAPH_DEF_NONVIRT(Type) \+Type##_p Type##_newTGraph ( int n, double* x, double* y ) {\+Type* newp=new Type(n, x, y);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\ }\-int Type ## _tGraphGetEditable ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tGraphGetEditable,TGraph)(p)->GetEditable();\+\+bool Type##_tGraph_GetEditable ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tGraph_GetEditable, TGraph))(p))->GetEditable();\ }\-TF1_p Type ## _tGraphGetFunction ( Type ## _p p, const char* name )\-{\-return to_nonconst<TF1_t,TF1>((TF1*)TYPECASTMETHOD(Type,tGraphGetFunction,TGraph)(p)->GetFunction(name));\+\+TF1_p Type##_tGraph_GetFunction ( Type##_p p, const char* name ) {\+return from_nonconst_to_nonconst<TF1_t, TF1>((TF1*)((TYPECASTMETHOD(Type, tGraph_GetFunction, TGraph))(p))->GetFunction(name));\ }\-TH1F_p Type ## _tGraphGetHistogram ( Type ## _p p )\-{\-return to_nonconst<TH1F_t,TH1F>((TH1F*)TYPECASTMETHOD(Type,tGraphGetHistogram,TGraph)(p)->GetHistogram());\+\+TH1F_p Type##_tGraph_GetHistogram ( Type##_p p ) {\+return from_nonconst_to_nonconst<TH1F_t, TH1F>((TH1F*)((TYPECASTMETHOD(Type, tGraph_GetHistogram, TGraph))(p))->GetHistogram());\ }\-int Type ## _tGraphGetMaxSize ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tGraphGetMaxSize,TGraph)(p)->GetMaxSize();\+\+int Type##_tGraph_GetMaxSize ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tGraph_GetMaxSize, TGraph))(p))->GetMaxSize();\ }\-int Type ## _tGraphGetN ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tGraphGetN,TGraph)(p)->GetN();\+\+int Type##_tGraph_GetN ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tGraph_GetN, TGraph))(p))->GetN();\ }\-double Type ## _tGraphGetMaximum ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tGraphGetMaximum,TGraph)(p)->GetMaximum();\+\+double Type##_tGraph_GetMaximum ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tGraph_GetMaximum, TGraph))(p))->GetMaximum();\ }\-double Type ## _tGraphGetMinimum ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tGraphGetMinimum,TGraph)(p)->GetMinimum();\+\+double Type##_tGraph_GetMinimum ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tGraph_GetMinimum, TGraph))(p))->GetMinimum();\ }\-TAxis_p Type ## _tGraphGetXaxis ( Type ## _p p )\-{\-return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tGraphGetXaxis,TGraph)(p)->GetXaxis());\+\+TAxis_p Type##_tGraph_GetXaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tGraph_GetXaxis, TGraph))(p))->GetXaxis());\ }\-TAxis_p Type ## _tGraphGetYaxis ( Type ## _p p )\-{\-return to_nonconst<TAxis_t,TAxis>((TAxis*)TYPECASTMETHOD(Type,tGraphGetYaxis,TGraph)(p)->GetYaxis());\+\+TAxis_p Type##_tGraph_GetYaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tGraph_GetYaxis, TGraph))(p))->GetYaxis());\ }\-void Type ## _tGraphPaintGraph ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )\-{\-TYPECASTMETHOD(Type,tGraphPaintGraph,TGraph)(p)->PaintGraph(npoints, x, y, chopt);\+\+void Type##_tGraph_PaintGraph ( Type##_p p, int npoints, double* x, double* y, const char* chopt ) {\+((TYPECASTMETHOD(Type, tGraph_PaintGraph, TGraph))(p))->PaintGraph(npoints, x, y, chopt);\ }\-void Type ## _tGraphPaintGrapHist ( Type ## _p p, int npoints, double * x, double * y, const char* chopt )\-{\-TYPECASTMETHOD(Type,tGraphPaintGrapHist,TGraph)(p)->PaintGrapHist(npoints, x, y, chopt);\+\+void Type##_tGraph_PaintGrapHist ( Type##_p p, int npoints, double* x, double* y, const char* chopt ) {\+((TYPECASTMETHOD(Type, tGraph_PaintGrapHist, TGraph))(p))->PaintGrapHist(npoints, x, y, chopt);\ } -TNAMED_DECL_VIRT(TGraph);-TATTLINE_DECL_VIRT(TGraph);-TATTFILL_DECL_VIRT(TGraph);-TATTMARKER_DECL_VIRT(TGraph);-TOBJECT_DECL_VIRT(TGraph);-DELETABLE_DECL_VIRT(TGraph); +#define TGRAPH_DEF_ACCESSOR(Type) \ -TGRAPH_DECL_VIRT(TGraph);  -TGRAPH_DECL_NONVIRT(TGraph);---#endif // __HROOT_HIST__TGraph__+TNAMED_DECL_VIRT(TGraph)+TATTLINE_DECL_VIRT(TGraph)+TATTFILL_DECL_VIRT(TGraph)+TATTMARKER_DECL_VIRT(TGraph)+TOBJECT_DECL_VIRT(TGraph)+DELETABLE_DECL_VIRT(TGraph)+TGRAPH_DECL_VIRT(TGraph)+TGRAPH_DECL_NONVIRT(TGraph)+TGRAPH_DECL_ACCESSOR(TGraph)  #ifdef __cplusplus }
+ csrc/HROOTHistTGraph2D.cpp view
@@ -0,0 +1,36 @@++#include "MacroPatternMatch.h"++#include "HROOTHistTAxis.h"++#include "HROOTCoreTNamed.h"++#include "HROOTCoreTAttLine.h"++#include "HROOTCoreTAttFill.h"++#include "HROOTCoreTAttMarker.h"++#include "TGraph2D.h"++#include "HROOTHistTGraph2D.h"++using namespace ROOT;++#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )++TNAMED_DEF_VIRT(TGraph2D)+TATTLINE_DEF_VIRT(TGraph2D)+TATTFILL_DEF_VIRT(TGraph2D)+TATTMARKER_DEF_VIRT(TGraph2D)+TOBJECT_DEF_VIRT(TGraph2D)+DELETABLE_DEF_VIRT(TGraph2D)+TGRAPH2D_DEF_VIRT(TGraph2D)+TGRAPH2D_DEF_NONVIRT(TGraph2D)+TGRAPH2D_DEF_ACCESSOR(TGraph2D)+
+ csrc/HROOTHistTGraph2D.h view
@@ -0,0 +1,102 @@++#ifdef __cplusplus+extern "C" {+#endif++#pragma once+++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"++#include "HROOTCoreTAttLine.h"++#include "HROOTCoreTAttFill.h"++#include "HROOTCoreTAttMarker.h"++#include "HROOTCoreTObject.h"++#include "STDDeletable.h"++#include "HROOT-coreType.h"+++#define TGRAPH2D_DECL_VIRT(Type) \+void Type##_SetN ( Type##_p p, int n );\+void Type##_SetPointXYZ ( Type##_p p, int i, double x, double y, double z );+++#define TGRAPH2D_DECL_NONVIRT(Type) \+Type##_p Type##_newTGraph2D_ (  );\+Type##_p Type##_newTGraph2D ( int n, double* x, double* y, double* z );\+TAxis_p Type##_tGraph2D_GetXaxis ( Type##_p p );\+TAxis_p Type##_tGraph2D_GetYaxis ( Type##_p p );\+TAxis_p Type##_tGraph2D_GetZaxis ( Type##_p p );\+void Type##_tGraph2D_SetMaximum ( Type##_p p, double x );\+void Type##_tGraph2D_SetMinimum ( Type##_p p, double x );+++#define TGRAPH2D_DECL_ACCESSOR(Type) \++++#define TGRAPH2D_DEF_VIRT(Type) \+void Type##_SetN ( Type##_p p, int n ) {\+((TYPECASTMETHOD(Type, SetN, TGraph2D))(p))->Set(n);\+}\+\+void Type##_SetPointXYZ ( Type##_p p, int i, double x, double y, double z ) {\+((TYPECASTMETHOD(Type, SetPointXYZ, TGraph2D))(p))->SetPoint(i, x, y, z);\+}+++#define TGRAPH2D_DEF_NONVIRT(Type) \+Type##_p Type##_newTGraph2D_ (  ) {\+Type* newp=new Type();return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}\+\+Type##_p Type##_newTGraph2D ( int n, double* x, double* y, double* z ) {\+Type* newp=new Type(n, x, y, z);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}\+\+TAxis_p Type##_tGraph2D_GetXaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tGraph2D_GetXaxis, TGraph2D))(p))->GetXaxis());\+}\+\+TAxis_p Type##_tGraph2D_GetYaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tGraph2D_GetYaxis, TGraph2D))(p))->GetYaxis());\+}\+\+TAxis_p Type##_tGraph2D_GetZaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tGraph2D_GetZaxis, TGraph2D))(p))->GetZaxis());\+}\+\+void Type##_tGraph2D_SetMaximum ( Type##_p p, double x ) {\+((TYPECASTMETHOD(Type, tGraph2D_SetMaximum, TGraph2D))(p))->SetMaximum(x);\+}\+\+void Type##_tGraph2D_SetMinimum ( Type##_p p, double x ) {\+((TYPECASTMETHOD(Type, tGraph2D_SetMinimum, TGraph2D))(p))->SetMinimum(x);\+}+++#define TGRAPH2D_DEF_ACCESSOR(Type) \++++TNAMED_DECL_VIRT(TGraph2D)+TATTLINE_DECL_VIRT(TGraph2D)+TATTFILL_DECL_VIRT(TGraph2D)+TATTMARKER_DECL_VIRT(TGraph2D)+TOBJECT_DECL_VIRT(TGraph2D)+DELETABLE_DECL_VIRT(TGraph2D)+TGRAPH2D_DECL_VIRT(TGraph2D)+TGRAPH2D_DECL_NONVIRT(TGraph2D)+TGRAPH2D_DECL_ACCESSOR(TGraph2D)++#ifdef __cplusplus+}+#endif+
csrc/HROOTHistTGraphAsymmErrors.cpp view
@@ -1,17 +1,20 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTGraph.h"+ #include "TGraphAsymmErrors.h"-#include "HROOTHistTGraphAsymmErrors.h" +#include "HROOTHistTGraphAsymmErrors.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TGRAPH_DEF_VIRT(TGraphAsymmErrors) TNAMED_DEF_VIRT(TGraphAsymmErrors)@@ -20,8 +23,7 @@ TATTMARKER_DEF_VIRT(TGraphAsymmErrors) TOBJECT_DEF_VIRT(TGraphAsymmErrors) DELETABLE_DEF_VIRT(TGraphAsymmErrors)- TGRAPHASYMMERRORS_DEF_VIRT(TGraphAsymmErrors)- TGRAPHASYMMERRORS_DEF_NONVIRT(TGraphAsymmErrors)+TGRAPHASYMMERRORS_DEF_ACCESSOR(TGraphAsymmErrors) 
csrc/HROOTHistTGraphAsymmErrors.h view
@@ -1,55 +1,66 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TGraphAsymmErrors__-#define __HROOT_HIST__TGraphAsymmErrors__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTGraph.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h" -#undef TGRAPHASYMMERRORS_DECL_VIRT +#include "STDDeletable.h"++ #define TGRAPHASYMMERRORS_DECL_VIRT(Type) \+void Type##_SetPointErrorA ( Type##_p p, int i, double exl, double exh, double eyl, double eyh );  -#undef TGRAPHASYMMERRORS_DECL_NONVIRT  #define TGRAPHASYMMERRORS_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTGraphAsymmErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh )+Type##_p Type##_newTGraphAsymmErrors ( int n, double* x, double* y, double* exl, double* exh, double* eyl, double* eyh ); -#undef TGRAPHASYMMERRORS_DEF_VIRT-#define TGRAPHASYMMERRORS_DEF_VIRT(Type)\ +#define TGRAPHASYMMERRORS_DECL_ACCESSOR(Type) \ -#undef TGRAPHASYMMERRORS_DEF_NONVIRT-#define TGRAPHASYMMERRORS_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTGraphAsymmErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh )\-{\-Type * newp = new Type (n, x, y, exl, exh, eyl, eyh); \-return to_nonconst<Type ## _t, Type >(newp);\+++#define TGRAPHASYMMERRORS_DEF_VIRT(Type) \+void Type##_SetPointErrorA ( Type##_p p, int i, double exl, double exh, double eyl, double eyh ) {\+((TYPECASTMETHOD(Type, SetPointErrorA, TGraphAsymmErrors))(p))->SetPointError(i, exl, exh, eyl, eyh);\ } -TGRAPH_DECL_VIRT(TGraphAsymmErrors);-TNAMED_DECL_VIRT(TGraphAsymmErrors);-TATTLINE_DECL_VIRT(TGraphAsymmErrors);-TATTFILL_DECL_VIRT(TGraphAsymmErrors);-TATTMARKER_DECL_VIRT(TGraphAsymmErrors);-TOBJECT_DECL_VIRT(TGraphAsymmErrors);-DELETABLE_DECL_VIRT(TGraphAsymmErrors); +#define TGRAPHASYMMERRORS_DEF_NONVIRT(Type) \+Type##_p Type##_newTGraphAsymmErrors ( int n, double* x, double* y, double* exl, double* exh, double* eyl, double* eyh ) {\+Type* newp=new Type(n, x, y, exl, exh, eyl, eyh);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+} -TGRAPHASYMMERRORS_DECL_VIRT(TGraphAsymmErrors); +#define TGRAPHASYMMERRORS_DEF_ACCESSOR(Type) \ -TGRAPHASYMMERRORS_DECL_NONVIRT(TGraphAsymmErrors);  -#endif // __HROOT_HIST__TGraphAsymmErrors__+TGRAPH_DECL_VIRT(TGraphAsymmErrors)+TNAMED_DECL_VIRT(TGraphAsymmErrors)+TATTLINE_DECL_VIRT(TGraphAsymmErrors)+TATTFILL_DECL_VIRT(TGraphAsymmErrors)+TATTMARKER_DECL_VIRT(TGraphAsymmErrors)+TOBJECT_DECL_VIRT(TGraphAsymmErrors)+DELETABLE_DECL_VIRT(TGraphAsymmErrors)+TGRAPHASYMMERRORS_DECL_VIRT(TGraphAsymmErrors)+TGRAPHASYMMERRORS_DECL_NONVIRT(TGraphAsymmErrors)+TGRAPHASYMMERRORS_DECL_ACCESSOR(TGraphAsymmErrors)  #ifdef __cplusplus }
csrc/HROOTHistTGraphBentErrors.cpp view
@@ -1,17 +1,20 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTGraph.h"+ #include "TGraphBentErrors.h"-#include "HROOTHistTGraphBentErrors.h" +#include "HROOTHistTGraphBentErrors.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TGRAPH_DEF_VIRT(TGraphBentErrors) TNAMED_DEF_VIRT(TGraphBentErrors)@@ -20,8 +23,7 @@ TATTMARKER_DEF_VIRT(TGraphBentErrors) TOBJECT_DEF_VIRT(TGraphBentErrors) DELETABLE_DEF_VIRT(TGraphBentErrors)- TGRAPHBENTERRORS_DEF_VIRT(TGraphBentErrors)- TGRAPHBENTERRORS_DEF_NONVIRT(TGraphBentErrors)+TGRAPHBENTERRORS_DEF_ACCESSOR(TGraphBentErrors) 
csrc/HROOTHistTGraphBentErrors.h view
@@ -1,55 +1,64 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TGraphBentErrors__-#define __HROOT_HIST__TGraphBentErrors__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTGraph.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h" -#undef TGRAPHBENTERRORS_DECL_VIRT +#include "STDDeletable.h"++ #define TGRAPHBENTERRORS_DECL_VIRT(Type) \  -#undef TGRAPHBENTERRORS_DECL_NONVIRT + #define TGRAPHBENTERRORS_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTGraphBentErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd )+Type##_p Type##_newTGraphBentErrors ( int n, double* x, double* y, double* exl, double* exh, double* eyl, double* eyh, double* exld, double* exhd, double* eyld, double* eyhd ); -#undef TGRAPHBENTERRORS_DEF_VIRT-#define TGRAPHBENTERRORS_DEF_VIRT(Type)\ +#define TGRAPHBENTERRORS_DECL_ACCESSOR(Type) \ -#undef TGRAPHBENTERRORS_DEF_NONVIRT-#define TGRAPHBENTERRORS_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTGraphBentErrors ( int n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd )\-{\-Type * newp = new Type (n, x, y, exl, exh, eyl, eyh, exld, exhd, eyld, eyhd); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TGRAPH_DECL_VIRT(TGraphBentErrors);-TNAMED_DECL_VIRT(TGraphBentErrors);-TATTLINE_DECL_VIRT(TGraphBentErrors);-TATTFILL_DECL_VIRT(TGraphBentErrors);-TATTMARKER_DECL_VIRT(TGraphBentErrors);-TOBJECT_DECL_VIRT(TGraphBentErrors);-DELETABLE_DECL_VIRT(TGraphBentErrors); +#define TGRAPHBENTERRORS_DEF_VIRT(Type) \ -TGRAPHBENTERRORS_DECL_VIRT(TGraphBentErrors);  -TGRAPHBENTERRORS_DECL_NONVIRT(TGraphBentErrors);+#define TGRAPHBENTERRORS_DEF_NONVIRT(Type) \+Type##_p Type##_newTGraphBentErrors ( int n, double* x, double* y, double* exl, double* exh, double* eyl, double* eyh, double* exld, double* exhd, double* eyld, double* eyhd ) {\+Type* newp=new Type(n, x, y, exl, exh, eyl, eyh, exld, exhd, eyld, eyhd);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__TGraphBentErrors__+#define TGRAPHBENTERRORS_DEF_ACCESSOR(Type) \++++TGRAPH_DECL_VIRT(TGraphBentErrors)+TNAMED_DECL_VIRT(TGraphBentErrors)+TATTLINE_DECL_VIRT(TGraphBentErrors)+TATTFILL_DECL_VIRT(TGraphBentErrors)+TATTMARKER_DECL_VIRT(TGraphBentErrors)+TOBJECT_DECL_VIRT(TGraphBentErrors)+DELETABLE_DECL_VIRT(TGraphBentErrors)+TGRAPHBENTERRORS_DECL_VIRT(TGraphBentErrors)+TGRAPHBENTERRORS_DECL_NONVIRT(TGraphBentErrors)+TGRAPHBENTERRORS_DECL_ACCESSOR(TGraphBentErrors)  #ifdef __cplusplus }
csrc/HROOTHistTGraphErrors.cpp view
@@ -1,17 +1,20 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTGraph.h"+ #include "TGraphErrors.h"-#include "HROOTHistTGraphErrors.h" +#include "HROOTHistTGraphErrors.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TGRAPH_DEF_VIRT(TGraphErrors) TNAMED_DEF_VIRT(TGraphErrors)@@ -20,8 +23,7 @@ TATTMARKER_DEF_VIRT(TGraphErrors) TOBJECT_DEF_VIRT(TGraphErrors) DELETABLE_DEF_VIRT(TGraphErrors)- TGRAPHERRORS_DEF_VIRT(TGraphErrors)- TGRAPHERRORS_DEF_NONVIRT(TGraphErrors)+TGRAPHERRORS_DEF_ACCESSOR(TGraphErrors) 
csrc/HROOTHistTGraphErrors.h view
@@ -1,55 +1,66 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TGraphErrors__-#define __HROOT_HIST__TGraphErrors__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTGraph.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h" -#undef TGRAPHERRORS_DECL_VIRT +#include "STDDeletable.h"++ #define TGRAPHERRORS_DECL_VIRT(Type) \+void Type##_SetPointError ( Type##_p p, int i, double ex, double ey );  -#undef TGRAPHERRORS_DECL_NONVIRT  #define TGRAPHERRORS_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTGraphErrors ( int n, double * x, double * y, double * ex, double * ey )+Type##_p Type##_newTGraphErrors ( int n, double* x, double* y, double* ex, double* ey ); -#undef TGRAPHERRORS_DEF_VIRT-#define TGRAPHERRORS_DEF_VIRT(Type)\ +#define TGRAPHERRORS_DECL_ACCESSOR(Type) \ -#undef TGRAPHERRORS_DEF_NONVIRT-#define TGRAPHERRORS_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTGraphErrors ( int n, double * x, double * y, double * ex, double * ey )\-{\-Type * newp = new Type (n, x, y, ex, ey); \-return to_nonconst<Type ## _t, Type >(newp);\+++#define TGRAPHERRORS_DEF_VIRT(Type) \+void Type##_SetPointError ( Type##_p p, int i, double ex, double ey ) {\+((TYPECASTMETHOD(Type, SetPointError, TGraphErrors))(p))->SetPointError(i, ex, ey);\ } -TGRAPH_DECL_VIRT(TGraphErrors);-TNAMED_DECL_VIRT(TGraphErrors);-TATTLINE_DECL_VIRT(TGraphErrors);-TATTFILL_DECL_VIRT(TGraphErrors);-TATTMARKER_DECL_VIRT(TGraphErrors);-TOBJECT_DECL_VIRT(TGraphErrors);-DELETABLE_DECL_VIRT(TGraphErrors); +#define TGRAPHERRORS_DEF_NONVIRT(Type) \+Type##_p Type##_newTGraphErrors ( int n, double* x, double* y, double* ex, double* ey ) {\+Type* newp=new Type(n, x, y, ex, ey);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+} -TGRAPHERRORS_DECL_VIRT(TGraphErrors); +#define TGRAPHERRORS_DEF_ACCESSOR(Type) \ -TGRAPHERRORS_DECL_NONVIRT(TGraphErrors);  -#endif // __HROOT_HIST__TGraphErrors__+TGRAPH_DECL_VIRT(TGraphErrors)+TNAMED_DECL_VIRT(TGraphErrors)+TATTLINE_DECL_VIRT(TGraphErrors)+TATTFILL_DECL_VIRT(TGraphErrors)+TATTMARKER_DECL_VIRT(TGraphErrors)+TOBJECT_DECL_VIRT(TGraphErrors)+DELETABLE_DECL_VIRT(TGraphErrors)+TGRAPHERRORS_DECL_VIRT(TGraphErrors)+TGRAPHERRORS_DECL_NONVIRT(TGraphErrors)+TGRAPHERRORS_DECL_ACCESSOR(TGraphErrors)  #ifdef __cplusplus }
csrc/HROOTHistTH1.cpp view
@@ -1,25 +1,36 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTCoreTDirectory.h"+ #include "HROOTHistTF1.h"+ #include "HROOTCoreTArrayD.h"+ #include "HROOTHistTAxis.h"+ #include "HROOTCoreTObject.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "TH1.h"-#include "HROOTHistTH1.h" +#include "HROOTHistTH1.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TNAMED_DEF_VIRT(TH1) TATTLINE_DEF_VIRT(TH1)@@ -27,8 +38,7 @@ TATTMARKER_DEF_VIRT(TH1) TOBJECT_DEF_VIRT(TH1) DELETABLE_DEF_VIRT(TH1)- TH1_DEF_VIRT(TH1)- TH1_DEF_NONVIRT(TH1)+TH1_DEF_ACCESSOR(TH1) 
csrc/HROOTHistTH1.h view
@@ -1,766 +1,770 @@-#ifdef __cplusplus-extern "C" { -#endif--#ifndef __HROOT_HIST__TH1__-#define __HROOT_HIST__TH1__--#include "HROOT-histType.h"-#include "HROOTCoreTNamed.h"-#include "HROOTCoreTAttLine.h"-#include "HROOTCoreTAttFill.h"-#include "HROOTCoreTAttMarker.h"-#include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"-#include "HROOT-coreType.h"--#undef TH1_DECL_VIRT -#define TH1_DECL_VIRT(Type) \-void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 ); \-void Type ## _AddBinContent ( Type ## _p p, int bin, double w ); \-double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char* option, double * res ); \-double Type ## _ComputeIntegral ( Type ## _p p ); \-void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir ); \-void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ); \-Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char* option ); \-TH1_p Type ## _DrawNormalized ( Type ## _p p, const char* option, double norm ); \-void Type ## _drawPanelTH1 ( Type ## _p p ); \-int Type ## _BufferEmpty ( Type ## _p p, int action ); \-void Type ## _evalF ( Type ## _p p, TF1_p f1, const char* option ); \-TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char* option ); \-int Type ## _fill1 ( Type ## _p p, double x ); \-int Type ## _fill1w ( Type ## _p p, double x, double w ); \-void Type ## _fillN1 ( Type ## _p p, int ntimes, double * x, double * w, int stride ); \-void Type ## _FillRandom ( Type ## _p p, TH1_p h, int ntimes ); \-int Type ## _FindBin ( Type ## _p p, double x, double y, double z ); \-int Type ## _FindFixBin ( Type ## _p p, double x, double y, double z ); \-int Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int axis ); \-int Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int axis ); \-void Type ## _Fit ( Type ## _p p, TF1_p f1, const char* option, const char* goption, double xmin, double xmax ); \-void Type ## _FitPanelTH1 ( Type ## _p p ); \-int Type ## _getNdivisionA ( Type ## _p p, const char* axis ); \-int Type ## _getAxisColorA ( Type ## _p p, const char* axis ); \-int Type ## _getLabelColorA ( Type ## _p p, const char* axis ); \-int Type ## _getLabelFontA ( Type ## _p p, const char* axis ); \-double Type ## _getLabelOffsetA ( Type ## _p p, const char* axis ); \-double Type ## _getLabelSizeA ( Type ## _p p, const char* axis ); \-int Type ## _getTitleFontA ( Type ## _p p, const char* axis ); \-double Type ## _getTitleOffsetA ( Type ## _p p, const char* axis ); \-double Type ## _getTitleSizeA ( Type ## _p p, const char* axis ); \-double Type ## _getTickLengthA ( Type ## _p p, const char* axis ); \-double Type ## _GetBarOffset ( Type ## _p p ); \-double Type ## _GetBarWidth ( Type ## _p p ); \-int Type ## _GetContour ( Type ## _p p, double * levels ); \-double Type ## _GetContourLevel ( Type ## _p p, int level ); \-double Type ## _GetContourLevelPad ( Type ## _p p, int level ); \-int Type ## _GetBin ( Type ## _p p, int binx, int biny, int binz ); \-double Type ## _GetBinCenter ( Type ## _p p, int bin ); \-double Type ## _GetBinContent1 ( Type ## _p p, int binx ); \-double Type ## _GetBinContent2 ( Type ## _p p, int binx, int biny ); \-double Type ## _GetBinContent3 ( Type ## _p p, int binx, int biny, int binz ); \-double Type ## _GetBinError1 ( Type ## _p p, int binx ); \-double Type ## _GetBinError2 ( Type ## _p p, int binx, int biny ); \-double Type ## _GetBinError3 ( Type ## _p p, int binx, int biny, int binz ); \-double Type ## _GetBinLowEdge ( Type ## _p p, int bin ); \-double Type ## _GetBinWidth ( Type ## _p p, int bin ); \-double Type ## _GetCellContent ( Type ## _p p, int binx, int biny ); \-double Type ## _GetCellError ( Type ## _p p, int binx, int biny ); \-double Type ## _GetEntries ( Type ## _p p ); \-double Type ## _GetEffectiveEntries ( Type ## _p p ); \-TF1_p Type ## _GetFunction ( Type ## _p p, const char* name ); \-int Type ## _GetDimension ( Type ## _p p ); \-double Type ## _GetKurtosis ( Type ## _p p, int axis ); \-void Type ## _GetLowEdge ( Type ## _p p, double * edge ); \-double Type ## _getMaximumTH1 ( Type ## _p p, double maxval ); \-int Type ## _GetMaximumBin ( Type ## _p p ); \-double Type ## _GetMaximumStored ( Type ## _p p ); \-double Type ## _getMinimumTH1 ( Type ## _p p, double minval ); \-int Type ## _GetMinimumBin ( Type ## _p p ); \-double Type ## _GetMinimumStored ( Type ## _p p ); \-double Type ## _GetMean ( Type ## _p p, int axis ); \-double Type ## _GetMeanError ( Type ## _p p, int axis ); \-double Type ## _GetNbinsX ( Type ## _p p ); \-double Type ## _GetNbinsY ( Type ## _p p ); \-double Type ## _GetNbinsZ ( Type ## _p p ); \-int Type ## _getQuantilesTH1 ( Type ## _p p, int nprobSum, double * q, double * pbSum ); \-double Type ## _GetRandom ( Type ## _p p ); \-void Type ## _GetStats ( Type ## _p p, double * stats ); \-double Type ## _GetSumOfWeights ( Type ## _p p ); \-TArrayD_p Type ## _GetSumw2 ( Type ## _p p ); \-int Type ## _GetSumw2N ( Type ## _p p ); \-double Type ## _GetRMS ( Type ## _p p, int axis ); \-double Type ## _GetRMSError ( Type ## _p p, int axis ); \-double Type ## _GetSkewness ( Type ## _p p, int axis ); \-double Type ## _integral1 ( Type ## _p p, int binx1, int binx2, const char* option ); \-double Type ## _interpolate1 ( Type ## _p p, double x ); \-double Type ## _interpolate2 ( Type ## _p p, double x, double y ); \-double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z ); \-double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char* option ); \-void Type ## _LabelsDeflate ( Type ## _p p, const char* axis ); \-void Type ## _LabelsInflate ( Type ## _p p, const char* axis ); \-void Type ## _LabelsOption ( Type ## _p p, const char* option, const char* axis ); \-void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 ); \-void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ); \-void Type ## _PutStats ( Type ## _p p, double * stats ); \-TH1_p Type ## _Rebin ( Type ## _p p, int ngroup, const char* newname, double * xbins ); \-void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis ); \-void Type ## _Rebuild ( Type ## _p p, const char* option ); \-void Type ## _RecursiveRemove ( Type ## _p p, TObject_p obj ); \-void Type ## _Reset ( Type ## _p p, const char* option ); \-void Type ## _ResetStats ( Type ## _p p ); \-void Type ## _Scale ( Type ## _p p, double c1, const char* option ); \-void Type ## _setAxisColorA ( Type ## _p p, int color, const char* axis ); \-void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char* axis ); \-void Type ## _SetBarOffset ( Type ## _p p, double offset ); \-void Type ## _SetBarWidth ( Type ## _p p, double width ); \-void Type ## _setBinContent1 ( Type ## _p p, int bin, double content ); \-void Type ## _setBinContent2 ( Type ## _p p, int binx, int biny, double content ); \-void Type ## _setBinContent3 ( Type ## _p p, int binx, int biny, int binz, double content ); \-void Type ## _setBinError1 ( Type ## _p p, int bin, double error ); \-void Type ## _setBinError2 ( Type ## _p p, int binx, int biny, double error ); \-void Type ## _setBinError3 ( Type ## _p p, int binx, int biny, int binz, double error ); \-void Type ## _setBins1 ( Type ## _p p, int nx, double * xBins ); \-void Type ## _setBins2 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins ); \-void Type ## _setBins3 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins, int nz, double * zBins ); \-void Type ## _SetBinsLength ( Type ## _p p, int bin ); \-void Type ## _SetBuffer ( Type ## _p p, int buffersize, const char* option ); \-void Type ## _SetCellContent ( Type ## _p p, int binx, int biny, double content ); \-void Type ## _SetContent ( Type ## _p p, double * content ); \-void Type ## _SetContour ( Type ## _p p, int nlevels, double * levels ); \-void Type ## _SetContourLevel ( Type ## _p p, int level, double value ); \-void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir ); \-void Type ## _SetEntries ( Type ## _p p, double n ); \-void Type ## _SetError ( Type ## _p p, double * error ); \-void Type ## _setLabelColorA ( Type ## _p p, int color, const char* axis ); \-void Type ## _setLabelSizeA ( Type ## _p p, double size, const char* axis ); \-void Type ## _setLabelFontA ( Type ## _p p, int font, const char* axis ); \-void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char* axis ); \-void Type ## _SetMaximum ( Type ## _p p, double maximum ); \-void Type ## _SetMinimum ( Type ## _p p, double minimum ); \-void Type ## _SetNormFactor ( Type ## _p p, double factor ); \-void Type ## _SetStats ( Type ## _p p, int stats ); \-void Type ## _SetOption ( Type ## _p p, const char* option ); \-void Type ## _SetXTitle ( Type ## _p p, const char* title ); \-void Type ## _SetYTitle ( Type ## _p p, const char* title ); \-void Type ## _SetZTitle ( Type ## _p p, const char* title ); \-TH1_p Type ## _ShowBackground ( Type ## _p p, int niter, const char* option ); \-int Type ## _ShowPeaks ( Type ## _p p, double sigma, const char* option, double threshold ); \-void Type ## _Smooth ( Type ## _p p, int ntimes, const char* option ); \-void Type ## _Sumw2 ( Type ## _p p )--#undef TH1_DECL_NONVIRT -#define TH1_DECL_NONVIRT(Type) \-Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 ); \-int Type ## _tH1GetBufferLength ( Type ## _p p ); \-int Type ## _tH1GetBufferSize ( Type ## _p p ); \-int Type ## _tH1GetDefaultBufferSize (  ); \-int Type ## _tH1GetDefaultSumw2 (  ); \-TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p ); \-int Type ## _tH1IsBinOverflow ( Type ## _p p, int bin ); \-int Type ## _tH1IsBinUnderflow ( Type ## _p p, int bin ); \-void Type ## _tH1SetDefaultBufferSize ( int buffersize ); \-void Type ## _tH1SetDefaultSumw2 ( int sumw2 ); \-void Type ## _tH1SmoothArray ( int NN, double * XX, int ntimes ); \-void Type ## _tH1StatOverflows ( int flag ); \-void Type ## _tH1UseCurrentStyle ( Type ## _p p )--#undef TH1_DEF_VIRT-#define TH1_DEF_VIRT(Type)\-void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 )\-{\-TYPECASTMETHOD(Type,Add,TH1)(p)->Add(to_nonconst<TH1,TH1_t>(h1), c1);\-}\-void Type ## _AddBinContent ( Type ## _p p, int bin, double w )\-{\-TYPECASTMETHOD(Type,AddBinContent,TH1)(p)->AddBinContent(bin, w);\-}\-double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char* option, double * res )\-{\-return TYPECASTMETHOD(Type,Chi2Test,TH1)(p)->Chi2Test(to_nonconst<TH1,TH1_t>(h2), option, res);\-}\-double Type ## _ComputeIntegral ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,ComputeIntegral,TH1)(p)->ComputeIntegral();\-}\-void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir )\-{\-TYPECASTMETHOD(Type,DirectoryAutoAdd,TH1)(p)->DirectoryAutoAdd(to_nonconst<TDirectory,TDirectory_t>(dir));\-}\-void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option )\-{\-TYPECASTMETHOD(Type,Divide,TH1)(p)->Divide(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\-}\-Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char* option )\-{\-return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,drawCopyTH1,TH1)(p)->DrawCopy(option)) ;\-}\-TH1_p Type ## _DrawNormalized ( Type ## _p p, const char* option, double norm )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,DrawNormalized,TH1)(p)->DrawNormalized(option, norm));\-}\-void Type ## _drawPanelTH1 ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,drawPanelTH1,TH1)(p)->DrawPanel();\-}\-int Type ## _BufferEmpty ( Type ## _p p, int action )\-{\-return TYPECASTMETHOD(Type,BufferEmpty,TH1)(p)->BufferEmpty(action);\-}\-void Type ## _evalF ( Type ## _p p, TF1_p f1, const char* option )\-{\-TYPECASTMETHOD(Type,evalF,TH1)(p)->Eval(to_nonconst<TF1,TF1_t>(f1), option);\-}\-TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char* option )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,FFT,TH1)(p)->FFT(to_nonconst<TH1,TH1_t>(h_output), option));\-}\-int Type ## _fill1 ( Type ## _p p, double x )\-{\-return TYPECASTMETHOD(Type,fill1,TH1)(p)->Fill(x);\-}\-int Type ## _fill1w ( Type ## _p p, double x, double w )\-{\-return TYPECASTMETHOD(Type,fill1w,TH1)(p)->Fill(x, w);\-}\-void Type ## _fillN1 ( Type ## _p p, int ntimes, double * x, double * w, int stride )\-{\-TYPECASTMETHOD(Type,fillN1,TH1)(p)->FillN(ntimes, x, w, stride);\-}\-void Type ## _FillRandom ( Type ## _p p, TH1_p h, int ntimes )\-{\-TYPECASTMETHOD(Type,FillRandom,TH1)(p)->FillRandom(to_nonconst<TH1,TH1_t>(h), ntimes);\-}\-int Type ## _FindBin ( Type ## _p p, double x, double y, double z )\-{\-return TYPECASTMETHOD(Type,FindBin,TH1)(p)->FindBin(x, y, z);\-}\-int Type ## _FindFixBin ( Type ## _p p, double x, double y, double z )\-{\-return TYPECASTMETHOD(Type,FindFixBin,TH1)(p)->FindFixBin(x, y, z);\-}\-int Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int axis )\-{\-return TYPECASTMETHOD(Type,FindFirstBinAbove,TH1)(p)->FindFirstBinAbove(threshold, axis);\-}\-int Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int axis )\-{\-return TYPECASTMETHOD(Type,FindLastBinAbove,TH1)(p)->FindLastBinAbove(threshold, axis);\-}\-void Type ## _Fit ( Type ## _p p, TF1_p f1, const char* option, const char* goption, double xmin, double xmax )\-{\-TYPECASTMETHOD(Type,Fit,TH1)(p)->Fit(to_nonconst<TF1,TF1_t>(f1), option, goption, xmin, xmax);\-}\-void Type ## _FitPanelTH1 ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,FitPanelTH1,TH1)(p)->FitPanel();\-}\-int Type ## _getNdivisionA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getNdivisionA,TH1)(p)->GetNdivisions(axis);\-}\-int Type ## _getAxisColorA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getAxisColorA,TH1)(p)->GetAxisColor(axis);\-}\-int Type ## _getLabelColorA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getLabelColorA,TH1)(p)->GetLabelColor(axis);\-}\-int Type ## _getLabelFontA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getLabelFontA,TH1)(p)->GetLabelFont(axis);\-}\-double Type ## _getLabelOffsetA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getLabelOffsetA,TH1)(p)->GetLabelOffset(axis);\-}\-double Type ## _getLabelSizeA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getLabelSizeA,TH1)(p)->GetLabelSize(axis);\-}\-int Type ## _getTitleFontA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getTitleFontA,TH1)(p)->GetTitleFont(axis);\-}\-double Type ## _getTitleOffsetA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getTitleOffsetA,TH1)(p)->GetTitleOffset(axis);\-}\-double Type ## _getTitleSizeA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getTitleSizeA,TH1)(p)->GetTitleSize(axis);\-}\-double Type ## _getTickLengthA ( Type ## _p p, const char* axis )\-{\-return TYPECASTMETHOD(Type,getTickLengthA,TH1)(p)->GetTickLength(axis);\-}\-double Type ## _GetBarOffset ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetBarOffset,TH1)(p)->GetBarOffset();\-}\-double Type ## _GetBarWidth ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetBarWidth,TH1)(p)->GetBarWidth();\-}\-int Type ## _GetContour ( Type ## _p p, double * levels )\-{\-return TYPECASTMETHOD(Type,GetContour,TH1)(p)->GetContour(levels);\-}\-double Type ## _GetContourLevel ( Type ## _p p, int level )\-{\-return TYPECASTMETHOD(Type,GetContourLevel,TH1)(p)->GetContourLevel(level);\-}\-double Type ## _GetContourLevelPad ( Type ## _p p, int level )\-{\-return TYPECASTMETHOD(Type,GetContourLevelPad,TH1)(p)->GetContourLevelPad(level);\-}\-int Type ## _GetBin ( Type ## _p p, int binx, int biny, int binz )\-{\-return TYPECASTMETHOD(Type,GetBin,TH1)(p)->GetBin(binx, biny, binz);\-}\-double Type ## _GetBinCenter ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetBinCenter,TH1)(p)->GetBinCenter(bin);\-}\-double Type ## _GetBinContent1 ( Type ## _p p, int binx )\-{\-return TYPECASTMETHOD(Type,GetBinContent1,TH1)(p)->GetBinContent(binx);\-}\-double Type ## _GetBinContent2 ( Type ## _p p, int binx, int biny )\-{\-return TYPECASTMETHOD(Type,GetBinContent2,TH1)(p)->GetBinContent(binx, biny);\-}\-double Type ## _GetBinContent3 ( Type ## _p p, int binx, int biny, int binz )\-{\-return TYPECASTMETHOD(Type,GetBinContent3,TH1)(p)->GetBinContent(binx, biny, binz);\-}\-double Type ## _GetBinError1 ( Type ## _p p, int binx )\-{\-return TYPECASTMETHOD(Type,GetBinError1,TH1)(p)->GetBinError(binx);\-}\-double Type ## _GetBinError2 ( Type ## _p p, int binx, int biny )\-{\-return TYPECASTMETHOD(Type,GetBinError2,TH1)(p)->GetBinError(binx, biny);\-}\-double Type ## _GetBinError3 ( Type ## _p p, int binx, int biny, int binz )\-{\-return TYPECASTMETHOD(Type,GetBinError3,TH1)(p)->GetBinError(binx, biny, binz);\-}\-double Type ## _GetBinLowEdge ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetBinLowEdge,TH1)(p)->GetBinLowEdge(bin);\-}\-double Type ## _GetBinWidth ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,GetBinWidth,TH1)(p)->GetBinWidth(bin);\-}\-double Type ## _GetCellContent ( Type ## _p p, int binx, int biny )\-{\-return TYPECASTMETHOD(Type,GetCellContent,TH1)(p)->GetCellContent(binx, biny);\-}\-double Type ## _GetCellError ( Type ## _p p, int binx, int biny )\-{\-return TYPECASTMETHOD(Type,GetCellError,TH1)(p)->GetCellError(binx, biny);\-}\-double Type ## _GetEntries ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetEntries,TH1)(p)->GetEntries();\-}\-double Type ## _GetEffectiveEntries ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetEffectiveEntries,TH1)(p)->GetEffectiveEntries();\-}\-TF1_p Type ## _GetFunction ( Type ## _p p, const char* name )\-{\-return to_nonconst<TF1_t,TF1>((TF1*)TYPECASTMETHOD(Type,GetFunction,TH1)(p)->GetFunction(name));\-}\-int Type ## _GetDimension ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetDimension,TH1)(p)->GetDimension();\-}\-double Type ## _GetKurtosis ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetKurtosis,TH1)(p)->GetKurtosis(axis);\-}\-void Type ## _GetLowEdge ( Type ## _p p, double * edge )\-{\-TYPECASTMETHOD(Type,GetLowEdge,TH1)(p)->GetLowEdge(edge);\-}\-double Type ## _getMaximumTH1 ( Type ## _p p, double maxval )\-{\-return TYPECASTMETHOD(Type,getMaximumTH1,TH1)(p)->GetMaximum(maxval);\-}\-int Type ## _GetMaximumBin ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetMaximumBin,TH1)(p)->GetMaximumBin();\-}\-double Type ## _GetMaximumStored ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetMaximumStored,TH1)(p)->GetMaximumStored();\-}\-double Type ## _getMinimumTH1 ( Type ## _p p, double minval )\-{\-return TYPECASTMETHOD(Type,getMinimumTH1,TH1)(p)->GetMinimum(minval);\-}\-int Type ## _GetMinimumBin ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetMinimumBin,TH1)(p)->GetMinimumBin();\-}\-double Type ## _GetMinimumStored ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetMinimumStored,TH1)(p)->GetMinimumStored();\-}\-double Type ## _GetMean ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetMean,TH1)(p)->GetMean(axis);\-}\-double Type ## _GetMeanError ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetMeanError,TH1)(p)->GetMeanError(axis);\-}\-double Type ## _GetNbinsX ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNbinsX,TH1)(p)->GetNbinsX();\-}\-double Type ## _GetNbinsY ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNbinsY,TH1)(p)->GetNbinsY();\-}\-double Type ## _GetNbinsZ ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetNbinsZ,TH1)(p)->GetNbinsZ();\-}\-int Type ## _getQuantilesTH1 ( Type ## _p p, int nprobSum, double * q, double * pbSum )\-{\-return TYPECASTMETHOD(Type,getQuantilesTH1,TH1)(p)->GetQuantiles(nprobSum, q, pbSum);\-}\-double Type ## _GetRandom ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetRandom,TH1)(p)->GetRandom();\-}\-void Type ## _GetStats ( Type ## _p p, double * stats )\-{\-TYPECASTMETHOD(Type,GetStats,TH1)(p)->GetStats(stats);\-}\-double Type ## _GetSumOfWeights ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetSumOfWeights,TH1)(p)->GetSumOfWeights();\-}\-TArrayD_p Type ## _GetSumw2 ( Type ## _p p )\-{\-return to_nonconst<TArrayD_t,TArrayD>((TArrayD*)TYPECASTMETHOD(Type,GetSumw2,TH1)(p)->GetSumw2());\-}\-int Type ## _GetSumw2N ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,GetSumw2N,TH1)(p)->GetSumw2N();\-}\-double Type ## _GetRMS ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetRMS,TH1)(p)->GetRMS(axis);\-}\-double Type ## _GetRMSError ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetRMSError,TH1)(p)->GetRMSError(axis);\-}\-double Type ## _GetSkewness ( Type ## _p p, int axis )\-{\-return TYPECASTMETHOD(Type,GetSkewness,TH1)(p)->GetSkewness(axis);\-}\-double Type ## _integral1 ( Type ## _p p, int binx1, int binx2, const char* option )\-{\-return TYPECASTMETHOD(Type,integral1,TH1)(p)->Integral(binx1, binx2, option);\-}\-double Type ## _interpolate1 ( Type ## _p p, double x )\-{\-return TYPECASTMETHOD(Type,interpolate1,TH1)(p)->Interpolate(x);\-}\-double Type ## _interpolate2 ( Type ## _p p, double x, double y )\-{\-return TYPECASTMETHOD(Type,interpolate2,TH1)(p)->Interpolate(x, y);\-}\-double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z )\-{\-return TYPECASTMETHOD(Type,interpolate3,TH1)(p)->Interpolate(x, y, z);\-}\-double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char* option )\-{\-return TYPECASTMETHOD(Type,KolmogorovTest,TH1)(p)->KolmogorovTest(to_nonconst<TH1,TH1_t>(h2), option);\-}\-void Type ## _LabelsDeflate ( Type ## _p p, const char* axis )\-{\-TYPECASTMETHOD(Type,LabelsDeflate,TH1)(p)->LabelsDeflate(axis);\-}\-void Type ## _LabelsInflate ( Type ## _p p, const char* axis )\-{\-TYPECASTMETHOD(Type,LabelsInflate,TH1)(p)->LabelsInflate(axis);\-}\-void Type ## _LabelsOption ( Type ## _p p, const char* option, const char* axis )\-{\-TYPECASTMETHOD(Type,LabelsOption,TH1)(p)->LabelsOption(option, axis);\-}\-void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 )\-{\-TYPECASTMETHOD(Type,multiflyF,TH1)(p)->Multiply(to_nonconst<TF1,TF1_t>(h1), c1);\-}\-void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option )\-{\-TYPECASTMETHOD(Type,Multiply,TH1)(p)->Multiply(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\-}\-void Type ## _PutStats ( Type ## _p p, double * stats )\-{\-TYPECASTMETHOD(Type,PutStats,TH1)(p)->PutStats(stats);\-}\-TH1_p Type ## _Rebin ( Type ## _p p, int ngroup, const char* newname, double * xbins )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,Rebin,TH1)(p)->Rebin(ngroup, newname, xbins));\-}\-void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis )\-{\-TYPECASTMETHOD(Type,RebinAxis,TH1)(p)->RebinAxis(x, to_nonconst<TAxis,TAxis_t>(axis));\-}\-void Type ## _Rebuild ( Type ## _p p, const char* option )\-{\-TYPECASTMETHOD(Type,Rebuild,TH1)(p)->Rebuild(option);\-}\-void Type ## _RecursiveRemove ( Type ## _p p, TObject_p obj )\-{\-TYPECASTMETHOD(Type,RecursiveRemove,TH1)(p)->RecursiveRemove(to_nonconst<TObject,TObject_t>(obj));\-}\-void Type ## _Reset ( Type ## _p p, const char* option )\-{\-TYPECASTMETHOD(Type,Reset,TH1)(p)->Reset(option);\-}\-void Type ## _ResetStats ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,ResetStats,TH1)(p)->ResetStats();\-}\-void Type ## _Scale ( Type ## _p p, double c1, const char* option )\-{\-TYPECASTMETHOD(Type,Scale,TH1)(p)->Scale(c1, option);\-}\-void Type ## _setAxisColorA ( Type ## _p p, int color, const char* axis )\-{\-TYPECASTMETHOD(Type,setAxisColorA,TH1)(p)->SetAxisColor(color, axis);\-}\-void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char* axis )\-{\-TYPECASTMETHOD(Type,SetAxisRange,TH1)(p)->SetAxisRange(xmin, xmax, axis);\-}\-void Type ## _SetBarOffset ( Type ## _p p, double offset )\-{\-TYPECASTMETHOD(Type,SetBarOffset,TH1)(p)->SetBarOffset(offset);\-}\-void Type ## _SetBarWidth ( Type ## _p p, double width )\-{\-TYPECASTMETHOD(Type,SetBarWidth,TH1)(p)->SetBarWidth(width);\-}\-void Type ## _setBinContent1 ( Type ## _p p, int bin, double content )\-{\-TYPECASTMETHOD(Type,setBinContent1,TH1)(p)->SetBinContent(bin, content);\-}\-void Type ## _setBinContent2 ( Type ## _p p, int binx, int biny, double content )\-{\-TYPECASTMETHOD(Type,setBinContent2,TH1)(p)->SetBinContent(binx, biny, content);\-}\-void Type ## _setBinContent3 ( Type ## _p p, int binx, int biny, int binz, double content )\-{\-TYPECASTMETHOD(Type,setBinContent3,TH1)(p)->SetBinContent(binx, biny, binz, content);\-}\-void Type ## _setBinError1 ( Type ## _p p, int bin, double error )\-{\-TYPECASTMETHOD(Type,setBinError1,TH1)(p)->SetBinError(bin, error);\-}\-void Type ## _setBinError2 ( Type ## _p p, int binx, int biny, double error )\-{\-TYPECASTMETHOD(Type,setBinError2,TH1)(p)->SetBinError(binx, biny, error);\-}\-void Type ## _setBinError3 ( Type ## _p p, int binx, int biny, int binz, double error )\-{\-TYPECASTMETHOD(Type,setBinError3,TH1)(p)->SetBinError(binx, biny, binz, error);\-}\-void Type ## _setBins1 ( Type ## _p p, int nx, double * xBins )\-{\-TYPECASTMETHOD(Type,setBins1,TH1)(p)->SetBins(nx, xBins);\-}\-void Type ## _setBins2 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins )\-{\-TYPECASTMETHOD(Type,setBins2,TH1)(p)->SetBins(nx, xBins, ny, yBins);\-}\-void Type ## _setBins3 ( Type ## _p p, int nx, double * xBins, int ny, double * yBins, int nz, double * zBins )\-{\-TYPECASTMETHOD(Type,setBins3,TH1)(p)->SetBins(nx, xBins, ny, yBins, nz, zBins);\-}\-void Type ## _SetBinsLength ( Type ## _p p, int bin )\-{\-TYPECASTMETHOD(Type,SetBinsLength,TH1)(p)->SetBinsLength(bin);\-}\-void Type ## _SetBuffer ( Type ## _p p, int buffersize, const char* option )\-{\-TYPECASTMETHOD(Type,SetBuffer,TH1)(p)->SetBuffer(buffersize, option);\-}\-void Type ## _SetCellContent ( Type ## _p p, int binx, int biny, double content )\-{\-TYPECASTMETHOD(Type,SetCellContent,TH1)(p)->SetCellContent(binx, biny, content);\-}\-void Type ## _SetContent ( Type ## _p p, double * content )\-{\-TYPECASTMETHOD(Type,SetContent,TH1)(p)->SetContent(content);\-}\-void Type ## _SetContour ( Type ## _p p, int nlevels, double * levels )\-{\-TYPECASTMETHOD(Type,SetContour,TH1)(p)->SetContour(nlevels, levels);\-}\-void Type ## _SetContourLevel ( Type ## _p p, int level, double value )\-{\-TYPECASTMETHOD(Type,SetContourLevel,TH1)(p)->SetContourLevel(level, value);\-}\-void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir )\-{\-TYPECASTMETHOD(Type,SetDirectory,TH1)(p)->SetDirectory(to_nonconst<TDirectory,TDirectory_t>(dir));\-}\-void Type ## _SetEntries ( Type ## _p p, double n )\-{\-TYPECASTMETHOD(Type,SetEntries,TH1)(p)->SetEntries(n);\-}\-void Type ## _SetError ( Type ## _p p, double * error )\-{\-TYPECASTMETHOD(Type,SetError,TH1)(p)->SetError(error);\-}\-void Type ## _setLabelColorA ( Type ## _p p, int color, const char* axis )\-{\-TYPECASTMETHOD(Type,setLabelColorA,TH1)(p)->SetLabelColor(color, axis);\-}\-void Type ## _setLabelSizeA ( Type ## _p p, double size, const char* axis )\-{\-TYPECASTMETHOD(Type,setLabelSizeA,TH1)(p)->SetLabelSize(size, axis);\-}\-void Type ## _setLabelFontA ( Type ## _p p, int font, const char* axis )\-{\-TYPECASTMETHOD(Type,setLabelFontA,TH1)(p)->SetLabelFont(font, axis);\-}\-void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char* axis )\-{\-TYPECASTMETHOD(Type,setLabelOffsetA,TH1)(p)->SetLabelOffset(offset, axis);\-}\-void Type ## _SetMaximum ( Type ## _p p, double maximum )\-{\-TYPECASTMETHOD(Type,SetMaximum,TH1)(p)->SetMaximum(maximum);\-}\-void Type ## _SetMinimum ( Type ## _p p, double minimum )\-{\-TYPECASTMETHOD(Type,SetMinimum,TH1)(p)->SetMinimum(minimum);\-}\-void Type ## _SetNormFactor ( Type ## _p p, double factor )\-{\-TYPECASTMETHOD(Type,SetNormFactor,TH1)(p)->SetNormFactor(factor);\-}\-void Type ## _SetStats ( Type ## _p p, int stats )\-{\-TYPECASTMETHOD(Type,SetStats,TH1)(p)->SetStats(stats);\-}\-void Type ## _SetOption ( Type ## _p p, const char* option )\-{\-TYPECASTMETHOD(Type,SetOption,TH1)(p)->SetOption(option);\-}\-void Type ## _SetXTitle ( Type ## _p p, const char* title )\-{\-TYPECASTMETHOD(Type,SetXTitle,TH1)(p)->SetXTitle(title);\-}\-void Type ## _SetYTitle ( Type ## _p p, const char* title )\-{\-TYPECASTMETHOD(Type,SetYTitle,TH1)(p)->SetYTitle(title);\-}\-void Type ## _SetZTitle ( Type ## _p p, const char* title )\-{\-TYPECASTMETHOD(Type,SetZTitle,TH1)(p)->SetZTitle(title);\-}\-TH1_p Type ## _ShowBackground ( Type ## _p p, int niter, const char* option )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,ShowBackground,TH1)(p)->ShowBackground(niter, option));\-}\-int Type ## _ShowPeaks ( Type ## _p p, double sigma, const char* option, double threshold )\-{\-return TYPECASTMETHOD(Type,ShowPeaks,TH1)(p)->ShowPeaks(sigma, option, threshold);\-}\-void Type ## _Smooth ( Type ## _p p, int ntimes, const char* option )\-{\-TYPECASTMETHOD(Type,Smooth,TH1)(p)->Smooth(ntimes, option);\-}\-void Type ## _Sumw2 ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,Sumw2,TH1)(p)->Sumw2();\-}--#undef TH1_DEF_NONVIRT-#define TH1_DEF_NONVIRT(Type)\-Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 )\-{\-return to_nonconst<Type ## _t, Type>((Type *)TYPECASTMETHOD(Type,tH1GetAsymmetry,TH1)(p)->GetAsymmetry(to_nonconst<TH1,TH1_t>(h2), c2, dc2)) ;\-}\-int Type ## _tH1GetBufferLength ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tH1GetBufferLength,TH1)(p)->GetBufferLength();\-}\-int Type ## _tH1GetBufferSize ( Type ## _p p )\-{\-return TYPECASTMETHOD(Type,tH1GetBufferSize,TH1)(p)->GetBufferSize();\-}\-int Type ## _tH1GetDefaultBufferSize (  )\-{\-return TH1::GetDefaultBufferSize();\-}\-int Type ## _tH1GetDefaultSumw2 (  )\-{\-return TH1::GetDefaultSumw2();\-}\-TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p )\-{\-return to_nonconst<TDirectory_t,TDirectory>((TDirectory*)TYPECASTMETHOD(Type,tH1GetDirectory,TH1)(p)->GetDirectory());\-}\-int Type ## _tH1IsBinOverflow ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,tH1IsBinOverflow,TH1)(p)->IsBinOverflow(bin);\-}\-int Type ## _tH1IsBinUnderflow ( Type ## _p p, int bin )\-{\-return TYPECASTMETHOD(Type,tH1IsBinUnderflow,TH1)(p)->IsBinUnderflow(bin);\-}\-void Type ## _tH1SetDefaultBufferSize ( int buffersize )\-{\-TH1::SetDefaultBufferSize(buffersize);\-}\-void Type ## _tH1SetDefaultSumw2 ( int sumw2 )\-{\-TH1::SetDefaultSumw2(sumw2);\-}\-void Type ## _tH1SmoothArray ( int NN, double * XX, int ntimes )\-{\-TH1::SmoothArray(NN, XX, ntimes);\-}\-void Type ## _tH1StatOverflows ( int flag )\-{\-TH1::StatOverflows(flag);\-}\-void Type ## _tH1UseCurrentStyle ( Type ## _p p )\-{\-TYPECASTMETHOD(Type,tH1UseCurrentStyle,TH1)(p)->UseCurrentStyle();\-}--TNAMED_DECL_VIRT(TH1);-TATTLINE_DECL_VIRT(TH1);-TATTFILL_DECL_VIRT(TH1);-TATTMARKER_DECL_VIRT(TH1);-TOBJECT_DECL_VIRT(TH1);-DELETABLE_DECL_VIRT(TH1);---TH1_DECL_VIRT(TH1);---TH1_DECL_NONVIRT(TH1);---#endif // __HROOT_HIST__TH1__++#ifdef __cplusplus+extern "C" {+#endif++#pragma once+++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"++#include "HROOTCoreTAttLine.h"++#include "HROOTCoreTAttFill.h"++#include "HROOTCoreTAttMarker.h"++#include "HROOTCoreTObject.h"++#include "STDDeletable.h"++#include "HROOT-coreType.h"+++#define TH1_DECL_VIRT(Type) \+void Type##_Add ( Type##_p p, TH1_p h1, double c1 );\+void Type##_AddBinContent ( Type##_p p, int bin, double w );\+double Type##_Chi2Test ( Type##_p p, TH1_p h2, const char* option, double* res );\+void Type##_DirectoryAutoAdd ( Type##_p p, TDirectory_p dir );\+void Type##_Divide ( Type##_p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option );\+Type##_p Type##_drawCopyTH1 ( Type##_p p, const char* option );\+TH1_p Type##_DrawNormalized ( Type##_p p, const char* option, double norm );\+void Type##_drawPanelTH1 ( Type##_p p );\+int Type##_BufferEmpty ( Type##_p p, int action );\+void Type##_evalF ( Type##_p p, TF1_p f1, const char* option );\+TH1_p Type##_FFT ( Type##_p p, TH1_p h_output, const char* option );\+int Type##_fill1 ( Type##_p p, double x );\+int Type##_fill1w ( Type##_p p, double x, double w );\+void Type##_fillN1 ( Type##_p p, int ntimes, double* x, double* w, int stride );\+void Type##_FillRandom ( Type##_p p, TH1_p h, int ntimes );\+int Type##_FindBin ( Type##_p p, double x, double y, double z );\+int Type##_FindFixBin ( Type##_p p, double x, double y, double z );\+int Type##_FindFirstBinAbove ( Type##_p p, double threshold, int axis );\+int Type##_FindLastBinAbove ( Type##_p p, double threshold, int axis );\+void Type##_Fit ( Type##_p p, TF1_p f1, const char* option, const char* goption, double xmin, double xmax );\+void Type##_FitPanelTH1 ( Type##_p p );\+int Type##_getNdivisionA ( Type##_p p, const char* axis );\+short Type##_getAxisColorA ( Type##_p p, const char* axis );\+short Type##_getLabelColorA ( Type##_p p, const char* axis );\+short Type##_getLabelFontA ( Type##_p p, const char* axis );\+float Type##_getLabelOffsetA ( Type##_p p, const char* axis );\+float Type##_getLabelSizeA ( Type##_p p, const char* axis );\+short Type##_getTitleFontA ( Type##_p p, const char* axis );\+float Type##_getTitleOffsetA ( Type##_p p, const char* axis );\+float Type##_getTitleSizeA ( Type##_p p, const char* axis );\+float Type##_getTickLengthA ( Type##_p p, const char* axis );\+float Type##_GetBarOffset ( Type##_p p );\+float Type##_GetBarWidth ( Type##_p p );\+int Type##_GetContour ( Type##_p p, double* levels );\+double Type##_GetContourLevel ( Type##_p p, int level );\+double Type##_GetContourLevelPad ( Type##_p p, int level );\+int Type##_GetBin ( Type##_p p, int binx, int biny, int binz );\+double Type##_GetBinCenter ( Type##_p p, int bin );\+double Type##_GetBinContent1 ( Type##_p p, int binx );\+double Type##_GetBinContent2 ( Type##_p p, int binx, int biny );\+double Type##_GetBinContent3 ( Type##_p p, int binx, int biny, int binz );\+double Type##_GetBinError1 ( Type##_p p, int binx );\+double Type##_GetBinError2 ( Type##_p p, int binx, int biny );\+double Type##_GetBinError3 ( Type##_p p, int binx, int biny, int binz );\+double Type##_GetBinLowEdge ( Type##_p p, int bin );\+double Type##_GetBinWidth ( Type##_p p, int bin );\+double Type##_GetCellContent ( Type##_p p, int binx, int biny );\+double Type##_GetCellError ( Type##_p p, int binx, int biny );\+double Type##_GetEntries ( Type##_p p );\+double Type##_GetEffectiveEntries ( Type##_p p );\+TF1_p Type##_GetFunction ( Type##_p p, const char* name );\+int Type##_GetDimension ( Type##_p p );\+double Type##_GetKurtosis ( Type##_p p, int axis );\+void Type##_GetLowEdge ( Type##_p p, double* edge );\+double Type##_getMaximumTH1 ( Type##_p p, double maxval );\+int Type##_GetMaximumBin ( Type##_p p );\+double Type##_GetMaximumStored ( Type##_p p );\+double Type##_getMinimumTH1 ( Type##_p p, double minval );\+int Type##_GetMinimumBin ( Type##_p p );\+double Type##_GetMinimumStored ( Type##_p p );\+double Type##_GetMean ( Type##_p p, int axis );\+double Type##_GetMeanError ( Type##_p p, int axis );\+double Type##_GetNbinsX ( Type##_p p );\+double Type##_GetNbinsY ( Type##_p p );\+double Type##_GetNbinsZ ( Type##_p p );\+int Type##_getQuantilesTH1 ( Type##_p p, int nprobSum, double* q, double* pbSum );\+double Type##_GetRandom ( Type##_p p );\+void Type##_GetStats ( Type##_p p, double* stats );\+double Type##_GetSumOfWeights ( Type##_p p );\+TArrayD_p Type##_GetSumw2 ( Type##_p p );\+int Type##_GetSumw2N ( Type##_p p );\+double Type##_GetRMS ( Type##_p p, int axis );\+double Type##_GetRMSError ( Type##_p p, int axis );\+double Type##_GetSkewness ( Type##_p p, int axis );\+double Type##_interpolate3 ( Type##_p p, double x, double y, double z );\+double Type##_KolmogorovTest ( Type##_p p, TH1_p h2, const char* option );\+void Type##_LabelsDeflate ( Type##_p p, const char* axis );\+void Type##_LabelsInflate ( Type##_p p, const char* axis );\+void Type##_LabelsOption ( Type##_p p, const char* option, const char* axis );\+void Type##_multiflyF ( Type##_p p, TF1_p h1, double c1 );\+void Type##_Multiply ( Type##_p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option );\+void Type##_PutStats ( Type##_p p, double* stats );\+TH1_p Type##_Rebin ( Type##_p p, int ngroup, const char* newname, double* xbins );\+void Type##_RebinAxis ( Type##_p p, double x, TAxis_p axis );\+void Type##_Rebuild ( Type##_p p, const char* option );\+void Type##_RecursiveRemove ( Type##_p p, TObject_p obj );\+void Type##_Reset ( Type##_p p, const char* option );\+void Type##_ResetStats ( Type##_p p );\+void Type##_Scale ( Type##_p p, double c1, const char* option );\+void Type##_setAxisColorA ( Type##_p p, short color, const char* axis );\+void Type##_SetAxisRange ( Type##_p p, double xmin, double xmax, const char* axis );\+void Type##_SetBarOffset ( Type##_p p, float offset );\+void Type##_SetBarWidth ( Type##_p p, float width );\+void Type##_setBinContent1 ( Type##_p p, int bin, double content );\+void Type##_setBinContent2 ( Type##_p p, int binx, int biny, double content );\+void Type##_setBinContent3 ( Type##_p p, int binx, int biny, int binz, double content );\+void Type##_setBinError1 ( Type##_p p, int bin, double error );\+void Type##_setBinError2 ( Type##_p p, int binx, int biny, double error );\+void Type##_setBinError3 ( Type##_p p, int binx, int biny, int binz, double error );\+void Type##_setBins1 ( Type##_p p, int nx, double* xBins );\+void Type##_setBins2 ( Type##_p p, int nx, double* xBins, int ny, double* yBins );\+void Type##_setBins3 ( Type##_p p, int nx, double* xBins, int ny, double* yBins, int nz, double* zBins );\+void Type##_SetBinsLength ( Type##_p p, int bin );\+void Type##_SetBuffer ( Type##_p p, int buffersize, const char* option );\+void Type##_SetCellContent ( Type##_p p, int binx, int biny, double content );\+void Type##_SetContent ( Type##_p p, double* content );\+void Type##_SetContour ( Type##_p p, int nlevels, double* levels );\+void Type##_SetContourLevel ( Type##_p p, int level, double value );\+void Type##_SetDirectory ( Type##_p p, TDirectory_p dir );\+void Type##_SetEntries ( Type##_p p, double n );\+void Type##_SetError ( Type##_p p, double* error );\+void Type##_setLabelColorA ( Type##_p p, short color, const char* axis );\+void Type##_setLabelSizeA ( Type##_p p, float size, const char* axis );\+void Type##_setLabelFontA ( Type##_p p, short font, const char* axis );\+void Type##_setLabelOffsetA ( Type##_p p, float offset, const char* axis );\+void Type##_SetMaximum ( Type##_p p, double maximum );\+void Type##_SetMinimum ( Type##_p p, double minimum );\+void Type##_SetNormFactor ( Type##_p p, double factor );\+void Type##_SetStats ( Type##_p p, bool stats );\+void Type##_SetOption ( Type##_p p, const char* option );\+void Type##_SetXTitle ( Type##_p p, const char* title );\+void Type##_SetYTitle ( Type##_p p, const char* title );\+void Type##_SetZTitle ( Type##_p p, const char* title );\+TH1_p Type##_ShowBackground ( Type##_p p, int niter, const char* option );\+int Type##_ShowPeaks ( Type##_p p, double sigma, const char* option, double threshold );\+void Type##_Smooth ( Type##_p p, int ntimes, const char* option );\+void Type##_Sumw2 ( Type##_p p );+++#define TH1_DECL_NONVIRT(Type) \+Type##_p Type##_tH1_GetAsymmetry ( Type##_p p, TH1_p h2, double c2, double dc2 );\+int Type##_tH1_GetBufferLength ( Type##_p p );\+int Type##_tH1_GetBufferSize ( Type##_p p );\+int Type##_tH1_GetDefaultBufferSize (  );\+bool Type##_tH1_GetDefaultSumw2 (  );\+TDirectory_p Type##_tH1_GetDirectory ( Type##_p p );\+TAxis_p Type##_tH1_GetXaxis ( Type##_p p );\+TAxis_p Type##_tH1_GetYaxis ( Type##_p p );\+TAxis_p Type##_tH1_GetZaxis ( Type##_p p );\+bool Type##_tH1_IsBinOverflow ( Type##_p p, int bin );\+bool Type##_tH1_IsBinUnderflow ( Type##_p p, int bin );\+void Type##_tH1_SetDefaultBufferSize ( int buffersize );\+void Type##_tH1_SetDefaultSumw2 ( bool sumw2 );\+void Type##_tH1_SmoothArray ( int NN, double* XX, int ntimes );\+void Type##_tH1_StatOverflows ( bool flag );\+void Type##_tH1_UseCurrentStyle ( Type##_p p );+++#define TH1_DECL_ACCESSOR(Type) \++++#define TH1_DEF_VIRT(Type) \+void Type##_Add ( Type##_p p, TH1_p h1, double c1 ) {\+((TYPECASTMETHOD(Type, Add, TH1))(p))->Add(from_nonconst_to_nonconst<TH1, TH1_t>(h1), c1);\+}\+\+void Type##_AddBinContent ( Type##_p p, int bin, double w ) {\+((TYPECASTMETHOD(Type, AddBinContent, TH1))(p))->AddBinContent(bin, w);\+}\+\+double Type##_Chi2Test ( Type##_p p, TH1_p h2, const char* option, double* res ) {\+return ((TYPECASTMETHOD(Type, Chi2Test, TH1))(p))->Chi2Test(from_nonconst_to_nonconst<TH1, TH1_t>(h2), option, res);\+}\+\+void Type##_DirectoryAutoAdd ( Type##_p p, TDirectory_p dir ) {\+((TYPECASTMETHOD(Type, DirectoryAutoAdd, TH1))(p))->DirectoryAutoAdd(from_nonconst_to_nonconst<TDirectory, TDirectory_t>(dir));\+}\+\+void Type##_Divide ( Type##_p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ) {\+((TYPECASTMETHOD(Type, Divide, TH1))(p))->Divide(from_nonconst_to_nonconst<TH1, TH1_t>(h1), from_nonconst_to_nonconst<TH1, TH1_t>(h2), c1, c2, option);\+}\+\+Type##_p Type##_drawCopyTH1 ( Type##_p p, const char* option ) {\+return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, drawCopyTH1, TH1))(p))->DrawCopy(option));\+}\+\+TH1_p Type##_DrawNormalized ( Type##_p p, const char* option, double norm ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, DrawNormalized, TH1))(p))->DrawNormalized(option, norm));\+}\+\+void Type##_drawPanelTH1 ( Type##_p p ) {\+((TYPECASTMETHOD(Type, drawPanelTH1, TH1))(p))->DrawPanel();\+}\+\+int Type##_BufferEmpty ( Type##_p p, int action ) {\+return ((TYPECASTMETHOD(Type, BufferEmpty, TH1))(p))->BufferEmpty(action);\+}\+\+void Type##_evalF ( Type##_p p, TF1_p f1, const char* option ) {\+((TYPECASTMETHOD(Type, evalF, TH1))(p))->Eval(from_nonconst_to_nonconst<TF1, TF1_t>(f1), option);\+}\+\+TH1_p Type##_FFT ( Type##_p p, TH1_p h_output, const char* option ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, FFT, TH1))(p))->FFT(from_nonconst_to_nonconst<TH1, TH1_t>(h_output), option));\+}\+\+int Type##_fill1 ( Type##_p p, double x ) {\+return ((TYPECASTMETHOD(Type, fill1, TH1))(p))->Fill(x);\+}\+\+int Type##_fill1w ( Type##_p p, double x, double w ) {\+return ((TYPECASTMETHOD(Type, fill1w, TH1))(p))->Fill(x, w);\+}\+\+void Type##_fillN1 ( Type##_p p, int ntimes, double* x, double* w, int stride ) {\+((TYPECASTMETHOD(Type, fillN1, TH1))(p))->FillN(ntimes, x, w, stride);\+}\+\+void Type##_FillRandom ( Type##_p p, TH1_p h, int ntimes ) {\+((TYPECASTMETHOD(Type, FillRandom, TH1))(p))->FillRandom(from_nonconst_to_nonconst<TH1, TH1_t>(h), ntimes);\+}\+\+int Type##_FindBin ( Type##_p p, double x, double y, double z ) {\+return ((TYPECASTMETHOD(Type, FindBin, TH1))(p))->FindBin(x, y, z);\+}\+\+int Type##_FindFixBin ( Type##_p p, double x, double y, double z ) {\+return ((TYPECASTMETHOD(Type, FindFixBin, TH1))(p))->FindFixBin(x, y, z);\+}\+\+int Type##_FindFirstBinAbove ( Type##_p p, double threshold, int axis ) {\+return ((TYPECASTMETHOD(Type, FindFirstBinAbove, TH1))(p))->FindFirstBinAbove(threshold, axis);\+}\+\+int Type##_FindLastBinAbove ( Type##_p p, double threshold, int axis ) {\+return ((TYPECASTMETHOD(Type, FindLastBinAbove, TH1))(p))->FindLastBinAbove(threshold, axis);\+}\+\+void Type##_Fit ( Type##_p p, TF1_p f1, const char* option, const char* goption, double xmin, double xmax ) {\+((TYPECASTMETHOD(Type, Fit, TH1))(p))->Fit(from_nonconst_to_nonconst<TF1, TF1_t>(f1), option, goption, xmin, xmax);\+}\+\+void Type##_FitPanelTH1 ( Type##_p p ) {\+((TYPECASTMETHOD(Type, FitPanelTH1, TH1))(p))->FitPanel();\+}\+\+int Type##_getNdivisionA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getNdivisionA, TH1))(p))->GetNdivisions(axis);\+}\+\+short Type##_getAxisColorA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getAxisColorA, TH1))(p))->GetAxisColor(axis);\+}\+\+short Type##_getLabelColorA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getLabelColorA, TH1))(p))->GetLabelColor(axis);\+}\+\+short Type##_getLabelFontA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getLabelFontA, TH1))(p))->GetLabelFont(axis);\+}\+\+float Type##_getLabelOffsetA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getLabelOffsetA, TH1))(p))->GetLabelOffset(axis);\+}\+\+float Type##_getLabelSizeA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getLabelSizeA, TH1))(p))->GetLabelSize(axis);\+}\+\+short Type##_getTitleFontA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getTitleFontA, TH1))(p))->GetTitleFont(axis);\+}\+\+float Type##_getTitleOffsetA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getTitleOffsetA, TH1))(p))->GetTitleOffset(axis);\+}\+\+float Type##_getTitleSizeA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getTitleSizeA, TH1))(p))->GetTitleSize(axis);\+}\+\+float Type##_getTickLengthA ( Type##_p p, const char* axis ) {\+return ((TYPECASTMETHOD(Type, getTickLengthA, TH1))(p))->GetTickLength(axis);\+}\+\+float Type##_GetBarOffset ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetBarOffset, TH1))(p))->GetBarOffset();\+}\+\+float Type##_GetBarWidth ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetBarWidth, TH1))(p))->GetBarWidth();\+}\+\+int Type##_GetContour ( Type##_p p, double* levels ) {\+return ((TYPECASTMETHOD(Type, GetContour, TH1))(p))->GetContour(levels);\+}\+\+double Type##_GetContourLevel ( Type##_p p, int level ) {\+return ((TYPECASTMETHOD(Type, GetContourLevel, TH1))(p))->GetContourLevel(level);\+}\+\+double Type##_GetContourLevelPad ( Type##_p p, int level ) {\+return ((TYPECASTMETHOD(Type, GetContourLevelPad, TH1))(p))->GetContourLevelPad(level);\+}\+\+int Type##_GetBin ( Type##_p p, int binx, int biny, int binz ) {\+return ((TYPECASTMETHOD(Type, GetBin, TH1))(p))->GetBin(binx, biny, binz);\+}\+\+double Type##_GetBinCenter ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetBinCenter, TH1))(p))->GetBinCenter(bin);\+}\+\+double Type##_GetBinContent1 ( Type##_p p, int binx ) {\+return ((TYPECASTMETHOD(Type, GetBinContent1, TH1))(p))->GetBinContent(binx);\+}\+\+double Type##_GetBinContent2 ( Type##_p p, int binx, int biny ) {\+return ((TYPECASTMETHOD(Type, GetBinContent2, TH1))(p))->GetBinContent(binx, biny);\+}\+\+double Type##_GetBinContent3 ( Type##_p p, int binx, int biny, int binz ) {\+return ((TYPECASTMETHOD(Type, GetBinContent3, TH1))(p))->GetBinContent(binx, biny, binz);\+}\+\+double Type##_GetBinError1 ( Type##_p p, int binx ) {\+return ((TYPECASTMETHOD(Type, GetBinError1, TH1))(p))->GetBinError(binx);\+}\+\+double Type##_GetBinError2 ( Type##_p p, int binx, int biny ) {\+return ((TYPECASTMETHOD(Type, GetBinError2, TH1))(p))->GetBinError(binx, biny);\+}\+\+double Type##_GetBinError3 ( Type##_p p, int binx, int biny, int binz ) {\+return ((TYPECASTMETHOD(Type, GetBinError3, TH1))(p))->GetBinError(binx, biny, binz);\+}\+\+double Type##_GetBinLowEdge ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetBinLowEdge, TH1))(p))->GetBinLowEdge(bin);\+}\+\+double Type##_GetBinWidth ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, GetBinWidth, TH1))(p))->GetBinWidth(bin);\+}\+\+double Type##_GetCellContent ( Type##_p p, int binx, int biny ) {\+return ((TYPECASTMETHOD(Type, GetCellContent, TH1))(p))->GetCellContent(binx, biny);\+}\+\+double Type##_GetCellError ( Type##_p p, int binx, int biny ) {\+return ((TYPECASTMETHOD(Type, GetCellError, TH1))(p))->GetCellError(binx, biny);\+}\+\+double Type##_GetEntries ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetEntries, TH1))(p))->GetEntries();\+}\+\+double Type##_GetEffectiveEntries ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetEffectiveEntries, TH1))(p))->GetEffectiveEntries();\+}\+\+TF1_p Type##_GetFunction ( Type##_p p, const char* name ) {\+return from_nonconst_to_nonconst<TF1_t, TF1>((TF1*)((TYPECASTMETHOD(Type, GetFunction, TH1))(p))->GetFunction(name));\+}\+\+int Type##_GetDimension ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetDimension, TH1))(p))->GetDimension();\+}\+\+double Type##_GetKurtosis ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetKurtosis, TH1))(p))->GetKurtosis(axis);\+}\+\+void Type##_GetLowEdge ( Type##_p p, double* edge ) {\+((TYPECASTMETHOD(Type, GetLowEdge, TH1))(p))->GetLowEdge(edge);\+}\+\+double Type##_getMaximumTH1 ( Type##_p p, double maxval ) {\+return ((TYPECASTMETHOD(Type, getMaximumTH1, TH1))(p))->GetMaximum(maxval);\+}\+\+int Type##_GetMaximumBin ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetMaximumBin, TH1))(p))->GetMaximumBin();\+}\+\+double Type##_GetMaximumStored ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetMaximumStored, TH1))(p))->GetMaximumStored();\+}\+\+double Type##_getMinimumTH1 ( Type##_p p, double minval ) {\+return ((TYPECASTMETHOD(Type, getMinimumTH1, TH1))(p))->GetMinimum(minval);\+}\+\+int Type##_GetMinimumBin ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetMinimumBin, TH1))(p))->GetMinimumBin();\+}\+\+double Type##_GetMinimumStored ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetMinimumStored, TH1))(p))->GetMinimumStored();\+}\+\+double Type##_GetMean ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetMean, TH1))(p))->GetMean(axis);\+}\+\+double Type##_GetMeanError ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetMeanError, TH1))(p))->GetMeanError(axis);\+}\+\+double Type##_GetNbinsX ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNbinsX, TH1))(p))->GetNbinsX();\+}\+\+double Type##_GetNbinsY ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNbinsY, TH1))(p))->GetNbinsY();\+}\+\+double Type##_GetNbinsZ ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetNbinsZ, TH1))(p))->GetNbinsZ();\+}\+\+int Type##_getQuantilesTH1 ( Type##_p p, int nprobSum, double* q, double* pbSum ) {\+return ((TYPECASTMETHOD(Type, getQuantilesTH1, TH1))(p))->GetQuantiles(nprobSum, q, pbSum);\+}\+\+double Type##_GetRandom ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetRandom, TH1))(p))->GetRandom();\+}\+\+void Type##_GetStats ( Type##_p p, double* stats ) {\+((TYPECASTMETHOD(Type, GetStats, TH1))(p))->GetStats(stats);\+}\+\+double Type##_GetSumOfWeights ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetSumOfWeights, TH1))(p))->GetSumOfWeights();\+}\+\+TArrayD_p Type##_GetSumw2 ( Type##_p p ) {\+return from_nonconst_to_nonconst<TArrayD_t, TArrayD>((TArrayD*)((TYPECASTMETHOD(Type, GetSumw2, TH1))(p))->GetSumw2());\+}\+\+int Type##_GetSumw2N ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, GetSumw2N, TH1))(p))->GetSumw2N();\+}\+\+double Type##_GetRMS ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetRMS, TH1))(p))->GetRMS(axis);\+}\+\+double Type##_GetRMSError ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetRMSError, TH1))(p))->GetRMSError(axis);\+}\+\+double Type##_GetSkewness ( Type##_p p, int axis ) {\+return ((TYPECASTMETHOD(Type, GetSkewness, TH1))(p))->GetSkewness(axis);\+}\+\+double Type##_interpolate3 ( Type##_p p, double x, double y, double z ) {\+return ((TYPECASTMETHOD(Type, interpolate3, TH1))(p))->Interpolate(x, y, z);\+}\+\+double Type##_KolmogorovTest ( Type##_p p, TH1_p h2, const char* option ) {\+return ((TYPECASTMETHOD(Type, KolmogorovTest, TH1))(p))->KolmogorovTest(from_nonconst_to_nonconst<TH1, TH1_t>(h2), option);\+}\+\+void Type##_LabelsDeflate ( Type##_p p, const char* axis ) {\+((TYPECASTMETHOD(Type, LabelsDeflate, TH1))(p))->LabelsDeflate(axis);\+}\+\+void Type##_LabelsInflate ( Type##_p p, const char* axis ) {\+((TYPECASTMETHOD(Type, LabelsInflate, TH1))(p))->LabelsInflate(axis);\+}\+\+void Type##_LabelsOption ( Type##_p p, const char* option, const char* axis ) {\+((TYPECASTMETHOD(Type, LabelsOption, TH1))(p))->LabelsOption(option, axis);\+}\+\+void Type##_multiflyF ( Type##_p p, TF1_p h1, double c1 ) {\+((TYPECASTMETHOD(Type, multiflyF, TH1))(p))->Multiply(from_nonconst_to_nonconst<TF1, TF1_t>(h1), c1);\+}\+\+void Type##_Multiply ( Type##_p p, TH1_p h1, TH1_p h2, double c1, double c2, const char* option ) {\+((TYPECASTMETHOD(Type, Multiply, TH1))(p))->Multiply(from_nonconst_to_nonconst<TH1, TH1_t>(h1), from_nonconst_to_nonconst<TH1, TH1_t>(h2), c1, c2, option);\+}\+\+void Type##_PutStats ( Type##_p p, double* stats ) {\+((TYPECASTMETHOD(Type, PutStats, TH1))(p))->PutStats(stats);\+}\+\+TH1_p Type##_Rebin ( Type##_p p, int ngroup, const char* newname, double* xbins ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, Rebin, TH1))(p))->Rebin(ngroup, newname, xbins));\+}\+\+void Type##_RebinAxis ( Type##_p p, double x, TAxis_p axis ) {\+((TYPECASTMETHOD(Type, RebinAxis, TH1))(p))->RebinAxis(x, from_nonconst_to_nonconst<TAxis, TAxis_t>(axis));\+}\+\+void Type##_Rebuild ( Type##_p p, const char* option ) {\+((TYPECASTMETHOD(Type, Rebuild, TH1))(p))->Rebuild(option);\+}\+\+void Type##_RecursiveRemove ( Type##_p p, TObject_p obj ) {\+((TYPECASTMETHOD(Type, RecursiveRemove, TH1))(p))->RecursiveRemove(from_nonconst_to_nonconst<TObject, TObject_t>(obj));\+}\+\+void Type##_Reset ( Type##_p p, const char* option ) {\+((TYPECASTMETHOD(Type, Reset, TH1))(p))->Reset(option);\+}\+\+void Type##_ResetStats ( Type##_p p ) {\+((TYPECASTMETHOD(Type, ResetStats, TH1))(p))->ResetStats();\+}\+\+void Type##_Scale ( Type##_p p, double c1, const char* option ) {\+((TYPECASTMETHOD(Type, Scale, TH1))(p))->Scale(c1, option);\+}\+\+void Type##_setAxisColorA ( Type##_p p, short color, const char* axis ) {\+((TYPECASTMETHOD(Type, setAxisColorA, TH1))(p))->SetAxisColor(color, axis);\+}\+\+void Type##_SetAxisRange ( Type##_p p, double xmin, double xmax, const char* axis ) {\+((TYPECASTMETHOD(Type, SetAxisRange, TH1))(p))->SetAxisRange(xmin, xmax, axis);\+}\+\+void Type##_SetBarOffset ( Type##_p p, float offset ) {\+((TYPECASTMETHOD(Type, SetBarOffset, TH1))(p))->SetBarOffset(offset);\+}\+\+void Type##_SetBarWidth ( Type##_p p, float width ) {\+((TYPECASTMETHOD(Type, SetBarWidth, TH1))(p))->SetBarWidth(width);\+}\+\+void Type##_setBinContent1 ( Type##_p p, int bin, double content ) {\+((TYPECASTMETHOD(Type, setBinContent1, TH1))(p))->SetBinContent(bin, content);\+}\+\+void Type##_setBinContent2 ( Type##_p p, int binx, int biny, double content ) {\+((TYPECASTMETHOD(Type, setBinContent2, TH1))(p))->SetBinContent(binx, biny, content);\+}\+\+void Type##_setBinContent3 ( Type##_p p, int binx, int biny, int binz, double content ) {\+((TYPECASTMETHOD(Type, setBinContent3, TH1))(p))->SetBinContent(binx, biny, binz, content);\+}\+\+void Type##_setBinError1 ( Type##_p p, int bin, double error ) {\+((TYPECASTMETHOD(Type, setBinError1, TH1))(p))->SetBinError(bin, error);\+}\+\+void Type##_setBinError2 ( Type##_p p, int binx, int biny, double error ) {\+((TYPECASTMETHOD(Type, setBinError2, TH1))(p))->SetBinError(binx, biny, error);\+}\+\+void Type##_setBinError3 ( Type##_p p, int binx, int biny, int binz, double error ) {\+((TYPECASTMETHOD(Type, setBinError3, TH1))(p))->SetBinError(binx, biny, binz, error);\+}\+\+void Type##_setBins1 ( Type##_p p, int nx, double* xBins ) {\+((TYPECASTMETHOD(Type, setBins1, TH1))(p))->SetBins(nx, xBins);\+}\+\+void Type##_setBins2 ( Type##_p p, int nx, double* xBins, int ny, double* yBins ) {\+((TYPECASTMETHOD(Type, setBins2, TH1))(p))->SetBins(nx, xBins, ny, yBins);\+}\+\+void Type##_setBins3 ( Type##_p p, int nx, double* xBins, int ny, double* yBins, int nz, double* zBins ) {\+((TYPECASTMETHOD(Type, setBins3, TH1))(p))->SetBins(nx, xBins, ny, yBins, nz, zBins);\+}\+\+void Type##_SetBinsLength ( Type##_p p, int bin ) {\+((TYPECASTMETHOD(Type, SetBinsLength, TH1))(p))->SetBinsLength(bin);\+}\+\+void Type##_SetBuffer ( Type##_p p, int buffersize, const char* option ) {\+((TYPECASTMETHOD(Type, SetBuffer, TH1))(p))->SetBuffer(buffersize, option);\+}\+\+void Type##_SetCellContent ( Type##_p p, int binx, int biny, double content ) {\+((TYPECASTMETHOD(Type, SetCellContent, TH1))(p))->SetCellContent(binx, biny, content);\+}\+\+void Type##_SetContent ( Type##_p p, double* content ) {\+((TYPECASTMETHOD(Type, SetContent, TH1))(p))->SetContent(content);\+}\+\+void Type##_SetContour ( Type##_p p, int nlevels, double* levels ) {\+((TYPECASTMETHOD(Type, SetContour, TH1))(p))->SetContour(nlevels, levels);\+}\+\+void Type##_SetContourLevel ( Type##_p p, int level, double value ) {\+((TYPECASTMETHOD(Type, SetContourLevel, TH1))(p))->SetContourLevel(level, value);\+}\+\+void Type##_SetDirectory ( Type##_p p, TDirectory_p dir ) {\+((TYPECASTMETHOD(Type, SetDirectory, TH1))(p))->SetDirectory(from_nonconst_to_nonconst<TDirectory, TDirectory_t>(dir));\+}\+\+void Type##_SetEntries ( Type##_p p, double n ) {\+((TYPECASTMETHOD(Type, SetEntries, TH1))(p))->SetEntries(n);\+}\+\+void Type##_SetError ( Type##_p p, double* error ) {\+((TYPECASTMETHOD(Type, SetError, TH1))(p))->SetError(error);\+}\+\+void Type##_setLabelColorA ( Type##_p p, short color, const char* axis ) {\+((TYPECASTMETHOD(Type, setLabelColorA, TH1))(p))->SetLabelColor(color, axis);\+}\+\+void Type##_setLabelSizeA ( Type##_p p, float size, const char* axis ) {\+((TYPECASTMETHOD(Type, setLabelSizeA, TH1))(p))->SetLabelSize(size, axis);\+}\+\+void Type##_setLabelFontA ( Type##_p p, short font, const char* axis ) {\+((TYPECASTMETHOD(Type, setLabelFontA, TH1))(p))->SetLabelFont(font, axis);\+}\+\+void Type##_setLabelOffsetA ( Type##_p p, float offset, const char* axis ) {\+((TYPECASTMETHOD(Type, setLabelOffsetA, TH1))(p))->SetLabelOffset(offset, axis);\+}\+\+void Type##_SetMaximum ( Type##_p p, double maximum ) {\+((TYPECASTMETHOD(Type, SetMaximum, TH1))(p))->SetMaximum(maximum);\+}\+\+void Type##_SetMinimum ( Type##_p p, double minimum ) {\+((TYPECASTMETHOD(Type, SetMinimum, TH1))(p))->SetMinimum(minimum);\+}\+\+void Type##_SetNormFactor ( Type##_p p, double factor ) {\+((TYPECASTMETHOD(Type, SetNormFactor, TH1))(p))->SetNormFactor(factor);\+}\+\+void Type##_SetStats ( Type##_p p, bool stats ) {\+((TYPECASTMETHOD(Type, SetStats, TH1))(p))->SetStats(stats);\+}\+\+void Type##_SetOption ( Type##_p p, const char* option ) {\+((TYPECASTMETHOD(Type, SetOption, TH1))(p))->SetOption(option);\+}\+\+void Type##_SetXTitle ( Type##_p p, const char* title ) {\+((TYPECASTMETHOD(Type, SetXTitle, TH1))(p))->SetXTitle(title);\+}\+\+void Type##_SetYTitle ( Type##_p p, const char* title ) {\+((TYPECASTMETHOD(Type, SetYTitle, TH1))(p))->SetYTitle(title);\+}\+\+void Type##_SetZTitle ( Type##_p p, const char* title ) {\+((TYPECASTMETHOD(Type, SetZTitle, TH1))(p))->SetZTitle(title);\+}\+\+TH1_p Type##_ShowBackground ( Type##_p p, int niter, const char* option ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, ShowBackground, TH1))(p))->ShowBackground(niter, option));\+}\+\+int Type##_ShowPeaks ( Type##_p p, double sigma, const char* option, double threshold ) {\+return ((TYPECASTMETHOD(Type, ShowPeaks, TH1))(p))->ShowPeaks(sigma, option, threshold);\+}\+\+void Type##_Smooth ( Type##_p p, int ntimes, const char* option ) {\+((TYPECASTMETHOD(Type, Smooth, TH1))(p))->Smooth(ntimes, option);\+}\+\+void Type##_Sumw2 ( Type##_p p ) {\+((TYPECASTMETHOD(Type, Sumw2, TH1))(p))->Sumw2();\+}+++#define TH1_DEF_NONVIRT(Type) \+Type##_p Type##_tH1_GetAsymmetry ( Type##_p p, TH1_p h2, double c2, double dc2 ) {\+return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, tH1_GetAsymmetry, TH1))(p))->GetAsymmetry(from_nonconst_to_nonconst<TH1, TH1_t>(h2), c2, dc2));\+}\+\+int Type##_tH1_GetBufferLength ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tH1_GetBufferLength, TH1))(p))->GetBufferLength();\+}\+\+int Type##_tH1_GetBufferSize ( Type##_p p ) {\+return ((TYPECASTMETHOD(Type, tH1_GetBufferSize, TH1))(p))->GetBufferSize();\+}\+\+int Type##_tH1_GetDefaultBufferSize (  ) {\+return TH1::GetDefaultBufferSize();\+}\+\+bool Type##_tH1_GetDefaultSumw2 (  ) {\+return TH1::GetDefaultSumw2();\+}\+\+TDirectory_p Type##_tH1_GetDirectory ( Type##_p p ) {\+return from_nonconst_to_nonconst<TDirectory_t, TDirectory>((TDirectory*)((TYPECASTMETHOD(Type, tH1_GetDirectory, TH1))(p))->GetDirectory());\+}\+\+TAxis_p Type##_tH1_GetXaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tH1_GetXaxis, TH1))(p))->GetXaxis());\+}\+\+TAxis_p Type##_tH1_GetYaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tH1_GetYaxis, TH1))(p))->GetYaxis());\+}\+\+TAxis_p Type##_tH1_GetZaxis ( Type##_p p ) {\+return from_nonconst_to_nonconst<TAxis_t, TAxis>((TAxis*)((TYPECASTMETHOD(Type, tH1_GetZaxis, TH1))(p))->GetZaxis());\+}\+\+bool Type##_tH1_IsBinOverflow ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, tH1_IsBinOverflow, TH1))(p))->IsBinOverflow(bin);\+}\+\+bool Type##_tH1_IsBinUnderflow ( Type##_p p, int bin ) {\+return ((TYPECASTMETHOD(Type, tH1_IsBinUnderflow, TH1))(p))->IsBinUnderflow(bin);\+}\+\+void Type##_tH1_SetDefaultBufferSize ( int buffersize ) {\+TH1::SetDefaultBufferSize(buffersize);\+}\+\+void Type##_tH1_SetDefaultSumw2 ( bool sumw2 ) {\+TH1::SetDefaultSumw2(sumw2);\+}\+\+void Type##_tH1_SmoothArray ( int NN, double* XX, int ntimes ) {\+TH1::SmoothArray(NN, XX, ntimes);\+}\+\+void Type##_tH1_StatOverflows ( bool flag ) {\+TH1::StatOverflows(flag);\+}\+\+void Type##_tH1_UseCurrentStyle ( Type##_p p ) {\+((TYPECASTMETHOD(Type, tH1_UseCurrentStyle, TH1))(p))->UseCurrentStyle();\+}+++#define TH1_DEF_ACCESSOR(Type) \++++TNAMED_DECL_VIRT(TH1)+TATTLINE_DECL_VIRT(TH1)+TATTFILL_DECL_VIRT(TH1)+TATTMARKER_DECL_VIRT(TH1)+TOBJECT_DECL_VIRT(TH1)+DELETABLE_DECL_VIRT(TH1)+TH1_DECL_VIRT(TH1)+TH1_DECL_NONVIRT(TH1)+TH1_DECL_ACCESSOR(TH1)  #ifdef __cplusplus }
csrc/HROOTHistTH1C.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayC.h"+ #include "TH1C.h"-#include "HROOTHistTH1C.h" +#include "HROOTHistTH1C.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1C) TARRAYC_DEF_VIRT(TH1C)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1C) DELETABLE_DEF_VIRT(TH1C) TARRAY_DEF_VIRT(TH1C)- TH1C_DEF_VIRT(TH1C)- TH1C_DEF_NONVIRT(TH1C)+TH1C_DEF_ACCESSOR(TH1C) 
csrc/HROOTHistTH1C.h view
@@ -1,56 +1,70 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1C__-#define __HROOT_HIST__TH1C__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayC.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1C_DECL_VIRT + #define TH1C_DECL_VIRT(Type) \  -#undef TH1C_DECL_NONVIRT + #define TH1C_DECL_NONVIRT(Type) \  -#undef TH1C_DEF_VIRT-#define TH1C_DEF_VIRT(Type)\ +#define TH1C_DECL_ACCESSOR(Type) \ -#undef TH1C_DEF_NONVIRT-#define TH1C_DEF_NONVIRT(Type)\  -TH1_DECL_VIRT(TH1C);-TARRAYC_DECL_VIRT(TH1C);-TNAMED_DECL_VIRT(TH1C);-TATTLINE_DECL_VIRT(TH1C);-TATTFILL_DECL_VIRT(TH1C);-TATTMARKER_DECL_VIRT(TH1C);-TOBJECT_DECL_VIRT(TH1C);-DELETABLE_DECL_VIRT(TH1C);-TARRAY_DECL_VIRT(TH1C);+#define TH1C_DEF_VIRT(Type) \  -TH1C_DECL_VIRT(TH1C); +#define TH1C_DEF_NONVIRT(Type) \ -TH1C_DECL_NONVIRT(TH1C);  -#endif // __HROOT_HIST__TH1C__+#define TH1C_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1C)+TARRAYC_DECL_VIRT(TH1C)+TNAMED_DECL_VIRT(TH1C)+TATTLINE_DECL_VIRT(TH1C)+TATTFILL_DECL_VIRT(TH1C)+TATTMARKER_DECL_VIRT(TH1C)+TOBJECT_DECL_VIRT(TH1C)+DELETABLE_DECL_VIRT(TH1C)+TARRAY_DECL_VIRT(TH1C)+TH1C_DECL_VIRT(TH1C)+TH1C_DECL_NONVIRT(TH1C)+TH1C_DECL_ACCESSOR(TH1C)  #ifdef __cplusplus }
csrc/HROOTHistTH1D.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayD.h"+ #include "TH1D.h"-#include "HROOTHistTH1D.h" +#include "HROOTHistTH1D.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1D) TARRAYD_DEF_VIRT(TH1D)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1D) DELETABLE_DEF_VIRT(TH1D) TARRAY_DEF_VIRT(TH1D)- TH1D_DEF_VIRT(TH1D)- TH1D_DEF_NONVIRT(TH1D)+TH1D_DEF_ACCESSOR(TH1D) 
csrc/HROOTHistTH1D.h view
@@ -1,60 +1,72 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1D__-#define __HROOT_HIST__TH1D__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayD.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1D_DECL_VIRT + #define TH1D_DECL_VIRT(Type) \  -#undef TH1D_DECL_NONVIRT + #define TH1D_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup )+Type##_p Type##_newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup ); -#undef TH1D_DEF_VIRT-#define TH1D_DEF_VIRT(Type)\ +#define TH1D_DECL_ACCESSOR(Type) \ -#undef TH1D_DEF_NONVIRT-#define TH1D_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup )\-{\-Type * newp = new Type (name, title, nbinsx, xlow, xup); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TH1_DECL_VIRT(TH1D);-TARRAYD_DECL_VIRT(TH1D);-TNAMED_DECL_VIRT(TH1D);-TATTLINE_DECL_VIRT(TH1D);-TATTFILL_DECL_VIRT(TH1D);-TATTMARKER_DECL_VIRT(TH1D);-TOBJECT_DECL_VIRT(TH1D);-DELETABLE_DECL_VIRT(TH1D);-TARRAY_DECL_VIRT(TH1D); +#define TH1D_DEF_VIRT(Type) \ -TH1D_DECL_VIRT(TH1D);  -TH1D_DECL_NONVIRT(TH1D);+#define TH1D_DEF_NONVIRT(Type) \+Type##_p Type##_newTH1D ( const char* name, const char* title, int nbinsx, double xlow, double xup ) {\+Type* newp=new Type(name, title, nbinsx, xlow, xup);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__TH1D__+#define TH1D_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1D)+TARRAYD_DECL_VIRT(TH1D)+TNAMED_DECL_VIRT(TH1D)+TATTLINE_DECL_VIRT(TH1D)+TATTFILL_DECL_VIRT(TH1D)+TATTMARKER_DECL_VIRT(TH1D)+TOBJECT_DECL_VIRT(TH1D)+DELETABLE_DECL_VIRT(TH1D)+TARRAY_DECL_VIRT(TH1D)+TH1D_DECL_VIRT(TH1D)+TH1D_DECL_NONVIRT(TH1D)+TH1D_DECL_ACCESSOR(TH1D)  #ifdef __cplusplus }
csrc/HROOTHistTH1F.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayF.h"+ #include "TH1F.h"-#include "HROOTHistTH1F.h" +#include "HROOTHistTH1F.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1F) TARRAYF_DEF_VIRT(TH1F)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1F) DELETABLE_DEF_VIRT(TH1F) TARRAY_DEF_VIRT(TH1F)- TH1F_DEF_VIRT(TH1F)- TH1F_DEF_NONVIRT(TH1F)+TH1F_DEF_ACCESSOR(TH1F) 
csrc/HROOTHistTH1F.h view
@@ -1,60 +1,72 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1F__-#define __HROOT_HIST__TH1F__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayF.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1F_DECL_VIRT + #define TH1F_DECL_VIRT(Type) \  -#undef TH1F_DECL_NONVIRT + #define TH1F_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup )+Type##_p Type##_newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup ); -#undef TH1F_DEF_VIRT-#define TH1F_DEF_VIRT(Type)\ +#define TH1F_DECL_ACCESSOR(Type) \ -#undef TH1F_DEF_NONVIRT-#define TH1F_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup )\-{\-Type * newp = new Type (name, title, nbinsx, xlow, xup); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TH1_DECL_VIRT(TH1F);-TARRAYF_DECL_VIRT(TH1F);-TNAMED_DECL_VIRT(TH1F);-TATTLINE_DECL_VIRT(TH1F);-TATTFILL_DECL_VIRT(TH1F);-TATTMARKER_DECL_VIRT(TH1F);-TOBJECT_DECL_VIRT(TH1F);-DELETABLE_DECL_VIRT(TH1F);-TARRAY_DECL_VIRT(TH1F); +#define TH1F_DEF_VIRT(Type) \ -TH1F_DECL_VIRT(TH1F);  -TH1F_DECL_NONVIRT(TH1F);+#define TH1F_DEF_NONVIRT(Type) \+Type##_p Type##_newTH1F ( const char* name, const char* title, int nbinsx, double xlow, double xup ) {\+Type* newp=new Type(name, title, nbinsx, xlow, xup);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__TH1F__+#define TH1F_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1F)+TARRAYF_DECL_VIRT(TH1F)+TNAMED_DECL_VIRT(TH1F)+TATTLINE_DECL_VIRT(TH1F)+TATTFILL_DECL_VIRT(TH1F)+TATTMARKER_DECL_VIRT(TH1F)+TOBJECT_DECL_VIRT(TH1F)+DELETABLE_DECL_VIRT(TH1F)+TARRAY_DECL_VIRT(TH1F)+TH1F_DECL_VIRT(TH1F)+TH1F_DECL_NONVIRT(TH1F)+TH1F_DECL_ACCESSOR(TH1F)  #ifdef __cplusplus }
csrc/HROOTHistTH1I.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayI.h"+ #include "TH1I.h"-#include "HROOTHistTH1I.h" +#include "HROOTHistTH1I.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1I) TARRAYI_DEF_VIRT(TH1I)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1I) DELETABLE_DEF_VIRT(TH1I) TARRAY_DEF_VIRT(TH1I)- TH1I_DEF_VIRT(TH1I)- TH1I_DEF_NONVIRT(TH1I)+TH1I_DEF_ACCESSOR(TH1I) 
csrc/HROOTHistTH1I.h view
@@ -1,56 +1,70 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1I__-#define __HROOT_HIST__TH1I__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayI.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1I_DECL_VIRT + #define TH1I_DECL_VIRT(Type) \  -#undef TH1I_DECL_NONVIRT + #define TH1I_DECL_NONVIRT(Type) \  -#undef TH1I_DEF_VIRT-#define TH1I_DEF_VIRT(Type)\ +#define TH1I_DECL_ACCESSOR(Type) \ -#undef TH1I_DEF_NONVIRT-#define TH1I_DEF_NONVIRT(Type)\  -TH1_DECL_VIRT(TH1I);-TARRAYI_DECL_VIRT(TH1I);-TNAMED_DECL_VIRT(TH1I);-TATTLINE_DECL_VIRT(TH1I);-TATTFILL_DECL_VIRT(TH1I);-TATTMARKER_DECL_VIRT(TH1I);-TOBJECT_DECL_VIRT(TH1I);-DELETABLE_DECL_VIRT(TH1I);-TARRAY_DECL_VIRT(TH1I);+#define TH1I_DEF_VIRT(Type) \  -TH1I_DECL_VIRT(TH1I); +#define TH1I_DEF_NONVIRT(Type) \ -TH1I_DECL_NONVIRT(TH1I);  -#endif // __HROOT_HIST__TH1I__+#define TH1I_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1I)+TARRAYI_DECL_VIRT(TH1I)+TNAMED_DECL_VIRT(TH1I)+TATTLINE_DECL_VIRT(TH1I)+TATTFILL_DECL_VIRT(TH1I)+TATTMARKER_DECL_VIRT(TH1I)+TOBJECT_DECL_VIRT(TH1I)+DELETABLE_DECL_VIRT(TH1I)+TARRAY_DECL_VIRT(TH1I)+TH1I_DECL_VIRT(TH1I)+TH1I_DECL_NONVIRT(TH1I)+TH1I_DECL_ACCESSOR(TH1I)  #ifdef __cplusplus }
csrc/HROOTHistTH1K.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayF.h"+ #include "TH1K.h"-#include "HROOTHistTH1K.h" +#include "HROOTHistTH1K.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1K) TARRAYF_DEF_VIRT(TH1K)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1K) DELETABLE_DEF_VIRT(TH1K) TARRAY_DEF_VIRT(TH1K)- TH1K_DEF_VIRT(TH1K)- TH1K_DEF_NONVIRT(TH1K)+TH1K_DEF_ACCESSOR(TH1K) 
csrc/HROOTHistTH1K.h view
@@ -1,56 +1,70 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1K__-#define __HROOT_HIST__TH1K__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayF.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1K_DECL_VIRT + #define TH1K_DECL_VIRT(Type) \  -#undef TH1K_DECL_NONVIRT + #define TH1K_DECL_NONVIRT(Type) \  -#undef TH1K_DEF_VIRT-#define TH1K_DEF_VIRT(Type)\ +#define TH1K_DECL_ACCESSOR(Type) \ -#undef TH1K_DEF_NONVIRT-#define TH1K_DEF_NONVIRT(Type)\  -TH1_DECL_VIRT(TH1K);-TARRAYF_DECL_VIRT(TH1K);-TNAMED_DECL_VIRT(TH1K);-TATTLINE_DECL_VIRT(TH1K);-TATTFILL_DECL_VIRT(TH1K);-TATTMARKER_DECL_VIRT(TH1K);-TOBJECT_DECL_VIRT(TH1K);-DELETABLE_DECL_VIRT(TH1K);-TARRAY_DECL_VIRT(TH1K);+#define TH1K_DEF_VIRT(Type) \  -TH1K_DECL_VIRT(TH1K); +#define TH1K_DEF_NONVIRT(Type) \ -TH1K_DECL_NONVIRT(TH1K);  -#endif // __HROOT_HIST__TH1K__+#define TH1K_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1K)+TARRAYF_DECL_VIRT(TH1K)+TNAMED_DECL_VIRT(TH1K)+TATTLINE_DECL_VIRT(TH1K)+TATTFILL_DECL_VIRT(TH1K)+TATTMARKER_DECL_VIRT(TH1K)+TOBJECT_DECL_VIRT(TH1K)+DELETABLE_DECL_VIRT(TH1K)+TARRAY_DECL_VIRT(TH1K)+TH1K_DECL_VIRT(TH1K)+TH1K_DECL_NONVIRT(TH1K)+TH1K_DECL_ACCESSOR(TH1K)  #ifdef __cplusplus }
csrc/HROOTHistTH1S.cpp view
@@ -1,18 +1,22 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayS.h"+ #include "TH1S.h"-#include "HROOTHistTH1S.h" +#include "HROOTHistTH1S.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TH1_DEF_VIRT(TH1S) TARRAYS_DEF_VIRT(TH1S)@@ -23,8 +27,7 @@ TOBJECT_DEF_VIRT(TH1S) DELETABLE_DEF_VIRT(TH1S) TARRAY_DEF_VIRT(TH1S)- TH1S_DEF_VIRT(TH1S)- TH1S_DEF_NONVIRT(TH1S)+TH1S_DEF_ACCESSOR(TH1S) 
csrc/HROOTHistTH1S.h view
@@ -1,56 +1,70 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH1S__-#define __HROOT_HIST__TH1S__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTArrayS.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH1S_DECL_VIRT + #define TH1S_DECL_VIRT(Type) \  -#undef TH1S_DECL_NONVIRT + #define TH1S_DECL_NONVIRT(Type) \  -#undef TH1S_DEF_VIRT-#define TH1S_DEF_VIRT(Type)\ +#define TH1S_DECL_ACCESSOR(Type) \ -#undef TH1S_DEF_NONVIRT-#define TH1S_DEF_NONVIRT(Type)\  -TH1_DECL_VIRT(TH1S);-TARRAYS_DECL_VIRT(TH1S);-TNAMED_DECL_VIRT(TH1S);-TATTLINE_DECL_VIRT(TH1S);-TATTFILL_DECL_VIRT(TH1S);-TATTMARKER_DECL_VIRT(TH1S);-TOBJECT_DECL_VIRT(TH1S);-DELETABLE_DECL_VIRT(TH1S);-TARRAY_DECL_VIRT(TH1S);+#define TH1S_DEF_VIRT(Type) \  -TH1S_DECL_VIRT(TH1S); +#define TH1S_DEF_NONVIRT(Type) \ -TH1S_DECL_NONVIRT(TH1S);  -#endif // __HROOT_HIST__TH1S__+#define TH1S_DEF_ACCESSOR(Type) \++++TH1_DECL_VIRT(TH1S)+TARRAYS_DECL_VIRT(TH1S)+TNAMED_DECL_VIRT(TH1S)+TATTLINE_DECL_VIRT(TH1S)+TATTFILL_DECL_VIRT(TH1S)+TATTMARKER_DECL_VIRT(TH1S)+TOBJECT_DECL_VIRT(TH1S)+DELETABLE_DECL_VIRT(TH1S)+TARRAY_DECL_VIRT(TH1S)+TH1S_DECL_VIRT(TH1S)+TH1S_DECL_NONVIRT(TH1S)+TH1S_DECL_ACCESSOR(TH1S)  #ifdef __cplusplus }
csrc/HROOTHistTH2.cpp view
@@ -1,22 +1,29 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1D.h"+ #include "HROOTHistTH1.h"+ #include "HROOTHistTF1.h"+ #include "HROOTCoreTObjArray.h"+ #include "TH2.h"-#include "HROOTHistTH2.h" +#include "HROOTHistTH2.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2_fill1_PROTECTED () +#define IS_TH2_fill1_PROTECTED () TH1_DEF_VIRT(TH2) TNAMED_DEF_VIRT(TH2) TATTLINE_DEF_VIRT(TH2)@@ -24,8 +31,7 @@ TATTMARKER_DEF_VIRT(TH2) TOBJECT_DEF_VIRT(TH2) DELETABLE_DEF_VIRT(TH2)- TH2_DEF_VIRT(TH2)- TH2_DEF_NONVIRT(TH2)+TH2_DEF_ACCESSOR(TH2) 
csrc/HROOTHistTH2.h view
@@ -1,138 +1,148 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2__-#define __HROOT_HIST__TH2__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TH2_DECL_VIRT + #define TH2_DECL_VIRT(Type) \-int Type ## _fill2 ( Type ## _p p, double x, double y ); \-int Type ## _fill2w ( Type ## _p p, double x, double y, double w ); \-void Type ## _fillN2 ( Type ## _p p, int ntimes, double * x, double * y, double * w, int stride ); \-void Type ## _fillRandom2 ( Type ## _p p, TH1_p h, int ntimes ); \-int Type ## _findFirstBinAbove2 ( Type ## _p p, double threshold, int axis ); \-int Type ## _findLastBinAbove2 ( Type ## _p p, double threshold, int axis ); \-void Type ## _FitSlicesX ( Type ## _p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr ); \-void Type ## _FitSlicesY ( Type ## _p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr ); \-double Type ## _getCorrelationFactor2 ( Type ## _p p, int axis1, int axis2 ); \-double Type ## _getCovariance2 ( Type ## _p p, int axis1, int axis2 ); \-double Type ## _integral2 ( Type ## _p p, int binx1, int binx2, int biny1, int biny2, const char* option ); \-TH2_p Type ## _rebinX2 ( Type ## _p p, int ngroup, const char* newname ); \-TH2_p Type ## _rebinY2 ( Type ## _p p, int ngroup, const char* newname ); \-TH2_p Type ## _Rebin2D ( Type ## _p p, int nxgroup, int nygroup, const char* newname ); \-void Type ## _SetShowProjectionX ( Type ## _p p, int nbins ); \-void Type ## _SetShowProjectionY ( Type ## _p p, int nbins )+int Type##_fill2 ( Type##_p p, double x, double y );\+int Type##_fill2w ( Type##_p p, double x, double y, double w );\+void Type##_fillN2 ( Type##_p p, int ntimes, double* x, double* y, double* w, int stride );\+void Type##_fillRandom2 ( Type##_p p, TH1_p h, int ntimes );\+int Type##_findFirstBinAbove2 ( Type##_p p, double threshold, int axis );\+int Type##_findLastBinAbove2 ( Type##_p p, double threshold, int axis );\+void Type##_FitSlicesX ( Type##_p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr );\+void Type##_FitSlicesY ( Type##_p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr );\+double Type##_getCorrelationFactor2 ( Type##_p p, int axis1, int axis2 );\+double Type##_getCovariance2 ( Type##_p p, int axis1, int axis2 );\+double Type##_integral2 ( Type##_p p, int binx1, int binx2, int biny1, int biny2, const char* option );\+TH2_p Type##_rebinX2 ( Type##_p p, int ngroup, const char* newname );\+TH2_p Type##_rebinY2 ( Type##_p p, int ngroup, const char* newname );\+TH2_p Type##_Rebin2D ( Type##_p p, int nxgroup, int nygroup, const char* newname );\+void Type##_SetShowProjectionX ( Type##_p p, int nbins );\+void Type##_SetShowProjectionY ( Type##_p p, int nbins ); -#undef TH2_DECL_NONVIRT + #define TH2_DECL_NONVIRT(Type) \-TH1D_p Type ## _tH2ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, const char* option ); \-TH1D_p Type ## _tH2ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, const char* option )+TH1D_p Type##_tH2_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, const char* option );\+TH1D_p Type##_tH2_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, const char* option ); -#undef TH2_DEF_VIRT-#define TH2_DEF_VIRT(Type)\-int Type ## _fill2 ( Type ## _p p, double x, double y )\-{\-return TYPECASTMETHOD(Type,fill2,TH2)(p)->Fill(x, y);\++#define TH2_DECL_ACCESSOR(Type) \++++#define TH2_DEF_VIRT(Type) \+int Type##_fill2 ( Type##_p p, double x, double y ) {\+return ((TYPECASTMETHOD(Type, fill2, TH2))(p))->Fill(x, y);\ }\-int Type ## _fill2w ( Type ## _p p, double x, double y, double w )\-{\-return TYPECASTMETHOD(Type,fill2w,TH2)(p)->Fill(x, y, w);\+\+int Type##_fill2w ( Type##_p p, double x, double y, double w ) {\+return ((TYPECASTMETHOD(Type, fill2w, TH2))(p))->Fill(x, y, w);\ }\-void Type ## _fillN2 ( Type ## _p p, int ntimes, double * x, double * y, double * w, int stride )\-{\-TYPECASTMETHOD(Type,fillN2,TH2)(p)->FillN(ntimes, x, y, w, stride);\+\+void Type##_fillN2 ( Type##_p p, int ntimes, double* x, double* y, double* w, int stride ) {\+((TYPECASTMETHOD(Type, fillN2, TH2))(p))->FillN(ntimes, x, y, w, stride);\ }\-void Type ## _fillRandom2 ( Type ## _p p, TH1_p h, int ntimes )\-{\-TYPECASTMETHOD(Type,fillRandom2,TH2)(p)->FillRandom(to_nonconst<TH1,TH1_t>(h), ntimes);\+\+void Type##_fillRandom2 ( Type##_p p, TH1_p h, int ntimes ) {\+((TYPECASTMETHOD(Type, fillRandom2, TH2))(p))->FillRandom(from_nonconst_to_nonconst<TH1, TH1_t>(h), ntimes);\ }\-int Type ## _findFirstBinAbove2 ( Type ## _p p, double threshold, int axis )\-{\-return TYPECASTMETHOD(Type,findFirstBinAbove2,TH2)(p)->FindFirstBinAbove(threshold, axis);\+\+int Type##_findFirstBinAbove2 ( Type##_p p, double threshold, int axis ) {\+return ((TYPECASTMETHOD(Type, findFirstBinAbove2, TH2))(p))->FindFirstBinAbove(threshold, axis);\ }\-int Type ## _findLastBinAbove2 ( Type ## _p p, double threshold, int axis )\-{\-return TYPECASTMETHOD(Type,findLastBinAbove2,TH2)(p)->FindLastBinAbove(threshold, axis);\+\+int Type##_findLastBinAbove2 ( Type##_p p, double threshold, int axis ) {\+return ((TYPECASTMETHOD(Type, findLastBinAbove2, TH2))(p))->FindLastBinAbove(threshold, axis);\ }\-void Type ## _FitSlicesX ( Type ## _p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr )\-{\-TYPECASTMETHOD(Type,FitSlicesX,TH2)(p)->FitSlicesX(to_nonconst<TF1,TF1_t>(f1), firstybin, lastybin, cut, option, to_nonconst<TObjArray,TObjArray_t>(arr));\+\+void Type##_FitSlicesX ( Type##_p p, TF1_p f1, int firstybin, int lastybin, int cut, const char* option, TObjArray_p arr ) {\+((TYPECASTMETHOD(Type, FitSlicesX, TH2))(p))->FitSlicesX(from_nonconst_to_nonconst<TF1, TF1_t>(f1), firstybin, lastybin, cut, option, from_nonconst_to_nonconst<TObjArray, TObjArray_t>(arr));\ }\-void Type ## _FitSlicesY ( Type ## _p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr )\-{\-TYPECASTMETHOD(Type,FitSlicesY,TH2)(p)->FitSlicesY(to_nonconst<TF1,TF1_t>(f1), firstxbin, lastxbin, cut, option, to_nonconst<TObjArray,TObjArray_t>(arr));\+\+void Type##_FitSlicesY ( Type##_p p, TF1_p f1, int firstxbin, int lastxbin, int cut, const char* option, TObjArray_p arr ) {\+((TYPECASTMETHOD(Type, FitSlicesY, TH2))(p))->FitSlicesY(from_nonconst_to_nonconst<TF1, TF1_t>(f1), firstxbin, lastxbin, cut, option, from_nonconst_to_nonconst<TObjArray, TObjArray_t>(arr));\ }\-double Type ## _getCorrelationFactor2 ( Type ## _p p, int axis1, int axis2 )\-{\-return TYPECASTMETHOD(Type,getCorrelationFactor2,TH2)(p)->GetCorrelationFactor(axis1, axis2);\+\+double Type##_getCorrelationFactor2 ( Type##_p p, int axis1, int axis2 ) {\+return ((TYPECASTMETHOD(Type, getCorrelationFactor2, TH2))(p))->GetCorrelationFactor(axis1, axis2);\ }\-double Type ## _getCovariance2 ( Type ## _p p, int axis1, int axis2 )\-{\-return TYPECASTMETHOD(Type,getCovariance2,TH2)(p)->GetCovariance(axis1, axis2);\+\+double Type##_getCovariance2 ( Type##_p p, int axis1, int axis2 ) {\+return ((TYPECASTMETHOD(Type, getCovariance2, TH2))(p))->GetCovariance(axis1, axis2);\ }\-double Type ## _integral2 ( Type ## _p p, int binx1, int binx2, int biny1, int biny2, const char* option )\-{\-return TYPECASTMETHOD(Type,integral2,TH2)(p)->Integral(binx1, binx2, biny1, biny2, option);\+\+double Type##_integral2 ( Type##_p p, int binx1, int binx2, int biny1, int biny2, const char* option ) {\+return ((TYPECASTMETHOD(Type, integral2, TH2))(p))->Integral(binx1, binx2, biny1, biny2, option);\ }\-TH2_p Type ## _rebinX2 ( Type ## _p p, int ngroup, const char* newname )\-{\-return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,rebinX2,TH2)(p)->RebinX(ngroup, newname));\+\+TH2_p Type##_rebinX2 ( Type##_p p, int ngroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH2_t, TH2>((TH2*)((TYPECASTMETHOD(Type, rebinX2, TH2))(p))->RebinX(ngroup, newname));\ }\-TH2_p Type ## _rebinY2 ( Type ## _p p, int ngroup, const char* newname )\-{\-return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,rebinY2,TH2)(p)->RebinY(ngroup, newname));\+\+TH2_p Type##_rebinY2 ( Type##_p p, int ngroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH2_t, TH2>((TH2*)((TYPECASTMETHOD(Type, rebinY2, TH2))(p))->RebinY(ngroup, newname));\ }\-TH2_p Type ## _Rebin2D ( Type ## _p p, int nxgroup, int nygroup, const char* newname )\-{\-return to_nonconst<TH2_t,TH2>((TH2*)TYPECASTMETHOD(Type,Rebin2D,TH2)(p)->Rebin2D(nxgroup, nygroup, newname));\+\+TH2_p Type##_Rebin2D ( Type##_p p, int nxgroup, int nygroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH2_t, TH2>((TH2*)((TYPECASTMETHOD(Type, Rebin2D, TH2))(p))->Rebin2D(nxgroup, nygroup, newname));\ }\-void Type ## _SetShowProjectionX ( Type ## _p p, int nbins )\-{\-TYPECASTMETHOD(Type,SetShowProjectionX,TH2)(p)->SetShowProjectionX(nbins);\+\+void Type##_SetShowProjectionX ( Type##_p p, int nbins ) {\+((TYPECASTMETHOD(Type, SetShowProjectionX, TH2))(p))->SetShowProjectionX(nbins);\ }\-void Type ## _SetShowProjectionY ( Type ## _p p, int nbins )\-{\-TYPECASTMETHOD(Type,SetShowProjectionY,TH2)(p)->SetShowProjectionY(nbins);\+\+void Type##_SetShowProjectionY ( Type##_p p, int nbins ) {\+((TYPECASTMETHOD(Type, SetShowProjectionY, TH2))(p))->SetShowProjectionY(nbins);\ } -#undef TH2_DEF_NONVIRT-#define TH2_DEF_NONVIRT(Type)\-TH1D_p Type ## _tH2ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, const char* option )\-{\-return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH2ProjectionX,TH2)(p)->ProjectionX(name, firstybin, lastybin, option));\++#define TH2_DEF_NONVIRT(Type) \+TH1D_p Type##_tH2_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, const char* option ) {\+return from_nonconst_to_nonconst<TH1D_t, TH1D>((TH1D*)((TYPECASTMETHOD(Type, tH2_ProjectionX, TH2))(p))->ProjectionX(name, firstybin, lastybin, option));\ }\-TH1D_p Type ## _tH2ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, const char* option )\-{\-return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH2ProjectionY,TH2)(p)->ProjectionY(name, firstxbin, lastxbin, option));\+\+TH1D_p Type##_tH2_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, const char* option ) {\+return from_nonconst_to_nonconst<TH1D_t, TH1D>((TH1D*)((TYPECASTMETHOD(Type, tH2_ProjectionY, TH2))(p))->ProjectionY(name, firstxbin, lastxbin, option));\ } -TH1_DECL_VIRT(TH2);-TNAMED_DECL_VIRT(TH2);-TATTLINE_DECL_VIRT(TH2);-TATTFILL_DECL_VIRT(TH2);-TATTMARKER_DECL_VIRT(TH2);-TOBJECT_DECL_VIRT(TH2);-DELETABLE_DECL_VIRT(TH2); +#define TH2_DEF_ACCESSOR(Type) \ -TH2_DECL_VIRT(TH2);  -TH2_DECL_NONVIRT(TH2);---#endif // __HROOT_HIST__TH2__+TH1_DECL_VIRT(TH2)+TNAMED_DECL_VIRT(TH2)+TATTLINE_DECL_VIRT(TH2)+TATTFILL_DECL_VIRT(TH2)+TATTMARKER_DECL_VIRT(TH2)+TOBJECT_DECL_VIRT(TH2)+DELETABLE_DECL_VIRT(TH2)+TH2_DECL_VIRT(TH2)+TH2_DECL_NONVIRT(TH2)+TH2_DECL_ACCESSOR(TH2)  #ifdef __cplusplus }
csrc/HROOTHistTH2C.cpp view
@@ -1,20 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayC.h"+ #include "TH2C.h"-#include "HROOTHistTH2C.h" +#include "HROOTHistTH2C.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2C_fill1_PROTECTED () +#define IS_TH2C_fill1_PROTECTED () TH2_DEF_VIRT(TH2C) TARRAYC_DEF_VIRT(TH2C) TH1_DEF_VIRT(TH2C)@@ -25,8 +30,7 @@ TOBJECT_DEF_VIRT(TH2C) DELETABLE_DEF_VIRT(TH2C) TARRAY_DEF_VIRT(TH2C)- TH2C_DEF_VIRT(TH2C)- TH2C_DEF_NONVIRT(TH2C)+TH2C_DEF_ACCESSOR(TH2C) 
csrc/HROOTHistTH2C.h view
@@ -1,58 +1,73 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2C__-#define __HROOT_HIST__TH2C__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayC.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH2C_DECL_VIRT + #define TH2C_DECL_VIRT(Type) \  -#undef TH2C_DECL_NONVIRT + #define TH2C_DECL_NONVIRT(Type) \  -#undef TH2C_DEF_VIRT-#define TH2C_DEF_VIRT(Type)\ +#define TH2C_DECL_ACCESSOR(Type) \ -#undef TH2C_DEF_NONVIRT-#define TH2C_DEF_NONVIRT(Type)\  -TH2_DECL_VIRT(TH2C);-TARRAYC_DECL_VIRT(TH2C);-TH1_DECL_VIRT(TH2C);-TNAMED_DECL_VIRT(TH2C);-TATTLINE_DECL_VIRT(TH2C);-TATTFILL_DECL_VIRT(TH2C);-TATTMARKER_DECL_VIRT(TH2C);-TOBJECT_DECL_VIRT(TH2C);-DELETABLE_DECL_VIRT(TH2C);-TARRAY_DECL_VIRT(TH2C);+#define TH2C_DEF_VIRT(Type) \  -TH2C_DECL_VIRT(TH2C); +#define TH2C_DEF_NONVIRT(Type) \ -TH2C_DECL_NONVIRT(TH2C);  -#endif // __HROOT_HIST__TH2C__+#define TH2C_DEF_ACCESSOR(Type) \++++TH2_DECL_VIRT(TH2C)+TARRAYC_DECL_VIRT(TH2C)+TH1_DECL_VIRT(TH2C)+TNAMED_DECL_VIRT(TH2C)+TATTLINE_DECL_VIRT(TH2C)+TATTFILL_DECL_VIRT(TH2C)+TATTMARKER_DECL_VIRT(TH2C)+TOBJECT_DECL_VIRT(TH2C)+DELETABLE_DECL_VIRT(TH2C)+TARRAY_DECL_VIRT(TH2C)+TH2C_DECL_VIRT(TH2C)+TH2C_DECL_NONVIRT(TH2C)+TH2C_DECL_ACCESSOR(TH2C)  #ifdef __cplusplus }
csrc/HROOTHistTH2D.cpp view
@@ -1,20 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayD.h"+ #include "TH2D.h"-#include "HROOTHistTH2D.h" +#include "HROOTHistTH2D.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2D_fill1_PROTECTED () +#define IS_TH2D_fill1_PROTECTED () TH2_DEF_VIRT(TH2D) TARRAYD_DEF_VIRT(TH2D) TH1_DEF_VIRT(TH2D)@@ -25,8 +30,7 @@ TOBJECT_DEF_VIRT(TH2D) DELETABLE_DEF_VIRT(TH2D) TARRAY_DEF_VIRT(TH2D)- TH2D_DEF_VIRT(TH2D)- TH2D_DEF_NONVIRT(TH2D)+TH2D_DEF_ACCESSOR(TH2D) 
csrc/HROOTHistTH2D.h view
@@ -1,62 +1,75 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2D__-#define __HROOT_HIST__TH2D__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayD.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH2D_DECL_VIRT + #define TH2D_DECL_VIRT(Type) \  -#undef TH2D_DECL_NONVIRT + #define TH2D_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )+Type##_p Type##_newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup ); -#undef TH2D_DEF_VIRT-#define TH2D_DEF_VIRT(Type)\ +#define TH2D_DECL_ACCESSOR(Type) \ -#undef TH2D_DEF_NONVIRT-#define TH2D_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )\-{\-Type * newp = new Type (name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TH2_DECL_VIRT(TH2D);-TARRAYD_DECL_VIRT(TH2D);-TH1_DECL_VIRT(TH2D);-TNAMED_DECL_VIRT(TH2D);-TATTLINE_DECL_VIRT(TH2D);-TATTFILL_DECL_VIRT(TH2D);-TATTMARKER_DECL_VIRT(TH2D);-TOBJECT_DECL_VIRT(TH2D);-DELETABLE_DECL_VIRT(TH2D);-TARRAY_DECL_VIRT(TH2D); +#define TH2D_DEF_VIRT(Type) \ -TH2D_DECL_VIRT(TH2D);  -TH2D_DECL_NONVIRT(TH2D);+#define TH2D_DEF_NONVIRT(Type) \+Type##_p Type##_newTH2D ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup ) {\+Type* newp=new Type(name, title, nbinsx, xlow, xup, nbinsy, ylow, yup);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__TH2D__+#define TH2D_DEF_ACCESSOR(Type) \++++TH2_DECL_VIRT(TH2D)+TARRAYD_DECL_VIRT(TH2D)+TH1_DECL_VIRT(TH2D)+TNAMED_DECL_VIRT(TH2D)+TATTLINE_DECL_VIRT(TH2D)+TATTFILL_DECL_VIRT(TH2D)+TATTMARKER_DECL_VIRT(TH2D)+TOBJECT_DECL_VIRT(TH2D)+DELETABLE_DECL_VIRT(TH2D)+TARRAY_DECL_VIRT(TH2D)+TH2D_DECL_VIRT(TH2D)+TH2D_DECL_NONVIRT(TH2D)+TH2D_DECL_ACCESSOR(TH2D)  #ifdef __cplusplus }
csrc/HROOTHistTH2F.cpp view
@@ -1,20 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayF.h"+ #include "TH2F.h"-#include "HROOTHistTH2F.h" +#include "HROOTHistTH2F.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2F_fill1_PROTECTED () +#define IS_TH2F_fill1_PROTECTED () TH2_DEF_VIRT(TH2F) TARRAYF_DEF_VIRT(TH2F) TH1_DEF_VIRT(TH2F)@@ -25,8 +30,7 @@ TOBJECT_DEF_VIRT(TH2F) DELETABLE_DEF_VIRT(TH2F) TARRAY_DEF_VIRT(TH2F)- TH2F_DEF_VIRT(TH2F)- TH2F_DEF_NONVIRT(TH2F)+TH2F_DEF_ACCESSOR(TH2F) 
csrc/HROOTHistTH2F.h view
@@ -1,62 +1,75 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2F__-#define __HROOT_HIST__TH2F__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayF.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH2F_DECL_VIRT + #define TH2F_DECL_VIRT(Type) \  -#undef TH2F_DECL_NONVIRT + #define TH2F_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )+Type##_p Type##_newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup ); -#undef TH2F_DEF_VIRT-#define TH2F_DEF_VIRT(Type)\ +#define TH2F_DECL_ACCESSOR(Type) \ -#undef TH2F_DEF_NONVIRT-#define TH2F_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup )\-{\-Type * newp = new Type (name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TH2_DECL_VIRT(TH2F);-TARRAYF_DECL_VIRT(TH2F);-TH1_DECL_VIRT(TH2F);-TNAMED_DECL_VIRT(TH2F);-TATTLINE_DECL_VIRT(TH2F);-TATTFILL_DECL_VIRT(TH2F);-TATTMARKER_DECL_VIRT(TH2F);-TOBJECT_DECL_VIRT(TH2F);-DELETABLE_DECL_VIRT(TH2F);-TARRAY_DECL_VIRT(TH2F); +#define TH2F_DEF_VIRT(Type) \ -TH2F_DECL_VIRT(TH2F);  -TH2F_DECL_NONVIRT(TH2F);+#define TH2F_DEF_NONVIRT(Type) \+Type##_p Type##_newTH2F ( const char* name, const char* title, int nbinsx, double xlow, double xup, int nbinsy, double ylow, double yup ) {\+Type* newp=new Type(name, title, nbinsx, xlow, xup, nbinsy, ylow, yup);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__TH2F__+#define TH2F_DEF_ACCESSOR(Type) \++++TH2_DECL_VIRT(TH2F)+TARRAYF_DECL_VIRT(TH2F)+TH1_DECL_VIRT(TH2F)+TNAMED_DECL_VIRT(TH2F)+TATTLINE_DECL_VIRT(TH2F)+TATTFILL_DECL_VIRT(TH2F)+TATTMARKER_DECL_VIRT(TH2F)+TOBJECT_DECL_VIRT(TH2F)+DELETABLE_DECL_VIRT(TH2F)+TARRAY_DECL_VIRT(TH2F)+TH2F_DECL_VIRT(TH2F)+TH2F_DECL_NONVIRT(TH2F)+TH2F_DECL_ACCESSOR(TH2F)  #ifdef __cplusplus }
csrc/HROOTHistTH2I.cpp view
@@ -1,20 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayI.h"+ #include "TH2I.h"-#include "HROOTHistTH2I.h" +#include "HROOTHistTH2I.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2I_fill1_PROTECTED () +#define IS_TH2I_fill1_PROTECTED () TH2_DEF_VIRT(TH2I) TARRAYI_DEF_VIRT(TH2I) TH1_DEF_VIRT(TH2I)@@ -25,8 +30,7 @@ TOBJECT_DEF_VIRT(TH2I) DELETABLE_DEF_VIRT(TH2I) TARRAY_DEF_VIRT(TH2I)- TH2I_DEF_VIRT(TH2I)- TH2I_DEF_NONVIRT(TH2I)+TH2I_DEF_ACCESSOR(TH2I) 
csrc/HROOTHistTH2I.h view
@@ -1,58 +1,73 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2I__-#define __HROOT_HIST__TH2I__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayI.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH2I_DECL_VIRT + #define TH2I_DECL_VIRT(Type) \  -#undef TH2I_DECL_NONVIRT + #define TH2I_DECL_NONVIRT(Type) \  -#undef TH2I_DEF_VIRT-#define TH2I_DEF_VIRT(Type)\ +#define TH2I_DECL_ACCESSOR(Type) \ -#undef TH2I_DEF_NONVIRT-#define TH2I_DEF_NONVIRT(Type)\  -TH2_DECL_VIRT(TH2I);-TARRAYI_DECL_VIRT(TH2I);-TH1_DECL_VIRT(TH2I);-TNAMED_DECL_VIRT(TH2I);-TATTLINE_DECL_VIRT(TH2I);-TATTFILL_DECL_VIRT(TH2I);-TATTMARKER_DECL_VIRT(TH2I);-TOBJECT_DECL_VIRT(TH2I);-DELETABLE_DECL_VIRT(TH2I);-TARRAY_DECL_VIRT(TH2I);+#define TH2I_DEF_VIRT(Type) \  -TH2I_DECL_VIRT(TH2I); +#define TH2I_DEF_NONVIRT(Type) \ -TH2I_DECL_NONVIRT(TH2I);  -#endif // __HROOT_HIST__TH2I__+#define TH2I_DEF_ACCESSOR(Type) \++++TH2_DECL_VIRT(TH2I)+TARRAYI_DECL_VIRT(TH2I)+TH1_DECL_VIRT(TH2I)+TNAMED_DECL_VIRT(TH2I)+TATTLINE_DECL_VIRT(TH2I)+TATTFILL_DECL_VIRT(TH2I)+TATTMARKER_DECL_VIRT(TH2I)+TOBJECT_DECL_VIRT(TH2I)+DELETABLE_DECL_VIRT(TH2I)+TARRAY_DECL_VIRT(TH2I)+TH2I_DECL_VIRT(TH2I)+TH2I_DECL_NONVIRT(TH2I)+TH2I_DECL_ACCESSOR(TH2I)  #ifdef __cplusplus }
csrc/HROOTHistTH2Poly.cpp view
@@ -1,19 +1,47 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"++#include "HROOTCoreTObject.h"+ #include "HROOTHistTH2.h"+ #include "TH2Poly.h"-#include "HROOTHistTH2Poly.h" +#include "HROOTHistTH2Poly.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH2Poly_fill1_PROTECTED () +#define IS_TH2Poly_fillN1_PROTECTED ()++#define IS_TH2Poly_GetBinContent2_PROTECTED ()++#define IS_TH2Poly_GetBinContent3_PROTECTED ()++#define IS_TH2Poly_GetBinError2_PROTECTED ()++#define IS_TH2Poly_GetBinError3_PROTECTED ()++#define IS_TH2Poly_integral1_PROTECTED ()++#define IS_TH2Poly_integral2_PROTECTED ()++#define IS_TH2Poly_setBinContent2_PROTECTED ()++#define IS_TH2Poly_setBinContent3_PROTECTED ()++#define IS_TH2Poly_setBinError2_PROTECTED ()++#define IS_TH2Poly_setBinError3_PROTECTED () TH2_DEF_VIRT(TH2Poly) TH1_DEF_VIRT(TH2Poly) TNAMED_DEF_VIRT(TH2Poly)@@ -22,8 +50,7 @@ TATTMARKER_DEF_VIRT(TH2Poly) TOBJECT_DEF_VIRT(TH2Poly) DELETABLE_DEF_VIRT(TH2Poly)- TH2POLY_DEF_VIRT(TH2Poly)- TH2POLY_DEF_NONVIRT(TH2Poly)+TH2POLY_DEF_ACCESSOR(TH2Poly) 
csrc/HROOTHistTH2Poly.h view
@@ -1,53 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2Poly__-#define __HROOT_HIST__TH2Poly__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h" -#undef TH2POLY_DECL_VIRT +#include "STDDeletable.h"++#include "HROOT-coreType.h"++ #define TH2POLY_DECL_VIRT(Type) \+int Type##_AddBin ( Type##_p p, TObject_p poly );\+int Type##_FillS ( Type##_p p, const char* name, double w );  -#undef TH2POLY_DECL_NONVIRT  #define TH2POLY_DECL_NONVIRT(Type) \+Type##_p Type##_newTH2Poly ( const char* name, const char* title, double xlow, double xup, double ylow, double yup );  -#undef TH2POLY_DEF_VIRT-#define TH2POLY_DEF_VIRT(Type)\+#define TH2POLY_DECL_ACCESSOR(Type) \  -#undef TH2POLY_DEF_NONVIRT-#define TH2POLY_DEF_NONVIRT(Type)\ +#define TH2POLY_DEF_VIRT(Type) \+int Type##_AddBin ( Type##_p p, TObject_p poly ) {\+return ((TYPECASTMETHOD(Type, AddBin, TH2Poly))(p))->AddBin(from_nonconst_to_nonconst<TObject, TObject_t>(poly));\+}\+\+int Type##_FillS ( Type##_p p, const char* name, double w ) {\+return ((TYPECASTMETHOD(Type, FillS, TH2Poly))(p))->Fill(name, w);\+} -TH2_DECL_VIRT(TH2Poly);-TH1_DECL_VIRT(TH2Poly);-TNAMED_DECL_VIRT(TH2Poly);-TATTLINE_DECL_VIRT(TH2Poly);-TATTFILL_DECL_VIRT(TH2Poly);-TATTMARKER_DECL_VIRT(TH2Poly);-TOBJECT_DECL_VIRT(TH2Poly);-DELETABLE_DECL_VIRT(TH2Poly); +#define TH2POLY_DEF_NONVIRT(Type) \+Type##_p Type##_newTH2Poly ( const char* name, const char* title, double xlow, double xup, double ylow, double yup ) {\+Type* newp=new Type(name, title, xlow, xup, ylow, yup);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+} -TH2POLY_DECL_VIRT(TH2Poly); +#define TH2POLY_DEF_ACCESSOR(Type) \ -TH2POLY_DECL_NONVIRT(TH2Poly);  -#endif // __HROOT_HIST__TH2Poly__+TH2_DECL_VIRT(TH2Poly)+TH1_DECL_VIRT(TH2Poly)+TNAMED_DECL_VIRT(TH2Poly)+TATTLINE_DECL_VIRT(TH2Poly)+TATTFILL_DECL_VIRT(TH2Poly)+TATTMARKER_DECL_VIRT(TH2Poly)+TOBJECT_DECL_VIRT(TH2Poly)+DELETABLE_DECL_VIRT(TH2Poly)+TH2POLY_DECL_VIRT(TH2Poly)+TH2POLY_DECL_NONVIRT(TH2Poly)+TH2POLY_DECL_ACCESSOR(TH2Poly)  #ifdef __cplusplus }
csrc/HROOTHistTH2S.cpp view
@@ -1,20 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayS.h"+ #include "TH2S.h"-#include "HROOTHistTH2S.h" +#include "HROOTHistTH2S.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) -#define IS_TH2S_fill1_PROTECTED () +#define IS_TH2S_fill1_PROTECTED () TH2_DEF_VIRT(TH2S) TARRAYS_DEF_VIRT(TH2S) TH1_DEF_VIRT(TH2S)@@ -25,8 +30,7 @@ TOBJECT_DEF_VIRT(TH2S) DELETABLE_DEF_VIRT(TH2S) TARRAY_DEF_VIRT(TH2S)- TH2S_DEF_VIRT(TH2S)- TH2S_DEF_NONVIRT(TH2S)+TH2S_DEF_ACCESSOR(TH2S) 
csrc/HROOTHistTH2S.h view
@@ -1,58 +1,73 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH2S__-#define __HROOT_HIST__TH2S__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH2.h"+ #include "HROOTCoreTArrayS.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH2S_DECL_VIRT + #define TH2S_DECL_VIRT(Type) \  -#undef TH2S_DECL_NONVIRT + #define TH2S_DECL_NONVIRT(Type) \  -#undef TH2S_DEF_VIRT-#define TH2S_DEF_VIRT(Type)\ +#define TH2S_DECL_ACCESSOR(Type) \ -#undef TH2S_DEF_NONVIRT-#define TH2S_DEF_NONVIRT(Type)\  -TH2_DECL_VIRT(TH2S);-TARRAYS_DECL_VIRT(TH2S);-TH1_DECL_VIRT(TH2S);-TNAMED_DECL_VIRT(TH2S);-TATTLINE_DECL_VIRT(TH2S);-TATTFILL_DECL_VIRT(TH2S);-TATTMARKER_DECL_VIRT(TH2S);-TOBJECT_DECL_VIRT(TH2S);-DELETABLE_DECL_VIRT(TH2S);-TARRAY_DECL_VIRT(TH2S);+#define TH2S_DEF_VIRT(Type) \  -TH2S_DECL_VIRT(TH2S); +#define TH2S_DEF_NONVIRT(Type) \ -TH2S_DECL_NONVIRT(TH2S);  -#endif // __HROOT_HIST__TH2S__+#define TH2S_DEF_ACCESSOR(Type) \++++TH2_DECL_VIRT(TH2S)+TARRAYS_DECL_VIRT(TH2S)+TH1_DECL_VIRT(TH2S)+TNAMED_DECL_VIRT(TH2S)+TATTLINE_DECL_VIRT(TH2S)+TATTFILL_DECL_VIRT(TH2S)+TATTMARKER_DECL_VIRT(TH2S)+TOBJECT_DECL_VIRT(TH2S)+DELETABLE_DECL_VIRT(TH2S)+TARRAY_DECL_VIRT(TH2S)+TH2S_DECL_VIRT(TH2S)+TH2S_DECL_NONVIRT(TH2S)+TH2S_DECL_ACCESSOR(TH2S)  #ifdef __cplusplus }
csrc/HROOTHistTH3.cpp view
@@ -1,23 +1,31 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH1D.h"+ #include "HROOTHistTH1.h"+ #include "HROOTHistTF1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "TH3.h"-#include "HROOTHistTH3.h" +#include "HROOTHistTH3.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3_fill1_PROTECTED ()-#define IS_TH3_fill1w_PROTECTED () +#define IS_TH3_fill1w_PROTECTED () TH1_DEF_VIRT(TH3) TATT3D_DEF_VIRT(TH3) TNAMED_DEF_VIRT(TH3)@@ -26,8 +34,7 @@ TATTMARKER_DEF_VIRT(TH3) TOBJECT_DEF_VIRT(TH3) DELETABLE_DEF_VIRT(TH3)- TH3_DEF_VIRT(TH3)- TH3_DEF_NONVIRT(TH3)+TH3_DEF_ACCESSOR(TH3) 
csrc/HROOTHistTH3.h view
@@ -1,115 +1,126 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3__-#define __HROOT_HIST__TH3__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef TH3_DECL_VIRT + #define TH3_DECL_VIRT(Type) \-int Type ## _fill3 ( Type ## _p p, double x, double y, double z ); \-int Type ## _fill3w ( Type ## _p p, double x, double y, double z, double w ); \-void Type ## _FitSlicesZ ( Type ## _p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option ); \-double Type ## _getCorrelationFactor3 ( Type ## _p p, int axis1, int axis2 ); \-double Type ## _getCovariance3 ( Type ## _p p, int axis1, int axis2 ); \-TH3_p Type ## _rebinX3 ( Type ## _p p, int ngroup, const char* newname ); \-TH3_p Type ## _rebinY3 ( Type ## _p p, int ngroup, const char* newname ); \-TH3_p Type ## _rebinZ3 ( Type ## _p p, int ngroup, const char* newname ); \-TH3_p Type ## _Rebin3D ( Type ## _p p, int nxgroup, int nygroup, int nzgroup, const char* newname )+int Type##_fill3 ( Type##_p p, double x, double y, double z );\+int Type##_fill3w ( Type##_p p, double x, double y, double z, double w );\+void Type##_FitSlicesZ ( Type##_p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option );\+double Type##_getCorrelationFactor3 ( Type##_p p, int axis1, int axis2 );\+double Type##_getCovariance3 ( Type##_p p, int axis1, int axis2 );\+TH3_p Type##_rebinX3 ( Type##_p p, int ngroup, const char* newname );\+TH3_p Type##_rebinY3 ( Type##_p p, int ngroup, const char* newname );\+TH3_p Type##_rebinZ3 ( Type##_p p, int ngroup, const char* newname );\+TH3_p Type##_Rebin3D ( Type##_p p, int nxgroup, int nygroup, int nzgroup, const char* newname ); -#undef TH3_DECL_NONVIRT + #define TH3_DECL_NONVIRT(Type) \-TH1D_p Type ## _tH3ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option ); \-TH1D_p Type ## _tH3ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option ); \-TH1D_p Type ## _tH3ProjectionZ ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option ); \-TH1_p Type ## _tH3Project3D ( Type ## _p p, const char* option )+TH1D_p Type##_tH3_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option );\+TH1D_p Type##_tH3_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option );\+TH1D_p Type##_tH3_ProjectionZ ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option );\+TH1_p Type##_tH3_Project3D ( Type##_p p, const char* option ); -#undef TH3_DEF_VIRT-#define TH3_DEF_VIRT(Type)\-int Type ## _fill3 ( Type ## _p p, double x, double y, double z )\-{\-return TYPECASTMETHOD(Type,fill3,TH3)(p)->Fill(x, y, z);\++#define TH3_DECL_ACCESSOR(Type) \++++#define TH3_DEF_VIRT(Type) \+int Type##_fill3 ( Type##_p p, double x, double y, double z ) {\+return ((TYPECASTMETHOD(Type, fill3, TH3))(p))->Fill(x, y, z);\ }\-int Type ## _fill3w ( Type ## _p p, double x, double y, double z, double w )\-{\-return TYPECASTMETHOD(Type,fill3w,TH3)(p)->Fill(x, y, z, w);\+\+int Type##_fill3w ( Type##_p p, double x, double y, double z, double w ) {\+return ((TYPECASTMETHOD(Type, fill3w, TH3))(p))->Fill(x, y, z, w);\ }\-void Type ## _FitSlicesZ ( Type ## _p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option )\-{\-TYPECASTMETHOD(Type,FitSlicesZ,TH3)(p)->FitSlicesZ(to_nonconst<TF1,TF1_t>(f1), binminx, binmaxx, binminy, binmaxy, cut, option);\+\+void Type##_FitSlicesZ ( Type##_p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option ) {\+((TYPECASTMETHOD(Type, FitSlicesZ, TH3))(p))->FitSlicesZ(from_nonconst_to_nonconst<TF1, TF1_t>(f1), binminx, binmaxx, binminy, binmaxy, cut, option);\ }\-double Type ## _getCorrelationFactor3 ( Type ## _p p, int axis1, int axis2 )\-{\-return TYPECASTMETHOD(Type,getCorrelationFactor3,TH3)(p)->GetCorrelationFactor(axis1, axis2);\+\+double Type##_getCorrelationFactor3 ( Type##_p p, int axis1, int axis2 ) {\+return ((TYPECASTMETHOD(Type, getCorrelationFactor3, TH3))(p))->GetCorrelationFactor(axis1, axis2);\ }\-double Type ## _getCovariance3 ( Type ## _p p, int axis1, int axis2 )\-{\-return TYPECASTMETHOD(Type,getCovariance3,TH3)(p)->GetCovariance(axis1, axis2);\+\+double Type##_getCovariance3 ( Type##_p p, int axis1, int axis2 ) {\+return ((TYPECASTMETHOD(Type, getCovariance3, TH3))(p))->GetCovariance(axis1, axis2);\ }\-TH3_p Type ## _rebinX3 ( Type ## _p p, int ngroup, const char* newname )\-{\-return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinX3,TH3)(p)->RebinX(ngroup, newname));\+\+TH3_p Type##_rebinX3 ( Type##_p p, int ngroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH3_t, TH3>((TH3*)((TYPECASTMETHOD(Type, rebinX3, TH3))(p))->RebinX(ngroup, newname));\ }\-TH3_p Type ## _rebinY3 ( Type ## _p p, int ngroup, const char* newname )\-{\-return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinY3,TH3)(p)->RebinY(ngroup, newname));\+\+TH3_p Type##_rebinY3 ( Type##_p p, int ngroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH3_t, TH3>((TH3*)((TYPECASTMETHOD(Type, rebinY3, TH3))(p))->RebinY(ngroup, newname));\ }\-TH3_p Type ## _rebinZ3 ( Type ## _p p, int ngroup, const char* newname )\-{\-return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,rebinZ3,TH3)(p)->RebinZ(ngroup, newname));\+\+TH3_p Type##_rebinZ3 ( Type##_p p, int ngroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH3_t, TH3>((TH3*)((TYPECASTMETHOD(Type, rebinZ3, TH3))(p))->RebinZ(ngroup, newname));\ }\-TH3_p Type ## _Rebin3D ( Type ## _p p, int nxgroup, int nygroup, int nzgroup, const char* newname )\-{\-return to_nonconst<TH3_t,TH3>((TH3*)TYPECASTMETHOD(Type,Rebin3D,TH3)(p)->Rebin3D(nxgroup, nygroup, nzgroup, newname));\+\+TH3_p Type##_Rebin3D ( Type##_p p, int nxgroup, int nygroup, int nzgroup, const char* newname ) {\+return from_nonconst_to_nonconst<TH3_t, TH3>((TH3*)((TYPECASTMETHOD(Type, Rebin3D, TH3))(p))->Rebin3D(nxgroup, nygroup, nzgroup, newname));\ } -#undef TH3_DEF_NONVIRT-#define TH3_DEF_NONVIRT(Type)\-TH1D_p Type ## _tH3ProjectionX ( Type ## _p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option )\-{\-return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionX,TH3)(p)->ProjectionX(name, firstybin, lastybin, firstzbin, lastzbin, option));\++#define TH3_DEF_NONVIRT(Type) \+TH1D_p Type##_tH3_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option ) {\+return from_nonconst_to_nonconst<TH1D_t, TH1D>((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionX, TH3))(p))->ProjectionX(name, firstybin, lastybin, firstzbin, lastzbin, option));\ }\-TH1D_p Type ## _tH3ProjectionY ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option )\-{\-return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionY,TH3)(p)->ProjectionY(name, firstxbin, lastxbin, firstzbin, lastzbin, option));\+\+TH1D_p Type##_tH3_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option ) {\+return from_nonconst_to_nonconst<TH1D_t, TH1D>((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionY, TH3))(p))->ProjectionY(name, firstxbin, lastxbin, firstzbin, lastzbin, option));\ }\-TH1D_p Type ## _tH3ProjectionZ ( Type ## _p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option )\-{\-return to_nonconst<TH1D_t,TH1D>((TH1D*)TYPECASTMETHOD(Type,tH3ProjectionZ,TH3)(p)->ProjectionZ(name, firstxbin, lastxbin, firstybin, lastybin, option));\+\+TH1D_p Type##_tH3_ProjectionZ ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option ) {\+return from_nonconst_to_nonconst<TH1D_t, TH1D>((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionZ, TH3))(p))->ProjectionZ(name, firstxbin, lastxbin, firstybin, lastybin, option));\ }\-TH1_p Type ## _tH3Project3D ( Type ## _p p, const char* option )\-{\-return to_nonconst<TH1_t,TH1>((TH1*)TYPECASTMETHOD(Type,tH3Project3D,TH3)(p)->Project3D(option));\+\+TH1_p Type##_tH3_Project3D ( Type##_p p, const char* option ) {\+return from_nonconst_to_nonconst<TH1_t, TH1>((TH1*)((TYPECASTMETHOD(Type, tH3_Project3D, TH3))(p))->Project3D(option));\ } -TH1_DECL_VIRT(TH3);-TATT3D_DECL_VIRT(TH3);-TNAMED_DECL_VIRT(TH3);-TATTLINE_DECL_VIRT(TH3);-TATTFILL_DECL_VIRT(TH3);-TATTMARKER_DECL_VIRT(TH3);-TOBJECT_DECL_VIRT(TH3);-DELETABLE_DECL_VIRT(TH3); +#define TH3_DEF_ACCESSOR(Type) \ -TH3_DECL_VIRT(TH3);  -TH3_DECL_NONVIRT(TH3);---#endif // __HROOT_HIST__TH3__+TH1_DECL_VIRT(TH3)+TATT3D_DECL_VIRT(TH3)+TNAMED_DECL_VIRT(TH3)+TATTLINE_DECL_VIRT(TH3)+TATTFILL_DECL_VIRT(TH3)+TATTMARKER_DECL_VIRT(TH3)+TOBJECT_DECL_VIRT(TH3)+DELETABLE_DECL_VIRT(TH3)+TH3_DECL_VIRT(TH3)+TH3_DECL_NONVIRT(TH3)+TH3_DECL_ACCESSOR(TH3)  #ifdef __cplusplus }
csrc/HROOTHistTH3C.cpp view
@@ -1,21 +1,27 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayC.h"+ #include "TH3C.h"-#include "HROOTHistTH3C.h" +#include "HROOTHistTH3C.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3C_fill1_PROTECTED ()-#define IS_TH3C_fill1w_PROTECTED () +#define IS_TH3C_fill1w_PROTECTED () TH3_DEF_VIRT(TH3C) TARRAYC_DEF_VIRT(TH3C) TH1_DEF_VIRT(TH3C)@@ -27,8 +33,7 @@ TOBJECT_DEF_VIRT(TH3C) DELETABLE_DEF_VIRT(TH3C) TARRAY_DEF_VIRT(TH3C)- TH3C_DEF_VIRT(TH3C)- TH3C_DEF_NONVIRT(TH3C)+TH3C_DEF_ACCESSOR(TH3C) 
csrc/HROOTHistTH3C.h view
@@ -1,60 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3C__-#define __HROOT_HIST__TH3C__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayC.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH3C_DECL_VIRT + #define TH3C_DECL_VIRT(Type) \  -#undef TH3C_DECL_NONVIRT + #define TH3C_DECL_NONVIRT(Type) \  -#undef TH3C_DEF_VIRT-#define TH3C_DEF_VIRT(Type)\ +#define TH3C_DECL_ACCESSOR(Type) \ -#undef TH3C_DEF_NONVIRT-#define TH3C_DEF_NONVIRT(Type)\  -TH3_DECL_VIRT(TH3C);-TARRAYC_DECL_VIRT(TH3C);-TH1_DECL_VIRT(TH3C);-TATT3D_DECL_VIRT(TH3C);-TNAMED_DECL_VIRT(TH3C);-TATTLINE_DECL_VIRT(TH3C);-TATTFILL_DECL_VIRT(TH3C);-TATTMARKER_DECL_VIRT(TH3C);-TOBJECT_DECL_VIRT(TH3C);-DELETABLE_DECL_VIRT(TH3C);-TARRAY_DECL_VIRT(TH3C);+#define TH3C_DEF_VIRT(Type) \  -TH3C_DECL_VIRT(TH3C); +#define TH3C_DEF_NONVIRT(Type) \ -TH3C_DECL_NONVIRT(TH3C);  -#endif // __HROOT_HIST__TH3C__+#define TH3C_DEF_ACCESSOR(Type) \++++TH3_DECL_VIRT(TH3C)+TARRAYC_DECL_VIRT(TH3C)+TH1_DECL_VIRT(TH3C)+TATT3D_DECL_VIRT(TH3C)+TNAMED_DECL_VIRT(TH3C)+TATTLINE_DECL_VIRT(TH3C)+TATTFILL_DECL_VIRT(TH3C)+TATTMARKER_DECL_VIRT(TH3C)+TOBJECT_DECL_VIRT(TH3C)+DELETABLE_DECL_VIRT(TH3C)+TARRAY_DECL_VIRT(TH3C)+TH3C_DECL_VIRT(TH3C)+TH3C_DECL_NONVIRT(TH3C)+TH3C_DECL_ACCESSOR(TH3C)  #ifdef __cplusplus }
csrc/HROOTHistTH3D.cpp view
@@ -1,21 +1,27 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayD.h"+ #include "TH3D.h"-#include "HROOTHistTH3D.h" +#include "HROOTHistTH3D.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3D_fill1_PROTECTED ()-#define IS_TH3D_fill1w_PROTECTED () +#define IS_TH3D_fill1w_PROTECTED () TH3_DEF_VIRT(TH3D) TARRAYD_DEF_VIRT(TH3D) TH1_DEF_VIRT(TH3D)@@ -27,8 +33,7 @@ TOBJECT_DEF_VIRT(TH3D) DELETABLE_DEF_VIRT(TH3D) TARRAY_DEF_VIRT(TH3D)- TH3D_DEF_VIRT(TH3D)- TH3D_DEF_NONVIRT(TH3D)+TH3D_DEF_ACCESSOR(TH3D) 
csrc/HROOTHistTH3D.h view
@@ -1,60 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3D__-#define __HROOT_HIST__TH3D__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayD.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH3D_DECL_VIRT + #define TH3D_DECL_VIRT(Type) \  -#undef TH3D_DECL_NONVIRT + #define TH3D_DECL_NONVIRT(Type) \  -#undef TH3D_DEF_VIRT-#define TH3D_DEF_VIRT(Type)\ +#define TH3D_DECL_ACCESSOR(Type) \ -#undef TH3D_DEF_NONVIRT-#define TH3D_DEF_NONVIRT(Type)\  -TH3_DECL_VIRT(TH3D);-TARRAYD_DECL_VIRT(TH3D);-TH1_DECL_VIRT(TH3D);-TATT3D_DECL_VIRT(TH3D);-TNAMED_DECL_VIRT(TH3D);-TATTLINE_DECL_VIRT(TH3D);-TATTFILL_DECL_VIRT(TH3D);-TATTMARKER_DECL_VIRT(TH3D);-TOBJECT_DECL_VIRT(TH3D);-DELETABLE_DECL_VIRT(TH3D);-TARRAY_DECL_VIRT(TH3D);+#define TH3D_DEF_VIRT(Type) \  -TH3D_DECL_VIRT(TH3D); +#define TH3D_DEF_NONVIRT(Type) \ -TH3D_DECL_NONVIRT(TH3D);  -#endif // __HROOT_HIST__TH3D__+#define TH3D_DEF_ACCESSOR(Type) \++++TH3_DECL_VIRT(TH3D)+TARRAYD_DECL_VIRT(TH3D)+TH1_DECL_VIRT(TH3D)+TATT3D_DECL_VIRT(TH3D)+TNAMED_DECL_VIRT(TH3D)+TATTLINE_DECL_VIRT(TH3D)+TATTFILL_DECL_VIRT(TH3D)+TATTMARKER_DECL_VIRT(TH3D)+TOBJECT_DECL_VIRT(TH3D)+DELETABLE_DECL_VIRT(TH3D)+TARRAY_DECL_VIRT(TH3D)+TH3D_DECL_VIRT(TH3D)+TH3D_DECL_NONVIRT(TH3D)+TH3D_DECL_ACCESSOR(TH3D)  #ifdef __cplusplus }
csrc/HROOTHistTH3F.cpp view
@@ -1,21 +1,27 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayF.h"+ #include "TH3F.h"-#include "HROOTHistTH3F.h" +#include "HROOTHistTH3F.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3F_fill1_PROTECTED ()-#define IS_TH3F_fill1w_PROTECTED () +#define IS_TH3F_fill1w_PROTECTED () TH3_DEF_VIRT(TH3F) TARRAYF_DEF_VIRT(TH3F) TH1_DEF_VIRT(TH3F)@@ -27,8 +33,7 @@ TOBJECT_DEF_VIRT(TH3F) DELETABLE_DEF_VIRT(TH3F) TARRAY_DEF_VIRT(TH3F)- TH3F_DEF_VIRT(TH3F)- TH3F_DEF_NONVIRT(TH3F)+TH3F_DEF_ACCESSOR(TH3F) 
csrc/HROOTHistTH3F.h view
@@ -1,60 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3F__-#define __HROOT_HIST__TH3F__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayF.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH3F_DECL_VIRT + #define TH3F_DECL_VIRT(Type) \  -#undef TH3F_DECL_NONVIRT + #define TH3F_DECL_NONVIRT(Type) \  -#undef TH3F_DEF_VIRT-#define TH3F_DEF_VIRT(Type)\ +#define TH3F_DECL_ACCESSOR(Type) \ -#undef TH3F_DEF_NONVIRT-#define TH3F_DEF_NONVIRT(Type)\  -TH3_DECL_VIRT(TH3F);-TARRAYF_DECL_VIRT(TH3F);-TH1_DECL_VIRT(TH3F);-TATT3D_DECL_VIRT(TH3F);-TNAMED_DECL_VIRT(TH3F);-TATTLINE_DECL_VIRT(TH3F);-TATTFILL_DECL_VIRT(TH3F);-TATTMARKER_DECL_VIRT(TH3F);-TOBJECT_DECL_VIRT(TH3F);-DELETABLE_DECL_VIRT(TH3F);-TARRAY_DECL_VIRT(TH3F);+#define TH3F_DEF_VIRT(Type) \  -TH3F_DECL_VIRT(TH3F); +#define TH3F_DEF_NONVIRT(Type) \ -TH3F_DECL_NONVIRT(TH3F);  -#endif // __HROOT_HIST__TH3F__+#define TH3F_DEF_ACCESSOR(Type) \++++TH3_DECL_VIRT(TH3F)+TARRAYF_DECL_VIRT(TH3F)+TH1_DECL_VIRT(TH3F)+TATT3D_DECL_VIRT(TH3F)+TNAMED_DECL_VIRT(TH3F)+TATTLINE_DECL_VIRT(TH3F)+TATTFILL_DECL_VIRT(TH3F)+TATTMARKER_DECL_VIRT(TH3F)+TOBJECT_DECL_VIRT(TH3F)+DELETABLE_DECL_VIRT(TH3F)+TARRAY_DECL_VIRT(TH3F)+TH3F_DECL_VIRT(TH3F)+TH3F_DECL_NONVIRT(TH3F)+TH3F_DECL_ACCESSOR(TH3F)  #ifdef __cplusplus }
csrc/HROOTHistTH3I.cpp view
@@ -1,21 +1,27 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayI.h"+ #include "TH3I.h"-#include "HROOTHistTH3I.h" +#include "HROOTHistTH3I.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3I_fill1_PROTECTED ()-#define IS_TH3I_fill1w_PROTECTED () +#define IS_TH3I_fill1w_PROTECTED () TH3_DEF_VIRT(TH3I) TARRAYI_DEF_VIRT(TH3I) TH1_DEF_VIRT(TH3I)@@ -27,8 +33,7 @@ TOBJECT_DEF_VIRT(TH3I) DELETABLE_DEF_VIRT(TH3I) TARRAY_DEF_VIRT(TH3I)- TH3I_DEF_VIRT(TH3I)- TH3I_DEF_NONVIRT(TH3I)+TH3I_DEF_ACCESSOR(TH3I) 
csrc/HROOTHistTH3I.h view
@@ -1,60 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3I__-#define __HROOT_HIST__TH3I__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayI.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH3I_DECL_VIRT + #define TH3I_DECL_VIRT(Type) \  -#undef TH3I_DECL_NONVIRT + #define TH3I_DECL_NONVIRT(Type) \  -#undef TH3I_DEF_VIRT-#define TH3I_DEF_VIRT(Type)\ +#define TH3I_DECL_ACCESSOR(Type) \ -#undef TH3I_DEF_NONVIRT-#define TH3I_DEF_NONVIRT(Type)\  -TH3_DECL_VIRT(TH3I);-TARRAYI_DECL_VIRT(TH3I);-TH1_DECL_VIRT(TH3I);-TATT3D_DECL_VIRT(TH3I);-TNAMED_DECL_VIRT(TH3I);-TATTLINE_DECL_VIRT(TH3I);-TATTFILL_DECL_VIRT(TH3I);-TATTMARKER_DECL_VIRT(TH3I);-TOBJECT_DECL_VIRT(TH3I);-DELETABLE_DECL_VIRT(TH3I);-TARRAY_DECL_VIRT(TH3I);+#define TH3I_DEF_VIRT(Type) \  -TH3I_DECL_VIRT(TH3I); +#define TH3I_DEF_NONVIRT(Type) \ -TH3I_DECL_NONVIRT(TH3I);  -#endif // __HROOT_HIST__TH3I__+#define TH3I_DEF_ACCESSOR(Type) \++++TH3_DECL_VIRT(TH3I)+TARRAYI_DECL_VIRT(TH3I)+TH1_DECL_VIRT(TH3I)+TATT3D_DECL_VIRT(TH3I)+TNAMED_DECL_VIRT(TH3I)+TATTLINE_DECL_VIRT(TH3I)+TATTFILL_DECL_VIRT(TH3I)+TATTMARKER_DECL_VIRT(TH3I)+TOBJECT_DECL_VIRT(TH3I)+DELETABLE_DECL_VIRT(TH3I)+TARRAY_DECL_VIRT(TH3I)+TH3I_DECL_VIRT(TH3I)+TH3I_DECL_NONVIRT(TH3I)+TH3I_DECL_ACCESSOR(TH3I)  #ifdef __cplusplus }
csrc/HROOTHistTH3S.cpp view
@@ -1,21 +1,27 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayS.h"+ #include "TH3S.h"-#include "HROOTHistTH3S.h" +#include "HROOTHistTH3S.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) ) + #define IS_TH3S_fill1_PROTECTED ()-#define IS_TH3S_fill1w_PROTECTED () +#define IS_TH3S_fill1w_PROTECTED () TH3_DEF_VIRT(TH3S) TARRAYS_DEF_VIRT(TH3S) TH1_DEF_VIRT(TH3S)@@ -27,8 +33,7 @@ TOBJECT_DEF_VIRT(TH3S) DELETABLE_DEF_VIRT(TH3S) TARRAY_DEF_VIRT(TH3S)- TH3S_DEF_VIRT(TH3S)- TH3S_DEF_NONVIRT(TH3S)+TH3S_DEF_ACCESSOR(TH3S) 
csrc/HROOTHistTH3S.h view
@@ -1,60 +1,76 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__TH3S__-#define __HROOT_HIST__TH3S__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTHistTH3.h"+ #include "HROOTCoreTArrayS.h"+ #include "HROOTHistTH1.h"+ #include "HROOTCoreTAtt3D.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTAttLine.h"+ #include "HROOTCoreTAttFill.h"+ #include "HROOTCoreTAttMarker.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOTCoreTArray.h"+ #include "HROOT-coreType.h" -#undef TH3S_DECL_VIRT + #define TH3S_DECL_VIRT(Type) \  -#undef TH3S_DECL_NONVIRT + #define TH3S_DECL_NONVIRT(Type) \  -#undef TH3S_DEF_VIRT-#define TH3S_DEF_VIRT(Type)\ +#define TH3S_DECL_ACCESSOR(Type) \ -#undef TH3S_DEF_NONVIRT-#define TH3S_DEF_NONVIRT(Type)\  -TH3_DECL_VIRT(TH3S);-TARRAYS_DECL_VIRT(TH3S);-TH1_DECL_VIRT(TH3S);-TATT3D_DECL_VIRT(TH3S);-TNAMED_DECL_VIRT(TH3S);-TATTLINE_DECL_VIRT(TH3S);-TATTFILL_DECL_VIRT(TH3S);-TATTMARKER_DECL_VIRT(TH3S);-TOBJECT_DECL_VIRT(TH3S);-DELETABLE_DECL_VIRT(TH3S);-TARRAY_DECL_VIRT(TH3S);+#define TH3S_DEF_VIRT(Type) \  -TH3S_DECL_VIRT(TH3S); +#define TH3S_DEF_NONVIRT(Type) \ -TH3S_DECL_NONVIRT(TH3S);  -#endif // __HROOT_HIST__TH3S__+#define TH3S_DEF_ACCESSOR(Type) \++++TH3_DECL_VIRT(TH3S)+TARRAYS_DECL_VIRT(TH3S)+TH1_DECL_VIRT(TH3S)+TATT3D_DECL_VIRT(TH3S)+TNAMED_DECL_VIRT(TH3S)+TATTLINE_DECL_VIRT(TH3S)+TATTFILL_DECL_VIRT(TH3S)+TATTMARKER_DECL_VIRT(TH3S)+TOBJECT_DECL_VIRT(TH3S)+DELETABLE_DECL_VIRT(TH3S)+TARRAY_DECL_VIRT(TH3S)+TH3S_DECL_VIRT(TH3S)+TH3S_DECL_NONVIRT(TH3S)+TH3S_DECL_ACCESSOR(TH3S)  #ifdef __cplusplus }
csrc/HROOTHistTHStack.cpp view
@@ -1,23 +1,25 @@-#include <MacroPatternMatch.h>++#include "MacroPatternMatch.h"+ #include "HROOTCoreTNamed.h"+ #include "THStack.h"-#include "HROOTHistTHStack.h" +#include "HROOTHistTHStack.h" +using namespace ROOT; -#define CHECKPROTECT(x,y) IS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)+#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)  #define TYPECASTMETHOD(cname,mname,oname) \-  IIF( CHECKPROTECT(cname,mname) ) ( \-  (to_nonconst<oname,cname ## _t>), \-  (to_nonconst<cname,cname ## _t>) )-+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )  TNAMED_DEF_VIRT(THStack) TOBJECT_DEF_VIRT(THStack) DELETABLE_DEF_VIRT(THStack)- THSTACK_DEF_VIRT(THStack)- THSTACK_DEF_NONVIRT(THStack)+THSTACK_DEF_ACCESSOR(THStack) 
csrc/HROOTHistTHStack.h view
@@ -1,48 +1,54 @@+ #ifdef __cplusplus-extern "C" { +extern "C" { #endif -#ifndef __HROOT_HIST__THStack__-#define __HROOT_HIST__THStack__+#pragma once + #include "HROOT-histType.h"+ #include "HROOTCoreTNamed.h"+ #include "HROOTCoreTObject.h"-#include "HROOTCoreDeletable.h"++#include "STDDeletable.h"+ #include "HROOT-coreType.h" -#undef THSTACK_DECL_VIRT + #define THSTACK_DECL_VIRT(Type) \  -#undef THSTACK_DECL_NONVIRT + #define THSTACK_DECL_NONVIRT(Type) \-Type ## _p Type ## _newTHStack ( const char* name, const char* title )+Type##_p Type##_newTHStack ( const char* name, const char* title ); -#undef THSTACK_DEF_VIRT-#define THSTACK_DEF_VIRT(Type)\ +#define THSTACK_DECL_ACCESSOR(Type) \ -#undef THSTACK_DEF_NONVIRT-#define THSTACK_DEF_NONVIRT(Type)\-Type ## _p Type ## _newTHStack ( const char* name, const char* title )\-{\-Type * newp = new Type (name, title); \-return to_nonconst<Type ## _t, Type >(newp);\-} -TNAMED_DECL_VIRT(THStack);-TOBJECT_DECL_VIRT(THStack);-DELETABLE_DECL_VIRT(THStack); +#define THSTACK_DEF_VIRT(Type) \ -THSTACK_DECL_VIRT(THStack);  -THSTACK_DECL_NONVIRT(THStack);+#define THSTACK_DEF_NONVIRT(Type) \+Type##_p Type##_newTHStack ( const char* name, const char* title ) {\+Type* newp=new Type(name, title);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}  -#endif // __HROOT_HIST__THStack__+#define THSTACK_DEF_ACCESSOR(Type) \++++TNAMED_DECL_VIRT(THStack)+TOBJECT_DECL_VIRT(THStack)+DELETABLE_DECL_VIRT(THStack)+THSTACK_DECL_VIRT(THStack)+THSTACK_DECL_NONVIRT(THStack)+THSTACK_DECL_ACCESSOR(THStack)  #ifdef __cplusplus }
+ csrc/HROOTHistTMultiGraph.cpp view
@@ -0,0 +1,27 @@++#include "MacroPatternMatch.h"++#include "HROOTHistTGraph.h"++#include "HROOTCoreTNamed.h"++#include "TMultiGraph.h"++#include "HROOTHistTMultiGraph.h"++using namespace ROOT;++#define CHECKPROTECT(x,y) FXIS_PAREN(IS_ ## x ## _ ## y ## _PROTECTED)++#define TYPECASTMETHOD(cname,mname,oname) \+  FXIIF( CHECKPROTECT(cname,mname) ) ( \+  (from_nonconst_to_nonconst<oname,cname ## _t>), \+  (from_nonconst_to_nonconst<cname,cname ## _t>) )++TNAMED_DEF_VIRT(TMultiGraph)+TOBJECT_DEF_VIRT(TMultiGraph)+DELETABLE_DEF_VIRT(TMultiGraph)+TMULTIGRAPH_DEF_VIRT(TMultiGraph)+TMULTIGRAPH_DEF_NONVIRT(TMultiGraph)+TMULTIGRAPH_DEF_ACCESSOR(TMultiGraph)+
+ csrc/HROOTHistTMultiGraph.h view
@@ -0,0 +1,58 @@++#ifdef __cplusplus+extern "C" {+#endif++#pragma once+++#include "HROOT-histType.h"++#include "HROOTCoreTNamed.h"++#include "HROOTCoreTObject.h"++#include "STDDeletable.h"++#include "HROOT-coreType.h"+++#define TMULTIGRAPH_DECL_VIRT(Type) \+void Type##_AddG ( Type##_p p, TGraph_p graph, const char* chopt );+++#define TMULTIGRAPH_DECL_NONVIRT(Type) \+Type##_p Type##_newTMultiGraph ( const char* name, const char* title );+++#define TMULTIGRAPH_DECL_ACCESSOR(Type) \++++#define TMULTIGRAPH_DEF_VIRT(Type) \+void Type##_AddG ( Type##_p p, TGraph_p graph, const char* chopt ) {\+((TYPECASTMETHOD(Type, AddG, TMultiGraph))(p))->Add(from_nonconst_to_nonconst<TGraph, TGraph_t>(graph), chopt);\+}+++#define TMULTIGRAPH_DEF_NONVIRT(Type) \+Type##_p Type##_newTMultiGraph ( const char* name, const char* title ) {\+Type* newp=new Type(name, title);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\+}+++#define TMULTIGRAPH_DEF_ACCESSOR(Type) \++++TNAMED_DECL_VIRT(TMultiGraph)+TOBJECT_DECL_VIRT(TMultiGraph)+DELETABLE_DECL_VIRT(TMultiGraph)+TMULTIGRAPH_DECL_VIRT(TMultiGraph)+TMULTIGRAPH_DECL_NONVIRT(TMultiGraph)+TMULTIGRAPH_DECL_ACCESSOR(TMultiGraph)++#ifdef __cplusplus+}+#endif+
src/HROOT/Hist.hs view
@@ -1,40 +1,31 @@-module HROOT.Hist (-  module HROOT.Hist.TAxis-, module HROOT.Hist.TF1-, module HROOT.Hist.TFitResult-, module HROOT.Hist.TFitResultPtr-, module HROOT.Hist.TGraph-, module HROOT.Hist.TGraphAsymmErrors-, module HROOT.Hist.TGraphBentErrors-, module HROOT.Hist.TGraphErrors-, module HROOT.Hist.TH1-, module HROOT.Hist.TH1C-, module HROOT.Hist.TH1D-, module HROOT.Hist.TH1F-, module HROOT.Hist.TH1I-, module HROOT.Hist.TH1K-, module HROOT.Hist.TH1S-, module HROOT.Hist.TH2-, module HROOT.Hist.TH2C-, module HROOT.Hist.TH2D-, module HROOT.Hist.TH2F-, module HROOT.Hist.TH2I-, module HROOT.Hist.TH2Poly-, module HROOT.Hist.TH2S-, module HROOT.Hist.TH3-, module HROOT.Hist.TH3C-, module HROOT.Hist.TH3D-, module HROOT.Hist.TH3F-, module HROOT.Hist.TH3I-, module HROOT.Hist.TH3S-, module HROOT.Hist.THStack-) where-+{-# LANGUAGE FlexibleContexts, FlexibleInstances,+  ForeignFunctionInterface, InterruptibleFFI #-}+module HROOT.Hist+       (module HROOT.Hist.TAxis, module HROOT.Hist.TF1,+        module HROOT.Hist.TFitResult, module HROOT.Hist.TFitResultPtr,+        module HROOT.Hist.TGraph, module HROOT.Hist.TGraph2D,+        module HROOT.Hist.TGraphAsymmErrors,+        module HROOT.Hist.TGraphBentErrors, module HROOT.Hist.TGraphErrors,+        module HROOT.Hist.TH1, module HROOT.Hist.TH1C,+        module HROOT.Hist.TH1D, module HROOT.Hist.TH1F,+        module HROOT.Hist.TH1I, module HROOT.Hist.TH1K,+        module HROOT.Hist.TH1S, module HROOT.Hist.TH2,+        module HROOT.Hist.TH2C, module HROOT.Hist.TH2D,+        module HROOT.Hist.TH2F, module HROOT.Hist.TH2I,+        module HROOT.Hist.TH2Poly, module HROOT.Hist.TH2S,+        module HROOT.Hist.TH3, module HROOT.Hist.TH3C,+        module HROOT.Hist.TH3D, module HROOT.Hist.TH3F,+        module HROOT.Hist.TH3I, module HROOT.Hist.TH3S,+        module HROOT.Hist.THStack, module HROOT.Hist.TMultiGraph,+        module HROOT.Hist.Ordinary, module HROOT.Hist.Template,+        module HROOT.Hist.TH)+       where import HROOT.Hist.TAxis import HROOT.Hist.TF1 import HROOT.Hist.TFitResult import HROOT.Hist.TFitResultPtr import HROOT.Hist.TGraph+import HROOT.Hist.TGraph2D import HROOT.Hist.TGraphAsymmErrors import HROOT.Hist.TGraphBentErrors import HROOT.Hist.TGraphErrors@@ -59,7 +50,7 @@ import HROOT.Hist.TH3I import HROOT.Hist.TH3S import HROOT.Hist.THStack----+import HROOT.Hist.TMultiGraph+import HROOT.Hist.Template+import HROOT.Hist.TH+import HROOT.Hist.Ordinary
+ src/HROOT/Hist/Ordinary.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE FlexibleContexts, FlexibleInstances,+  ForeignFunctionInterface, InterruptibleFFI #-}+module HROOT.Hist.Ordinary () where+import Foreign.C+import Foreign.Ptr+import FFICXX.Runtime.Cast
src/HROOT/Hist/TAxis.hs view
@@ -1,6 +1,8 @@ module HROOT.Hist.TAxis        (TAxis(..), ITAxis(..), upcastTAxis, downcastTAxis, newTAxis,-        tAxisGetCenterLabels, tAxisGetCenterTitle)+        tAxis_GetCenterLabels, tAxis_GetCenterTitle, tAxis_GetFirst,+        tAxis_GetLast, tAxis_GetNbins, tAxis_GetXbins, tAxis_GetXmax,+        tAxis_GetXmin)        where import HROOT.Hist.TAxis.RawType import HROOT.Hist.TAxis.Interface
src/HROOT/Hist/TAxis/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TAxis.RawType import HROOT.Hist.TAxis.Interface -instance (ITAxis a, FPtr a) => Castable a (Ptr RawTAxis) where+instance (ITAxis a, FPtr a) => Castable (a) (Ptr RawTAxis) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TAxis (Ptr RawTAxis) where+instance () => Castable (TAxis) (Ptr RawTAxis) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TAxis/FFI.hsc view
@@ -1,144 +1,213 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TAxis.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType+import HROOT.Core.TArrayD.RawType -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetName"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_SetName"                c_taxis_setname :: Ptr RawTAxis -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetNameTitle"-               c_taxis_setnametitle :: Ptr RawTAxis -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetNameTitle" c_taxis_setnametitle ::+               Ptr RawTAxis -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTitle"-               c_taxis_settitle :: Ptr RawTAxis -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTitle" c_taxis_settitle ::+               Ptr RawTAxis -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetNdivisions"-               c_taxis_getndivisions :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetNdivisions" c_taxis_getndivisions ::+               Ptr RawTAxis -> IO CInt -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetAxisColor"-               c_taxis_getaxiscolor :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetAxisColor" c_taxis_getaxiscolor ::+               Ptr RawTAxis -> IO CShort -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetLabelColor"-               c_taxis_getlabelcolor :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetLabelColor" c_taxis_getlabelcolor ::+               Ptr RawTAxis -> IO CShort -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetLabelFont"-               c_taxis_getlabelfont :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetLabelFont" c_taxis_getlabelfont ::+               Ptr RawTAxis -> IO CShort -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetLabelOffset"-               c_taxis_getlabeloffset :: Ptr RawTAxis -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetLabelOffset" c_taxis_getlabeloffset ::+               Ptr RawTAxis -> IO CFloat -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetLabelSize"-               c_taxis_getlabelsize :: Ptr RawTAxis -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetLabelSize" c_taxis_getlabelsize ::+               Ptr RawTAxis -> IO CFloat -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetTitleOffset"-               c_taxis_gettitleoffset :: Ptr RawTAxis -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetTitleOffset" c_taxis_gettitleoffset ::+               Ptr RawTAxis -> IO CFloat -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetTitleSize"-               c_taxis_gettitlesize :: Ptr RawTAxis -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetTitleSize" c_taxis_gettitlesize ::+               Ptr RawTAxis -> IO CFloat -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetTickLength"-               c_taxis_getticklength :: Ptr RawTAxis -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetTickLength" c_taxis_getticklength ::+               Ptr RawTAxis -> IO CFloat -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetTitleFont"-               c_taxis_gettitlefont :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetTitleFont" c_taxis_gettitlefont ::+               Ptr RawTAxis -> IO CShort -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetNdivisions"-               c_taxis_setndivisions :: Ptr RawTAxis -> CInt -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetNdivisions" c_taxis_setndivisions ::+               Ptr RawTAxis -> CInt -> CBool -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetAxisColor"-               c_taxis_setaxiscolor :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetAxisColor" c_taxis_setaxiscolor ::+               Ptr RawTAxis -> CShort -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetLabelColor"-               c_taxis_setlabelcolor :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetLabelColor" c_taxis_setlabelcolor ::+               Ptr RawTAxis -> CShort -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetLabelFont"-               c_taxis_setlabelfont :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetLabelFont" c_taxis_setlabelfont ::+               Ptr RawTAxis -> CShort -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetLabelOffset"-               c_taxis_setlabeloffset :: Ptr RawTAxis -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetLabelOffset" c_taxis_setlabeloffset ::+               Ptr RawTAxis -> CFloat -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetLabelSize"-               c_taxis_setlabelsize :: Ptr RawTAxis -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetLabelSize" c_taxis_setlabelsize ::+               Ptr RawTAxis -> CFloat -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTickLength"-               c_taxis_setticklength :: Ptr RawTAxis -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTickLength" c_taxis_setticklength ::+               Ptr RawTAxis -> CFloat -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTitleOffset"-               c_taxis_settitleoffset :: Ptr RawTAxis -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTitleOffset" c_taxis_settitleoffset ::+               Ptr RawTAxis -> CFloat -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTitleSize"-               c_taxis_settitlesize :: Ptr RawTAxis -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTitleSize" c_taxis_settitlesize ::+               Ptr RawTAxis -> CFloat -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTitleColor"-               c_taxis_settitlecolor :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTitleColor" c_taxis_settitlecolor ::+               Ptr RawTAxis -> CShort -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTitleFont"-               c_taxis_settitlefont :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTitleFont" c_taxis_settitlefont ::+               Ptr RawTAxis -> CShort -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_Draw"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_Clear"+               c_taxis_clear :: Ptr RawTAxis -> CString -> IO ()++foreign import ccall interruptible "HROOTHistTAxis.h TAxis_Draw"                c_taxis_draw :: Ptr RawTAxis -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_FindObject"-               c_taxis_findobject ::+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_FindObject" c_taxis_findobject ::                Ptr RawTAxis -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetName"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_GetName"                c_taxis_getname :: Ptr RawTAxis -> IO CString -foreign import ccall safe "HROOTHistTAxis.h TAxis_IsA" c_taxis_isa-               :: Ptr RawTAxis -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_IsA"+               c_taxis_isa :: Ptr RawTAxis -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTAxis.h TAxis_Paint"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_Paint"                c_taxis_paint :: Ptr RawTAxis -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_printObj"-               c_taxis_printobj :: Ptr RawTAxis -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_printObj" c_taxis_printobj ::+               Ptr RawTAxis -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_SaveAs"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_SaveAs"                c_taxis_saveas :: Ptr RawTAxis -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_Write"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_Write"                c_taxis_write :: Ptr RawTAxis -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTAxis.h TAxis_delete"+foreign import ccall interruptible "HROOTHistTAxis.h TAxis_Write_"+               c_taxis_write_ :: Ptr RawTAxis -> IO CInt++foreign import ccall interruptible "HROOTHistTAxis.h TAxis_delete"                c_taxis_delete :: Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTAxis.h TAxis_newTAxis"-               c_taxis_newtaxis :: CInt -> CDouble -> CDouble -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_newTAxis" c_taxis_newtaxis ::+               CInt -> CDouble -> CDouble -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTAxis.h TAxis_findBinTAxis"-               c_taxis_findbintaxis :: Ptr RawTAxis -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_findBinTAxis" c_taxis_findbintaxis ::+               Ptr RawTAxis -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTAxis.h TAxis_findFixBinTAxis"-               c_taxis_findfixbintaxis :: Ptr RawTAxis -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_findFixBinTAxis" c_taxis_findfixbintaxis ::+               Ptr RawTAxis -> CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTAxis.h TAxis_getBinCenterTAxis"                c_taxis_getbincentertaxis :: Ptr RawTAxis -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetBinCenterLog"-               c_taxis_getbincenterlog :: Ptr RawTAxis -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetBinCenterLog" c_taxis_getbincenterlog ::+               Ptr RawTAxis -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTAxis.h TAxis_GetBinUpEdge"-               c_taxis_getbinupedge :: Ptr RawTAxis -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_GetBinUpEdge" c_taxis_getbinupedge ::+               Ptr RawTAxis -> CInt -> IO CDouble -foreign import ccall safe-               "HROOTHistTAxis.h TAxis_tAxisGetCenterLabels"-               c_taxis_taxisgetcenterlabels :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetCenterLabels"+               c_taxis_taxis_getcenterlabels :: Ptr RawTAxis -> IO CBool -foreign import ccall safe-               "HROOTHistTAxis.h TAxis_tAxisGetCenterTitle"-               c_taxis_taxisgetcentertitle :: Ptr RawTAxis -> IO CInt+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetCenterTitle"+               c_taxis_taxis_getcentertitle :: Ptr RawTAxis -> IO CBool -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTimeDisplay"-               c_taxis_settimedisplay :: Ptr RawTAxis -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetFirst" c_taxis_taxis_getfirst ::+               Ptr RawTAxis -> IO CInt -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTimeFormat"-               c_taxis_settimeformat :: Ptr RawTAxis -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetLast" c_taxis_taxis_getlast ::+               Ptr RawTAxis -> IO CInt -foreign import ccall safe "HROOTHistTAxis.h TAxis_SetTimeOffset"-               c_taxis_settimeoffset ::+foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetNbins" c_taxis_taxis_getnbins ::+               Ptr RawTAxis -> IO CInt++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetXbins" c_taxis_taxis_getxbins ::+               Ptr RawTAxis -> IO (Ptr RawTArrayD)++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetXmax" c_taxis_taxis_getxmax ::+               Ptr RawTAxis -> IO CDouble++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_tAxis_GetXmin" c_taxis_taxis_getxmin ::+               Ptr RawTAxis -> IO CDouble++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetLimits" c_taxis_setlimits ::+               Ptr RawTAxis -> CDouble -> CDouble -> IO ()++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTimeDisplay" c_taxis_settimedisplay ::+               Ptr RawTAxis -> CInt -> IO ()++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTimeFormat" c_taxis_settimeformat ::+               Ptr RawTAxis -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTAxis.h TAxis_SetTimeOffset" c_taxis_settimeoffset ::                Ptr RawTAxis -> CDouble -> CString -> IO ()
src/HROOT/Hist/TAxis/Implementation.hs view
@@ -1,20 +1,32 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TAxis.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TAxis.RawType import HROOT.Hist.TAxis.FFI import HROOT.Hist.TAxis.Interface import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface+import HROOT.Core.TArrayD.RawType+import HROOT.Core.TArrayD.Cast+import HROOT.Core.TArrayD.Interface import HROOT.Core.TNamed.RawType import HROOT.Core.TNamed.Cast import HROOT.Core.TNamed.Interface@@ -24,26 +36,27 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITAxis TAxis where+instance () => ITAxis (TAxis) where         findBinTAxis = xform1 c_taxis_findbintaxis         findFixBinTAxis = xform1 c_taxis_findfixbintaxis         getBinCenterTAxis = xform1 c_taxis_getbincentertaxis         getBinCenterLog = xform1 c_taxis_getbincenterlog         getBinUpEdge = xform1 c_taxis_getbinupedge+        setLimits = xform2 c_taxis_setlimits         setTimeDisplay = xform1 c_taxis_settimedisplay         setTimeFormat = xform1 c_taxis_settimeformat         setTimeOffset = xform2 c_taxis_settimeoffset -instance ITNamed TAxis where+instance () => ITNamed (TAxis) where         setName = xform1 c_taxis_setname         setNameTitle = xform2 c_taxis_setnametitle         setTitle = xform1 c_taxis_settitle -instance ITAttAxis TAxis where+instance () => ITAttAxis (TAxis) where         getNdivisions = xform0 c_taxis_getndivisions         getAxisColor = xform0 c_taxis_getaxiscolor         getLabelColor = xform0 c_taxis_getlabelcolor@@ -66,7 +79,8 @@         setTitleColor = xform1 c_taxis_settitlecolor         setTitleFont = xform1 c_taxis_settitlefont -instance ITObject TAxis where+instance () => ITObject (TAxis) where+        clear = xform1 c_taxis_clear         draw = xform1 c_taxis_draw         findObject = xform1 c_taxis_findobject         getName = xform0 c_taxis_getname@@ -75,15 +89,34 @@         printObj = xform1 c_taxis_printobj         saveAs = xform2 c_taxis_saveas         write = xform3 c_taxis_write+        write_ = xform0 c_taxis_write_ -instance IDeletable TAxis where+instance () => IDeletable (TAxis) where         delete = xform0 c_taxis_delete -newTAxis :: CInt -> CDouble -> CDouble -> IO TAxis+newTAxis :: () => CInt -> CDouble -> CDouble -> IO TAxis newTAxis = xform2 c_taxis_newtaxis -tAxisGetCenterLabels :: TAxis -> IO CInt-tAxisGetCenterLabels = xform0 c_taxis_taxisgetcenterlabels+tAxis_GetCenterLabels :: () => TAxis -> IO CBool+tAxis_GetCenterLabels = xform0 c_taxis_taxis_getcenterlabels -tAxisGetCenterTitle :: TAxis -> IO CInt-tAxisGetCenterTitle = xform0 c_taxis_taxisgetcentertitle+tAxis_GetCenterTitle :: () => TAxis -> IO CBool+tAxis_GetCenterTitle = xform0 c_taxis_taxis_getcentertitle++tAxis_GetFirst :: () => TAxis -> IO CInt+tAxis_GetFirst = xform0 c_taxis_taxis_getfirst++tAxis_GetLast :: () => TAxis -> IO CInt+tAxis_GetLast = xform0 c_taxis_taxis_getlast++tAxis_GetNbins :: () => TAxis -> IO CInt+tAxis_GetNbins = xform0 c_taxis_taxis_getnbins++tAxis_GetXbins :: () => TAxis -> IO TArrayD+tAxis_GetXbins = xform0 c_taxis_taxis_getxbins++tAxis_GetXmax :: () => TAxis -> IO CDouble+tAxis_GetXmax = xform0 c_taxis_taxis_getxmax++tAxis_GetXmin :: () => TAxis -> IO CDouble+tAxis_GetXmin = xform0 c_taxis_taxis_getxmin
src/HROOT/Hist/TAxis/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TAxis.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -12,21 +13,24 @@ import HROOT.Core.TAttAxis.Interface  class (ITNamed a, ITAttAxis a) => ITAxis a where-        findBinTAxis :: a -> CDouble -> IO CInt+        findBinTAxis :: () => a -> CDouble -> IO CInt         -        findFixBinTAxis :: a -> CDouble -> IO CInt+        findFixBinTAxis :: () => a -> CDouble -> IO CInt         -        getBinCenterTAxis :: a -> CInt -> IO CDouble+        getBinCenterTAxis :: () => a -> CInt -> IO CDouble         -        getBinCenterLog :: a -> CInt -> IO CDouble+        getBinCenterLog :: () => a -> CInt -> IO CDouble         -        getBinUpEdge :: a -> CInt -> IO CDouble+        getBinUpEdge :: () => a -> CInt -> IO CDouble         -        setTimeDisplay :: a -> CInt -> IO ()+        setLimits :: () => a -> CDouble -> CDouble -> IO ()         -        setTimeFormat :: Castable c0 CString => a -> c0 -> IO ()+        setTimeDisplay :: () => a -> CInt -> IO ()         -        setTimeOffset :: Castable c0 CString => a -> CDouble -> c0 -> IO ()+        setTimeFormat :: (Castable c0 CString) => a -> c0 -> IO ()+        +        setTimeOffset ::+                        (Castable c0 CString) => a -> CDouble -> c0 -> IO ()  upcastTAxis :: forall a . (FPtr a, ITAxis a) => a -> TAxis upcastTAxis h
− src/HROOT/Hist/TAxis/Interface.hs-boot
@@ -1,3 +0,0 @@-module HROOT.Hist.TAxis.Interface where--class ITAxis a
src/HROOT/Hist/TAxis/RawType.hs view
@@ -8,9 +8,9 @@ data RawTAxis  newtype TAxis = TAxis (Ptr RawTAxis)-              deriving (Eq, Ord, Show)+                  deriving (Eq, Ord, Show) -instance FPtr TAxis where+instance () => FPtr (TAxis) where         type Raw TAxis = RawTAxis         get_fptr (TAxis ptr) = ptr         cast_fptr_to_obj = TAxis
src/HROOT/Hist/TF1.hs view
@@ -1,10 +1,10 @@ module HROOT.Hist.TF1        (TF1(..), ITF1(..), upcastTF1, downcastTF1, newTF1,-        tF1GetChisquare, tF1GetHistogram, tF1GetParent, tF1GetXaxis,-        tF1GetYaxis, tF1GetZaxis, tF1DerivativeError,-        tF1InitStandardFunctions, tF1GetCurrent, tF1AbsValue,-        tF1RejectPoint, tF1RejectedPoint, tF1SetCurrent,-        tF1CalcGaussLegendreSamplingPoints)+        tF1_GetChisquare, tF1_GetHistogram, tF1_GetParent, tF1_GetXaxis,+        tF1_GetYaxis, tF1_GetZaxis, tF1_DerivativeError,+        tF1_InitStandardFunctions, tF1_GetCurrent, tF1_AbsValue,+        tF1_RejectPoint, tF1_RejectedPoint, tF1_SetCurrent,+        tF1_CalcGaussLegendreSamplingPoints)        where import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.Interface
src/HROOT/Hist/TF1/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.Interface -instance (ITF1 a, FPtr a) => Castable a (Ptr RawTF1) where+instance (ITF1 a, FPtr a) => Castable (a) (Ptr RawTF1) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TF1 (Ptr RawTF1) where+instance () => Castable (TF1) (Ptr RawTF1) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TF1/FFI.hsc view
@@ -1,298 +1,343 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TF1.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.RawType import HROOT.Core.TObject.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TAxis.RawType -foreign import ccall safe "HROOTHistTF1.h TF1_GetLineColor"-               c_tf1_getlinecolor :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetLineColor" c_tf1_getlinecolor ::+               Ptr RawTF1 -> IO CShort -foreign import ccall safe "HROOTHistTF1.h TF1_GetLineStyle"-               c_tf1_getlinestyle :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetLineStyle" c_tf1_getlinestyle ::+               Ptr RawTF1 -> IO CShort -foreign import ccall safe "HROOTHistTF1.h TF1_GetLineWidth"-               c_tf1_getlinewidth :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetLineWidth" c_tf1_getlinewidth ::+               Ptr RawTF1 -> IO CShort -foreign import ccall safe "HROOTHistTF1.h TF1_ResetAttLine"-               c_tf1_resetattline :: Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_ResetAttLine" c_tf1_resetattline ::+               Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetLineAttributes"-               c_tf1_setlineattributes :: Ptr RawTF1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetLineAttributes" c_tf1_setlineattributes ::+               Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetLineColor"-               c_tf1_setlinecolor :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetLineColor" c_tf1_setlinecolor ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetLineStyle"-               c_tf1_setlinestyle :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetLineStyle" c_tf1_setlinestyle ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetLineWidth"-               c_tf1_setlinewidth :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetLineWidth" c_tf1_setlinewidth ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetFillColor"-               c_tf1_setfillcolor :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetFillColor" c_tf1_setfillcolor ::+               Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetFillStyle"-               c_tf1_setfillstyle :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetFillStyle" c_tf1_setfillstyle ::+               Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_GetMarkerColor"-               c_tf1_getmarkercolor :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetMarkerColor" c_tf1_getmarkercolor ::+               Ptr RawTF1 -> IO CShort -foreign import ccall safe "HROOTHistTF1.h TF1_GetMarkerStyle"-               c_tf1_getmarkerstyle :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetMarkerStyle" c_tf1_getmarkerstyle ::+               Ptr RawTF1 -> IO CShort -foreign import ccall safe "HROOTHistTF1.h TF1_GetMarkerSize"-               c_tf1_getmarkersize :: Ptr RawTF1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetMarkerSize" c_tf1_getmarkersize ::+               Ptr RawTF1 -> IO CFloat -foreign import ccall safe "HROOTHistTF1.h TF1_ResetAttMarker"-               c_tf1_resetattmarker :: Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_ResetAttMarker" c_tf1_resetattmarker ::+               Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetMarkerAttributes"-               c_tf1_setmarkerattributes :: Ptr RawTF1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetMarkerAttributes" c_tf1_setmarkerattributes+               :: Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetMarkerColor"-               c_tf1_setmarkercolor :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetMarkerColor" c_tf1_setmarkercolor ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetMarkerStyle"-               c_tf1_setmarkerstyle :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetMarkerStyle" c_tf1_setmarkerstyle ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetMarkerSize"-               c_tf1_setmarkersize :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetMarkerSize" c_tf1_setmarkersize ::+               Ptr RawTF1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_delete" c_tf1_delete-               :: Ptr RawTF1 -> IO ()+foreign import ccall interruptible "HROOTHistTF1.h TF1_delete"+               c_tf1_delete :: Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_newTF1" c_tf1_newtf1-               :: CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1)+foreign import ccall interruptible "HROOTHistTF1.h TF1_newTF1"+               c_tf1_newtf1 ::+               CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTF1.h TF1_Derivative"+foreign import ccall interruptible "HROOTHistTF1.h TF1_Derivative"                c_tf1_derivative ::-               Ptr RawTF1 -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+               Ptr RawTF1 -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_Derivative2"+foreign import ccall interruptible "HROOTHistTF1.h TF1_Derivative2"                c_tf1_derivative2 ::-               Ptr RawTF1 -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+               Ptr RawTF1 -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_Derivative3"+foreign import ccall interruptible "HROOTHistTF1.h TF1_Derivative3"                c_tf1_derivative3 ::-               Ptr RawTF1 -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+               Ptr RawTF1 -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_tF1DerivativeError"-               c_tf1_tf1derivativeerror :: IO CDouble+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_DerivativeError" c_tf1_tf1_derivativeerror+               :: IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_drawCopyTF1"+foreign import ccall interruptible "HROOTHistTF1.h TF1_drawCopyTF1"                c_tf1_drawcopytf1 :: Ptr RawTF1 -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTF1.h TF1_DrawDerivative"-               c_tf1_drawderivative ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_DrawDerivative" c_tf1_drawderivative ::                Ptr RawTF1 -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTF1.h TF1_DrawIntegral"-               c_tf1_drawintegral :: Ptr RawTF1 -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_DrawIntegral" c_tf1_drawintegral ::+               Ptr RawTF1 -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTF1.h TF1_FixParameter"-               c_tf1_fixparameter :: Ptr RawTF1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_FixParameter" c_tf1_fixparameter ::+               Ptr RawTF1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetChisquare"-               c_tf1_tf1getchisquare :: Ptr RawTF1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetChisquare" c_tf1_tf1_getchisquare ::+               Ptr RawTF1 -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetHistogram"-               c_tf1_tf1gethistogram :: Ptr RawTF1 -> IO (Ptr RawTH1)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetHistogram" c_tf1_tf1_gethistogram ::+               Ptr RawTF1 -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTF1.h TF1_getMaximumTF1"-               c_tf1_getmaximumtf1 ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_getMaximumTF1" c_tf1_getmaximumtf1 ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                 CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_getMinimumTF1"-               c_tf1_getminimumtf1 ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_getMinimumTF1" c_tf1_getminimumtf1 ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                 CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetMaximumX"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetMaximumX"                c_tf1_getmaximumx ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                 CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetMinimumX"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetMinimumX"                c_tf1_getminimumx ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                 CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetNDF" c_tf1_getndf-               :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetNDF"+               c_tf1_getndf :: Ptr RawTF1 -> IO CInt -foreign import ccall safe "HROOTHistTF1.h TF1_GetNpx" c_tf1_getnpx-               :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetNpx"+               c_tf1_getnpx :: Ptr RawTF1 -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTF1.h TF1_GetNumberFreeParameters"                c_tf1_getnumberfreeparameters :: Ptr RawTF1 -> IO CInt -foreign import ccall safe "HROOTHistTF1.h TF1_GetNumberFitPoints"-               c_tf1_getnumberfitpoints :: Ptr RawTF1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_GetNumberFitPoints" c_tf1_getnumberfitpoints ::+               Ptr RawTF1 -> IO CInt -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetParent"-               c_tf1_tf1getparent :: Ptr RawTF1 -> IO (Ptr RawTObject)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetParent" c_tf1_tf1_getparent ::+               Ptr RawTF1 -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTF1.h TF1_GetParError"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetParError"                c_tf1_getparerror :: Ptr RawTF1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetProb"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetProb"                c_tf1_getprob :: Ptr RawTF1 -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_getQuantilesTF1"-               c_tf1_getquantilestf1 ::-               Ptr RawTF1 -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_getQuantilesTF1" c_tf1_getquantilestf1 ::+               Ptr RawTF1 -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTF1.h TF1_getRandomTF1"-               c_tf1_getrandomtf1 ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_getRandomTF1" c_tf1_getrandomtf1 ::                Ptr RawTF1 -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetSave"-               c_tf1_getsave :: Ptr RawTF1 -> (Ptr CDouble) -> IO CDouble+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetSave"+               c_tf1_getsave :: Ptr RawTF1 -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetX" c_tf1_getx ::+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetX"+               c_tf1_getx ::                Ptr RawTF1 ->                  CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetXmin"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetXmin"                c_tf1_getxmin :: Ptr RawTF1 -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_GetXmax"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GetXmax"                c_tf1_getxmax :: Ptr RawTF1 -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetXaxis"-               c_tf1_tf1getxaxis :: Ptr RawTF1 -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetXaxis" c_tf1_tf1_getxaxis ::+               Ptr RawTF1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetYaxis"-               c_tf1_tf1getyaxis :: Ptr RawTF1 -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetYaxis" c_tf1_tf1_getyaxis ::+               Ptr RawTF1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetZaxis"-               c_tf1_tf1getzaxis :: Ptr RawTF1 -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetZaxis" c_tf1_tf1_getzaxis ::+               Ptr RawTF1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTF1.h TF1_GradientPar"+foreign import ccall interruptible "HROOTHistTF1.h TF1_GradientPar"                c_tf1_gradientpar ::-               Ptr RawTF1 -> CInt -> (Ptr CDouble) -> CDouble -> IO CDouble+               Ptr RawTF1 -> CInt -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_InitArgs"-               c_tf1_initargs ::-               Ptr RawTF1 -> (Ptr CDouble) -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTF1.h TF1_InitArgs"+               c_tf1_initargs :: Ptr RawTF1 -> Ptr CDouble -> Ptr CDouble -> IO () -foreign import ccall safe-               "HROOTHistTF1.h TF1_tF1InitStandardFunctions"-               c_tf1_tf1initstandardfunctions :: IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_InitStandardFunctions"+               c_tf1_tf1_initstandardfunctions :: IO () -foreign import ccall safe "HROOTHistTF1.h TF1_IntegralTF1"+foreign import ccall interruptible "HROOTHistTF1.h TF1_IntegralTF1"                c_tf1_integraltf1 ::                Ptr RawTF1 -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_IntegralError"-               c_tf1_integralerror ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_IntegralError" c_tf1_integralerror ::                Ptr RawTF1 ->                  CDouble ->-                   CDouble -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO CDouble+                   CDouble -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_IntegralFast"-               c_tf1_integralfast ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_IntegralFast" c_tf1_integralfast ::                Ptr RawTF1 ->                  CInt ->-                   (Ptr CDouble) ->-                     (Ptr CDouble) ->-                       CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                   Ptr CDouble ->+                     Ptr CDouble ->+                       CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_IsInside"-               c_tf1_isinside :: Ptr RawTF1 -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible "HROOTHistTF1.h TF1_IsInside"+               c_tf1_isinside :: Ptr RawTF1 -> Ptr CDouble -> IO CBool -foreign import ccall safe "HROOTHistTF1.h TF1_ReleaseParameter"-               c_tf1_releaseparameter :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_ReleaseParameter" c_tf1_releaseparameter ::+               Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetChisquare"-               c_tf1_setchisquare :: Ptr RawTF1 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetChisquare" c_tf1_setchisquare ::+               Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_setMaximumTF1"-               c_tf1_setmaximumtf1 :: Ptr RawTF1 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_setMaximumTF1" c_tf1_setmaximumtf1 ::+               Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_setMinimumTF1"-               c_tf1_setminimumtf1 :: Ptr RawTF1 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_setMinimumTF1" c_tf1_setminimumtf1 ::+               Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetNDF" c_tf1_setndf-               :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTF1.h TF1_SetNDF"+               c_tf1_setndf :: Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetNumberFitPoints"-               c_tf1_setnumberfitpoints :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetNumberFitPoints" c_tf1_setnumberfitpoints ::+               Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetNpx" c_tf1_setnpx-               :: Ptr RawTF1 -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTF1.h TF1_SetNpx"+               c_tf1_setnpx :: Ptr RawTF1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetParError"+foreign import ccall interruptible "HROOTHistTF1.h TF1_SetParError"                c_tf1_setparerror :: Ptr RawTF1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetParErrors"-               c_tf1_setparerrors :: Ptr RawTF1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetParErrors" c_tf1_setparerrors ::+               Ptr RawTF1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetParLimits"-               c_tf1_setparlimits ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetParLimits" c_tf1_setparlimits ::                Ptr RawTF1 -> CInt -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetParent"+foreign import ccall interruptible "HROOTHistTF1.h TF1_SetParent"                c_tf1_setparent :: Ptr RawTF1 -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_setRange1"+foreign import ccall interruptible "HROOTHistTF1.h TF1_setRange1"                c_tf1_setrange1 :: Ptr RawTF1 -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_setRange2"+foreign import ccall interruptible "HROOTHistTF1.h TF1_setRange2"                c_tf1_setrange2 ::                Ptr RawTF1 -> CDouble -> CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_setRange3"+foreign import ccall interruptible "HROOTHistTF1.h TF1_setRange3"                c_tf1_setrange3 ::                Ptr RawTF1 ->                  CDouble ->                    CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_SetSavedPoint"-               c_tf1_setsavedpoint :: Ptr RawTF1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_SetSavedPoint" c_tf1_setsavedpoint ::+               Ptr RawTF1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_tF1GetCurrent"-               c_tf1_tf1getcurrent :: IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_GetCurrent" c_tf1_tf1_getcurrent ::+               IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTF1.h TF1_tF1AbsValue"-               c_tf1_tf1absvalue :: CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_AbsValue" c_tf1_tf1_absvalue ::+               CBool -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_tF1RejectPoint"-               c_tf1_tf1rejectpoint :: CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_RejectPoint" c_tf1_tf1_rejectpoint ::+               CBool -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_tF1RejectedPoint"-               c_tf1_tf1rejectedpoint :: IO CInt+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_RejectedPoint" c_tf1_tf1_rejectedpoint ::+               IO CBool -foreign import ccall safe "HROOTHistTF1.h TF1_tF1SetCurrent"-               c_tf1_tf1setcurrent :: Ptr RawTF1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_SetCurrent" c_tf1_tf1_setcurrent ::+               Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTF1.h TF1_Moment" c_tf1_moment-               ::+foreign import ccall interruptible "HROOTHistTF1.h TF1_Moment"+               c_tf1_moment ::                Ptr RawTF1 ->                  CDouble ->-                   CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                   CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_CentralMoment"-               c_tf1_centralmoment ::+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_CentralMoment" c_tf1_centralmoment ::                Ptr RawTF1 ->                  CDouble ->-                   CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                   CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_Mean" c_tf1_mean ::+foreign import ccall interruptible "HROOTHistTF1.h TF1_Mean"+               c_tf1_mean ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                 CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTF1.h TF1_Variance"+foreign import ccall interruptible "HROOTHistTF1.h TF1_Variance"                c_tf1_variance ::                Ptr RawTF1 ->-                 CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                 CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble -foreign import ccall safe-               "HROOTHistTF1.h TF1_tF1CalcGaussLegendreSamplingPoints"-               c_tf1_tf1calcgausslegendresamplingpoints ::-               CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTF1.h TF1_tF1_CalcGaussLegendreSamplingPoints"+               c_tf1_tf1_calcgausslegendresamplingpoints ::+               CInt -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO ()
src/HROOT/Hist/TF1/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TF1.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.FFI import HROOT.Hist.TF1.Interface import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.RawType+import HROOT.Hist.TF1.Cast+import HROOT.Hist.TF1.Interface import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface@@ -30,11 +39,11 @@ import HROOT.Core.TAttMarker.RawType import HROOT.Core.TAttMarker.Cast import HROOT.Core.TAttMarker.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITF1 TF1 where+instance () => ITF1 (TF1) where         derivative = xform3 c_tf1_derivative         derivative2 = xform3 c_tf1_derivative2         derivative3 = xform3 c_tf1_derivative3@@ -84,7 +93,7 @@         mean = xform4 c_tf1_mean         variance = xform4 c_tf1_variance -instance ITAttLine TF1 where+instance () => ITAttLine (TF1) where         getLineColor = xform0 c_tf1_getlinecolor         getLineStyle = xform0 c_tf1_getlinestyle         getLineWidth = xform0 c_tf1_getlinewidth@@ -94,11 +103,11 @@         setLineStyle = xform1 c_tf1_setlinestyle         setLineWidth = xform1 c_tf1_setlinewidth -instance ITAttFill TF1 where+instance () => ITAttFill (TF1) where         setFillColor = xform1 c_tf1_setfillcolor         setFillStyle = xform1 c_tf1_setfillstyle -instance ITAttMarker TF1 where+instance () => ITAttMarker (TF1) where         getMarkerColor = xform0 c_tf1_getmarkercolor         getMarkerStyle = xform0 c_tf1_getmarkerstyle         getMarkerSize = xform0 c_tf1_getmarkersize@@ -108,7 +117,7 @@         setMarkerStyle = xform1 c_tf1_setmarkerstyle         setMarkerSize = xform1 c_tf1_setmarkersize -instance IDeletable TF1 where+instance () => IDeletable (TF1) where         delete = xform0 c_tf1_delete  newTF1 ::@@ -116,46 +125,47 @@          c0 -> c1 -> CDouble -> CDouble -> IO TF1 newTF1 = xform3 c_tf1_newtf1 -tF1GetChisquare :: TF1 -> IO CDouble-tF1GetChisquare = xform0 c_tf1_tf1getchisquare+tF1_GetChisquare :: () => TF1 -> IO CDouble+tF1_GetChisquare = xform0 c_tf1_tf1_getchisquare -tF1GetHistogram :: TF1 -> IO TH1-tF1GetHistogram = xform0 c_tf1_tf1gethistogram+tF1_GetHistogram :: () => TF1 -> IO TH1+tF1_GetHistogram = xform0 c_tf1_tf1_gethistogram -tF1GetParent :: TF1 -> IO TObject-tF1GetParent = xform0 c_tf1_tf1getparent+tF1_GetParent :: () => TF1 -> IO TObject+tF1_GetParent = xform0 c_tf1_tf1_getparent -tF1GetXaxis :: TF1 -> IO TAxis-tF1GetXaxis = xform0 c_tf1_tf1getxaxis+tF1_GetXaxis :: () => TF1 -> IO TAxis+tF1_GetXaxis = xform0 c_tf1_tf1_getxaxis -tF1GetYaxis :: TF1 -> IO TAxis-tF1GetYaxis = xform0 c_tf1_tf1getyaxis+tF1_GetYaxis :: () => TF1 -> IO TAxis+tF1_GetYaxis = xform0 c_tf1_tf1_getyaxis -tF1GetZaxis :: TF1 -> IO TAxis-tF1GetZaxis = xform0 c_tf1_tf1getzaxis+tF1_GetZaxis :: () => TF1 -> IO TAxis+tF1_GetZaxis = xform0 c_tf1_tf1_getzaxis -tF1DerivativeError :: IO CDouble-tF1DerivativeError = xformnull c_tf1_tf1derivativeerror+tF1_DerivativeError :: () => IO CDouble+tF1_DerivativeError = xformnull c_tf1_tf1_derivativeerror -tF1InitStandardFunctions :: IO ()-tF1InitStandardFunctions = xformnull c_tf1_tf1initstandardfunctions+tF1_InitStandardFunctions :: () => IO ()+tF1_InitStandardFunctions+  = xformnull c_tf1_tf1_initstandardfunctions -tF1GetCurrent :: IO TF1-tF1GetCurrent = xformnull c_tf1_tf1getcurrent+tF1_GetCurrent :: () => IO TF1+tF1_GetCurrent = xformnull c_tf1_tf1_getcurrent -tF1AbsValue :: CInt -> IO ()-tF1AbsValue = xform0 c_tf1_tf1absvalue+tF1_AbsValue :: () => CBool -> IO ()+tF1_AbsValue = xform0 c_tf1_tf1_absvalue -tF1RejectPoint :: CInt -> IO ()-tF1RejectPoint = xform0 c_tf1_tf1rejectpoint+tF1_RejectPoint :: () => CBool -> IO ()+tF1_RejectPoint = xform0 c_tf1_tf1_rejectpoint -tF1RejectedPoint :: IO CInt-tF1RejectedPoint = xformnull c_tf1_tf1rejectedpoint+tF1_RejectedPoint :: () => IO CBool+tF1_RejectedPoint = xformnull c_tf1_tf1_rejectedpoint -tF1SetCurrent :: (ITF1 c0, FPtr c0) => c0 -> IO ()-tF1SetCurrent = xform0 c_tf1_tf1setcurrent+tF1_SetCurrent :: (ITF1 c0, FPtr c0) => c0 -> IO ()+tF1_SetCurrent = xform0 c_tf1_tf1_setcurrent -tF1CalcGaussLegendreSamplingPoints ::-                                     CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO ()-tF1CalcGaussLegendreSamplingPoints-  = xform3 c_tf1_tf1calcgausslegendresamplingpoints+tF1_CalcGaussLegendreSamplingPoints ::+                                      () => CInt -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO ()+tF1_CalcGaussLegendreSamplingPoints+  = xform3 c_tf1_tf1_calcgausslegendresamplingpoints
src/HROOT/Hist/TF1/Interface.hs view
@@ -4,13 +4,12 @@   TypeSynonymInstances #-} module HROOT.Hist.TF1.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TF1.RawType import HROOT.Core.TObject.RawType-import HROOT.Hist.TH1.RawType-import HROOT.Hist.TAxis.RawType import HROOT.Core.TAttLine.Interface import HROOT.Core.TAttFill.Interface import HROOT.Core.TAttMarker.Interface@@ -18,128 +17,147 @@  class (ITAttLine a, ITAttFill a, ITAttMarker a) => ITF1 a where         derivative ::-                     a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                     () => a -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  derivative2 ::-                      a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                      () => a -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  derivative3 ::-                      a -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                      () => a -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble         -        drawCopyTF1 :: Castable c0 CString => a -> c0 -> IO a+        drawCopyTF1 :: (Castable c0 CString) => a -> c0 -> IO a         -        drawDerivative :: Castable c0 CString => a -> c0 -> IO TObject+        drawDerivative :: (Castable c0 CString) => a -> c0 -> IO TObject         -        drawIntegral :: Castable c0 CString => a -> c0 -> IO TObject+        drawIntegral :: (Castable c0 CString) => a -> c0 -> IO TObject         -        fixParameter :: a -> CInt -> CDouble -> IO ()+        fixParameter :: () => a -> CInt -> CDouble -> IO ()                  getMaximumTF1 ::-                        a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                        () =>+                        a ->+                          CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble                  getMinimumTF1 ::-                        a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                        () =>+                        a ->+                          CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble                  getMaximumX ::-                      a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                      () =>+                      a ->+                        CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble                  getMinimumX ::-                      a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble+                      () =>+                      a ->+                        CDouble -> CDouble -> CDouble -> CDouble -> CBool -> IO CDouble         -        getNDF :: a -> IO CInt+        getNDF :: () => a -> IO CInt         -        getNpx :: a -> IO CInt+        getNpx :: () => a -> IO CInt         -        getNumberFreeParameters :: a -> IO CInt+        getNumberFreeParameters :: () => a -> IO CInt         -        getNumberFitPoints :: a -> IO CInt+        getNumberFitPoints :: () => a -> IO CInt         -        getParError :: a -> CInt -> IO CDouble+        getParError :: () => a -> CInt -> IO CDouble         -        getProb :: a -> IO CDouble+        getProb :: () => a -> IO CDouble                  getQuantilesTF1 ::-                          a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+                          () => a -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt         -        getRandomTF1 :: a -> CDouble -> CDouble -> IO CDouble+        getRandomTF1 :: () => a -> CDouble -> CDouble -> IO CDouble         -        getSave :: a -> (Ptr CDouble) -> IO CDouble+        getSave :: () => a -> Ptr CDouble -> IO CDouble                  getX ::+               () =>                a -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> IO CDouble         -        getXmin :: a -> IO CDouble+        getXmin :: () => a -> IO CDouble         -        getXmax :: a -> IO CDouble+        getXmax :: () => a -> IO CDouble         -        gradientPar :: a -> CInt -> (Ptr CDouble) -> CDouble -> IO CDouble+        gradientPar ::+                      () => a -> CInt -> Ptr CDouble -> CDouble -> IO CDouble         -        initArgs :: a -> (Ptr CDouble) -> (Ptr CDouble) -> IO ()+        initArgs :: () => a -> Ptr CDouble -> Ptr CDouble -> IO ()         -        integralTF1 :: a -> CDouble -> CDouble -> CDouble -> IO CDouble+        integralTF1 ::+                      () => a -> CDouble -> CDouble -> CDouble -> IO CDouble                  integralError ::+                        () =>                         a ->                           CDouble ->-                            CDouble -> (Ptr CDouble) -> (Ptr CDouble) -> CDouble -> IO CDouble+                            CDouble -> Ptr CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  integralFast ::+                       () =>                        a ->                          CInt ->-                           (Ptr CDouble) ->-                             (Ptr CDouble) ->-                               CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                           Ptr CDouble ->+                             Ptr CDouble ->+                               CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble         -        isInside :: a -> (Ptr CDouble) -> IO CInt+        isInside :: () => a -> Ptr CDouble -> IO CBool         -        releaseParameter :: a -> CInt -> IO ()+        releaseParameter :: () => a -> CInt -> IO ()         -        setChisquare :: a -> CDouble -> IO ()+        setChisquare :: () => a -> CDouble -> IO ()         -        setMaximumTF1 :: a -> CDouble -> IO ()+        setMaximumTF1 :: () => a -> CDouble -> IO ()         -        setMinimumTF1 :: a -> CDouble -> IO ()+        setMinimumTF1 :: () => a -> CDouble -> IO ()         -        setNDF :: a -> CInt -> IO ()+        setNDF :: () => a -> CInt -> IO ()         -        setNumberFitPoints :: a -> CInt -> IO ()+        setNumberFitPoints :: () => a -> CInt -> IO ()         -        setNpx :: a -> CInt -> IO ()+        setNpx :: () => a -> CInt -> IO ()         -        setParError :: a -> CInt -> CDouble -> IO ()+        setParError :: () => a -> CInt -> CDouble -> IO ()         -        setParErrors :: a -> (Ptr CDouble) -> IO ()+        setParErrors :: () => a -> Ptr CDouble -> IO ()         -        setParLimits :: a -> CInt -> CDouble -> CDouble -> IO ()+        setParLimits :: () => a -> CInt -> CDouble -> CDouble -> IO ()                  setParent :: (ITObject c0, FPtr c0) => a -> c0 -> IO ()         -        setRange1 :: a -> CDouble -> CDouble -> IO ()+        setRange1 :: () => a -> CDouble -> CDouble -> IO ()         -        setRange2 :: a -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()+        setRange2 ::+                    () => a -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()                  setRange3 ::+                    () =>                     a ->                       CDouble ->                         CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()         -        setSavedPoint :: a -> CInt -> CDouble -> IO ()+        setSavedPoint :: () => a -> CInt -> CDouble -> IO ()                  moment ::+                 () =>                  a ->                    CDouble ->-                     CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                     CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  centralMoment ::+                        () =>                         a ->                           CDouble ->-                            CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                            CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  mean ::-               a -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+               () =>+               a -> CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble                  variance ::-                   a -> CDouble -> CDouble -> (Ptr CDouble) -> CDouble -> IO CDouble+                   () =>+                   a -> CDouble -> CDouble -> Ptr CDouble -> CDouble -> IO CDouble  upcastTF1 :: forall a . (FPtr a, ITF1 a) => a -> TF1 upcastTF1 h
− src/HROOT/Hist/TF1/Interface.hs-boot
@@ -1,3 +0,0 @@-module HROOT.Hist.TF1.Interface where--class ITF1 a
src/HROOT/Hist/TF1/RawType.hs view
@@ -8,9 +8,9 @@ data RawTF1  newtype TF1 = TF1 (Ptr RawTF1)-            deriving (Eq, Ord, Show)+                deriving (Eq, Ord, Show) -instance FPtr TF1 where+instance () => FPtr (TF1) where         type Raw TF1 = RawTF1         get_fptr (TF1 ptr) = ptr         cast_fptr_to_obj = TF1
src/HROOT/Hist/TFitResult/Cast.hs view
@@ -8,11 +8,12 @@ import HROOT.Hist.TFitResult.RawType import HROOT.Hist.TFitResult.Interface -instance (ITFitResult a, FPtr a) => Castable a (Ptr RawTFitResult)+instance (ITFitResult a, FPtr a) =>+         Castable (a) (Ptr RawTFitResult)          where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TFitResult (Ptr RawTFitResult) where+instance () => Castable (TFitResult) (Ptr RawTFitResult) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TFitResult/FFI.hsc view
@@ -1,53 +1,68 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TFitResult.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TFitResult.RawType+import HROOT.Hist.TFitResult.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_SetName" c_tfitresult_setname ::                Ptr RawTFitResult -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_SetNameTitle"                c_tfitresult_setnametitle ::                Ptr RawTFitResult -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_SetTitle" c_tfitresult_settitle                :: Ptr RawTFitResult -> CString -> IO () -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_Draw"-               c_tfitresult_draw :: Ptr RawTFitResult -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_Clear" c_tfitresult_clear ::+               Ptr RawTFitResult -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_Draw" c_tfitresult_draw ::+               Ptr RawTFitResult -> CString -> IO ()++foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_FindObject"                c_tfitresult_findobject ::                Ptr RawTFitResult -> CString -> IO (Ptr RawTObject) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_GetName" c_tfitresult_getname ::                Ptr RawTFitResult -> IO CString -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_IsA"-               c_tfitresult_isa :: Ptr RawTFitResult -> IO (Ptr RawTClass)+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_IsA" c_tfitresult_isa ::+               Ptr RawTFitResult -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_Paint"-               c_tfitresult_paint :: Ptr RawTFitResult -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_Paint" c_tfitresult_paint ::+               Ptr RawTFitResult -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTFitResult.h TFitResult_printObj" c_tfitresult_printobj                :: Ptr RawTFitResult -> CString -> IO () -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_SaveAs"-               c_tfitresult_saveas ::+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_SaveAs" c_tfitresult_saveas ::                Ptr RawTFitResult -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_Write"-               c_tfitresult_write ::+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_Write" c_tfitresult_write ::                Ptr RawTFitResult -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTFitResult.h TFitResult_delete"-               c_tfitresult_delete :: Ptr RawTFitResult -> IO ()+foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_Write_" c_tfitresult_write_ ::+               Ptr RawTFitResult -> IO CInt++foreign import ccall interruptible+               "HROOTHistTFitResult.h TFitResult_delete" c_tfitresult_delete ::+               Ptr RawTFitResult -> IO ()
src/HROOT/Hist/TFitResult/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TFitResult.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TFitResult.RawType import HROOT.Hist.TFitResult.FFI import HROOT.Hist.TFitResult.Interface import HROOT.Hist.TFitResult.Cast+import HROOT.Hist.TFitResult.RawType+import HROOT.Hist.TFitResult.Cast+import HROOT.Hist.TFitResult.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface@@ -21,18 +30,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITFitResult TFitResult+instance () => ITFitResult (TFitResult) where -instance ITNamed TFitResult where+instance () => ITNamed (TFitResult) where         setName = xform1 c_tfitresult_setname         setNameTitle = xform2 c_tfitresult_setnametitle         setTitle = xform1 c_tfitresult_settitle -instance ITObject TFitResult where+instance () => ITObject (TFitResult) where+        clear = xform1 c_tfitresult_clear         draw = xform1 c_tfitresult_draw         findObject = xform1 c_tfitresult_findobject         getName = xform0 c_tfitresult_getname@@ -41,6 +51,7 @@         printObj = xform1 c_tfitresult_printobj         saveAs = xform2 c_tfitresult_saveas         write = xform3 c_tfitresult_write+        write_ = xform0 c_tfitresult_write_ -instance IDeletable TFitResult where+instance () => IDeletable (TFitResult) where         delete = xform0 c_tfitresult_delete
src/HROOT/Hist/TFitResult/Interface.hs view
@@ -4,13 +4,14 @@   TypeSynonymInstances #-} module HROOT.Hist.TFitResult.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TFitResult.RawType import HROOT.Core.TNamed.Interface -class ITNamed a => ITFitResult a+class (ITNamed a) => ITFitResult a where  upcastTFitResult ::                  forall a . (FPtr a, ITFitResult a) => a -> TFitResult
src/HROOT/Hist/TFitResult/RawType.hs view
@@ -8,9 +8,9 @@ data RawTFitResult  newtype TFitResult = TFitResult (Ptr RawTFitResult)-                   deriving (Eq, Ord, Show)+                       deriving (Eq, Ord, Show) -instance FPtr TFitResult where+instance () => FPtr (TFitResult) where         type Raw TFitResult = RawTFitResult         get_fptr (TFitResult ptr) = ptr         cast_fptr_to_obj = TFitResult
src/HROOT/Hist/TFitResultPtr.hs view
@@ -1,6 +1,6 @@ module HROOT.Hist.TFitResultPtr        (TFitResultPtr(..), ITFitResultPtr, upcastTFitResultPtr,-        downcastTFitResultPtr, tFitResultPtrGet)+        downcastTFitResultPtr, tFitResultPtr_Get)        where import HROOT.Hist.TFitResultPtr.RawType import HROOT.Hist.TFitResultPtr.Interface
src/HROOT/Hist/TFitResultPtr/Cast.hs view
@@ -8,11 +8,13 @@ import HROOT.Hist.TFitResultPtr.RawType import HROOT.Hist.TFitResultPtr.Interface -instance (ITFitResultPtr a, FPtr a) => Castable a-         (Ptr RawTFitResultPtr) where+instance (ITFitResultPtr a, FPtr a) =>+         Castable (a) (Ptr RawTFitResultPtr)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TFitResultPtr (Ptr RawTFitResultPtr) where+instance () => Castable (TFitResultPtr) (Ptr RawTFitResultPtr)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TFitResultPtr/FFI.hsc view
@@ -1,11 +1,14 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TFitResultPtr.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TFitResultPtr.RawType+import HROOT.Hist.TFitResultPtr.RawType import HROOT.Hist.TFitResult.RawType -foreign import ccall safe-               "HROOTHistTFitResultPtr.h TFitResultPtr_tFitResultPtrGet"-               c_tfitresultptr_tfitresultptrget ::+foreign import ccall interruptible+               "HROOTHistTFitResultPtr.h TFitResultPtr_tFitResultPtr_Get"+               c_tfitresultptr_tfitresultptr_get ::                Ptr RawTFitResultPtr -> IO (Ptr RawTFitResult)
src/HROOT/Hist/TFitResultPtr/Implementation.hs view
@@ -1,22 +1,31 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TFitResultPtr.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TFitResultPtr.RawType import HROOT.Hist.TFitResultPtr.FFI import HROOT.Hist.TFitResultPtr.Interface import HROOT.Hist.TFitResultPtr.Cast+import HROOT.Hist.TFitResultPtr.RawType+import HROOT.Hist.TFitResultPtr.Cast+import HROOT.Hist.TFitResultPtr.Interface import HROOT.Hist.TFitResult.RawType import HROOT.Hist.TFitResult.Cast import HROOT.Hist.TFitResult.Interface -instance ITFitResultPtr TFitResultPtr+instance () => ITFitResultPtr (TFitResultPtr) where -tFitResultPtrGet :: TFitResultPtr -> IO TFitResult-tFitResultPtrGet = xform0 c_tfitresultptr_tfitresultptrget+tFitResultPtr_Get :: () => TFitResultPtr -> IO TFitResult+tFitResultPtr_Get = xform0 c_tfitresultptr_tfitresultptr_get
src/HROOT/Hist/TFitResultPtr/Interface.hs view
@@ -4,13 +4,13 @@   TypeSynonymInstances #-} module HROOT.Hist.TFitResultPtr.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TFitResultPtr.RawType-import HROOT.Hist.TFitResult.RawType -class ITFitResultPtr a+class () => ITFitResultPtr a where  upcastTFitResultPtr ::                     forall a . (FPtr a, ITFitResultPtr a) => a -> TFitResultPtr
src/HROOT/Hist/TFitResultPtr/RawType.hs view
@@ -8,9 +8,9 @@ data RawTFitResultPtr  newtype TFitResultPtr = TFitResultPtr (Ptr RawTFitResultPtr)-                      deriving (Eq, Ord, Show)+                          deriving (Eq, Ord, Show) -instance FPtr TFitResultPtr where+instance () => FPtr (TFitResultPtr) where         type Raw TFitResultPtr = RawTFitResultPtr         get_fptr (TFitResultPtr ptr) = ptr         cast_fptr_to_obj = TFitResultPtr
src/HROOT/Hist/TGraph.hs view
@@ -1,9 +1,9 @@ module HROOT.Hist.TGraph        (TGraph(..), ITGraph(..), upcastTGraph, downcastTGraph, newTGraph,-        tGraphGetEditable, tGraphGetFunction, tGraphGetHistogram,-        tGraphGetMaxSize, tGraphGetN, tGraphGetMaximum, tGraphGetMinimum,-        tGraphGetXaxis, tGraphGetYaxis, tGraphPaintGraph,-        tGraphPaintGrapHist)+        tGraph_GetEditable, tGraph_GetFunction, tGraph_GetHistogram,+        tGraph_GetMaxSize, tGraph_GetN, tGraph_GetMaximum,+        tGraph_GetMinimum, tGraph_GetXaxis, tGraph_GetYaxis,+        tGraph_PaintGraph, tGraph_PaintGrapHist)        where import HROOT.Hist.TGraph.RawType import HROOT.Hist.TGraph.Interface
src/HROOT/Hist/TGraph/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TGraph.RawType import HROOT.Hist.TGraph.Interface -instance (ITGraph a, FPtr a) => Castable a (Ptr RawTGraph) where+instance (ITGraph a, FPtr a) => Castable (a) (Ptr RawTGraph) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TGraph (Ptr RawTGraph) where+instance () => Castable (TGraph) (Ptr RawTGraph) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TGraph/FFI.hsc view
@@ -1,264 +1,318 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TGraph.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType import HROOT.Hist.TF1.RawType import HROOT.Hist.TH1F.RawType import HROOT.Hist.TAxis.RawType -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetName"-               c_tgraph_setname :: Ptr RawTGraph -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetName" c_tgraph_setname ::+               Ptr RawTGraph -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetNameTitle"-               c_tgraph_setnametitle ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetNameTitle" c_tgraph_setnametitle ::                Ptr RawTGraph -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetTitle"-               c_tgraph_settitle :: Ptr RawTGraph -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetTitle" c_tgraph_settitle ::+               Ptr RawTGraph -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetLineColor"-               c_tgraph_getlinecolor :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetLineColor" c_tgraph_getlinecolor ::+               Ptr RawTGraph -> IO CShort -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetLineStyle"-               c_tgraph_getlinestyle :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetLineStyle" c_tgraph_getlinestyle ::+               Ptr RawTGraph -> IO CShort -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetLineWidth"-               c_tgraph_getlinewidth :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetLineWidth" c_tgraph_getlinewidth ::+               Ptr RawTGraph -> IO CShort -foreign import ccall safe "HROOTHistTGraph.h TGraph_ResetAttLine"-               c_tgraph_resetattline :: Ptr RawTGraph -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_ResetAttLine" c_tgraph_resetattline ::+               Ptr RawTGraph -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_SetLineAttributes"                c_tgraph_setlineattributes :: Ptr RawTGraph -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetLineColor"-               c_tgraph_setlinecolor :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetLineColor" c_tgraph_setlinecolor ::+               Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetLineStyle"-               c_tgraph_setlinestyle :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetLineStyle" c_tgraph_setlinestyle ::+               Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetLineWidth"-               c_tgraph_setlinewidth :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetLineWidth" c_tgraph_setlinewidth ::+               Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetFillColor"-               c_tgraph_setfillcolor :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetFillColor" c_tgraph_setfillcolor ::+               Ptr RawTGraph -> CInt -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetFillStyle"-               c_tgraph_setfillstyle :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetFillStyle" c_tgraph_setfillstyle ::+               Ptr RawTGraph -> CInt -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetMarkerColor"-               c_tgraph_getmarkercolor :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetMarkerColor" c_tgraph_getmarkercolor+               :: Ptr RawTGraph -> IO CShort -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetMarkerStyle"-               c_tgraph_getmarkerstyle :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetMarkerStyle" c_tgraph_getmarkerstyle+               :: Ptr RawTGraph -> IO CShort -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetMarkerSize"-               c_tgraph_getmarkersize :: Ptr RawTGraph -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetMarkerSize" c_tgraph_getmarkersize ::+               Ptr RawTGraph -> IO CFloat -foreign import ccall safe "HROOTHistTGraph.h TGraph_ResetAttMarker"-               c_tgraph_resetattmarker :: Ptr RawTGraph -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_ResetAttMarker" c_tgraph_resetattmarker+               :: Ptr RawTGraph -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_SetMarkerAttributes"                c_tgraph_setmarkerattributes :: Ptr RawTGraph -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetMarkerColor"-               c_tgraph_setmarkercolor :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetMarkerColor" c_tgraph_setmarkercolor+               :: Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetMarkerStyle"-               c_tgraph_setmarkerstyle :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetMarkerStyle" c_tgraph_setmarkerstyle+               :: Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetMarkerSize"-               c_tgraph_setmarkersize :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetMarkerSize" c_tgraph_setmarkersize ::+               Ptr RawTGraph -> CShort -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Draw"+foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Clear"+               c_tgraph_clear :: Ptr RawTGraph -> CString -> IO ()++foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Draw"                c_tgraph_draw :: Ptr RawTGraph -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_FindObject"-               c_tgraph_findobject ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_FindObject" c_tgraph_findobject ::                Ptr RawTGraph -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetName"-               c_tgraph_getname :: Ptr RawTGraph -> IO CString+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetName" c_tgraph_getname ::+               Ptr RawTGraph -> IO CString -foreign import ccall safe "HROOTHistTGraph.h TGraph_IsA"+foreign import ccall interruptible "HROOTHistTGraph.h TGraph_IsA"                c_tgraph_isa :: Ptr RawTGraph -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTGraph.h TGraph_Paint"+foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Paint"                c_tgraph_paint :: Ptr RawTGraph -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_printObj"-               c_tgraph_printobj :: Ptr RawTGraph -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_printObj" c_tgraph_printobj ::+               Ptr RawTGraph -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SaveAs"-               c_tgraph_saveas :: Ptr RawTGraph -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SaveAs" c_tgraph_saveas ::+               Ptr RawTGraph -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Write"+foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Write"                c_tgraph_write ::                Ptr RawTGraph -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_delete"-               c_tgraph_delete :: Ptr RawTGraph -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_Write_" c_tgraph_write_ ::+               Ptr RawTGraph -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_newTGraph"-               c_tgraph_newtgraph ::-               CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraph)+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_delete" c_tgraph_delete ::+               Ptr RawTGraph -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Apply"+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_newTGraph" c_tgraph_newtgraph ::+               CInt -> Ptr CDouble -> Ptr CDouble -> IO (Ptr RawTGraph)++foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Apply"                c_tgraph_apply :: Ptr RawTGraph -> Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Chisquare"-               c_tgraph_chisquare :: Ptr RawTGraph -> Ptr RawTF1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_Chisquare" c_tgraph_chisquare ::+               Ptr RawTGraph -> Ptr RawTF1 -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_DrawGraph"-               c_tgraph_drawgraph ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_DrawGraph" c_tgraph_drawgraph ::                Ptr RawTGraph ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_drawPanelTGraph" c_tgraph_drawpaneltgraph                :: Ptr RawTGraph -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Expand"-               c_tgraph_expand :: Ptr RawTGraph -> CInt -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_Expand" c_tgraph_expand ::+               Ptr RawTGraph -> CInt -> CInt -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_FitPanelTGraph"-               c_tgraph_fitpaneltgraph :: Ptr RawTGraph -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_FitPanelTGraph" c_tgraph_fitpaneltgraph+               :: Ptr RawTGraph -> IO () -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetEditable"-               c_tgraph_tgraphgeteditable :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetEditable"+               c_tgraph_tgraph_geteditable :: Ptr RawTGraph -> IO CBool -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetFunction"-               c_tgraph_tgraphgetfunction ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetFunction"+               c_tgraph_tgraph_getfunction ::                Ptr RawTGraph -> CString -> IO (Ptr RawTF1) -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetHistogram"-               c_tgraph_tgraphgethistogram :: Ptr RawTGraph -> IO (Ptr RawTH1F)+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetHistogram"+               c_tgraph_tgraph_gethistogram :: Ptr RawTGraph -> IO (Ptr RawTH1F) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_getCorrelationFactorTGraph"                c_tgraph_getcorrelationfactortgraph :: Ptr RawTGraph -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_getCovarianceTGraph"                c_tgraph_getcovariancetgraph :: Ptr RawTGraph -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_getMeanTGraph"-               c_tgraph_getmeantgraph :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_getMeanTGraph" c_tgraph_getmeantgraph ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_getRMSTGraph"-               c_tgraph_getrmstgraph :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_getRMSTGraph" c_tgraph_getrmstgraph ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetMaxSize"-               c_tgraph_tgraphgetmaxsize :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetMaxSize"+               c_tgraph_tgraph_getmaxsize :: Ptr RawTGraph -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_tGraphGetN"-               c_tgraph_tgraphgetn :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetN" c_tgraph_tgraph_getn ::+               Ptr RawTGraph -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorX"-               c_tgraph_geterrorx :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorX" c_tgraph_geterrorx ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorY"-               c_tgraph_geterrory :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorY" c_tgraph_geterrory ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorXhigh"-               c_tgraph_geterrorxhigh :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorXhigh" c_tgraph_geterrorxhigh ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorXlow"-               c_tgraph_geterrorxlow :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorXlow" c_tgraph_geterrorxlow ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorYhigh"-               c_tgraph_geterroryhigh :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorYhigh" c_tgraph_geterroryhigh ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_GetErrorYlow"-               c_tgraph_geterrorylow :: Ptr RawTGraph -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_GetErrorYlow" c_tgraph_geterrorylow ::+               Ptr RawTGraph -> CInt -> IO CDouble -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetMaximum"-               c_tgraph_tgraphgetmaximum :: Ptr RawTGraph -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetMaximum"+               c_tgraph_tgraph_getmaximum :: Ptr RawTGraph -> IO CDouble -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphGetMinimum"-               c_tgraph_tgraphgetminimum :: Ptr RawTGraph -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetMinimum"+               c_tgraph_tgraph_getminimum :: Ptr RawTGraph -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_tGraphGetXaxis"-               c_tgraph_tgraphgetxaxis :: Ptr RawTGraph -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetXaxis" c_tgraph_tgraph_getxaxis+               :: Ptr RawTGraph -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTGraph.h TGraph_tGraphGetYaxis"-               c_tgraph_tgraphgetyaxis :: Ptr RawTGraph -> IO (Ptr RawTAxis)+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_GetYaxis" c_tgraph_tgraph_getyaxis+               :: Ptr RawTGraph -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTGraph.h TGraph_InitExpo"-               c_tgraph_initexpo :: Ptr RawTGraph -> CDouble -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_InitExpo" c_tgraph_initexpo ::+               Ptr RawTGraph -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_InitGaus"-               c_tgraph_initgaus :: Ptr RawTGraph -> CDouble -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_InitGaus" c_tgraph_initgaus ::+               Ptr RawTGraph -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_InitPolynom"-               c_tgraph_initpolynom ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_InitPolynom" c_tgraph_initpolynom ::                Ptr RawTGraph -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_InsertPoint"-               c_tgraph_insertpoint :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_InsertPoint" c_tgraph_insertpoint ::+               Ptr RawTGraph -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_integralTGraph"-               c_tgraph_integraltgraph ::-               Ptr RawTGraph -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_integralTGraph" c_tgraph_integraltgraph+               :: Ptr RawTGraph -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTGraph.h TGraph_IsEditable"-               c_tgraph_iseditable :: Ptr RawTGraph -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_IsEditable" c_tgraph_iseditable ::+               Ptr RawTGraph -> IO CBool -foreign import ccall safe "HROOTHistTGraph.h TGraph_isInsideTGraph"-               c_tgraph_isinsidetgraph ::-               Ptr RawTGraph -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_isInsideTGraph" c_tgraph_isinsidetgraph+               :: Ptr RawTGraph -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_LeastSquareFit"-               c_tgraph_leastsquarefit ::-               Ptr RawTGraph ->-                 CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_LeastSquareFit" c_tgraph_leastsquarefit+               ::+               Ptr RawTGraph -> CInt -> Ptr CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphPaintGraph"-               c_tgraph_tgraphpaintgraph ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_PaintGraph"+               c_tgraph_tgraph_paintgraph ::                Ptr RawTGraph ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe-               "HROOTHistTGraph.h TGraph_tGraphPaintGrapHist"-               c_tgraph_tgraphpaintgraphist ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_tGraph_PaintGrapHist"+               c_tgraph_tgraph_paintgraphist ::                Ptr RawTGraph ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_PaintStats"-               c_tgraph_paintstats :: Ptr RawTGraph -> Ptr RawTF1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_PaintStats" c_tgraph_paintstats ::+               Ptr RawTGraph -> Ptr RawTF1 -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_RemovePoint"-               c_tgraph_removepoint :: Ptr RawTGraph -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_RemovePoint" c_tgraph_removepoint ::+               Ptr RawTGraph -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetEditable"-               c_tgraph_seteditable :: Ptr RawTGraph -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetEditable" c_tgraph_seteditable ::+               Ptr RawTGraph -> CBool -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetHistogram"-               c_tgraph_sethistogram :: Ptr RawTGraph -> Ptr RawTH1F -> IO ()+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetHistogram" c_tgraph_sethistogram ::+               Ptr RawTGraph -> Ptr RawTH1F -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_setMaximumTGraph"                c_tgraph_setmaximumtgraph :: Ptr RawTGraph -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraph.h TGraph_setMinimumTGraph"                c_tgraph_setminimumtgraph :: Ptr RawTGraph -> CDouble -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_Set"+foreign import ccall interruptible "HROOTHistTGraph.h TGraph_Set"                c_tgraph_set :: Ptr RawTGraph -> CInt -> IO () -foreign import ccall safe "HROOTHistTGraph.h TGraph_SetPoint"-               c_tgraph_setpoint ::+foreign import ccall interruptible+               "HROOTHistTGraph.h TGraph_SetPoint" c_tgraph_setpoint ::                Ptr RawTGraph -> CInt -> CDouble -> CDouble -> IO ()
src/HROOT/Hist/TGraph/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TGraph.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TGraph.RawType import HROOT.Hist.TGraph.FFI import HROOT.Hist.TGraph.Interface import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface@@ -39,11 +48,11 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITGraph TGraph where+instance () => ITGraph (TGraph) where         apply = xform1 c_tgraph_apply         chisquare = xform1 c_tgraph_chisquare         drawGraph = xform4 c_tgraph_drawgraph@@ -78,12 +87,12 @@         set = xform1 c_tgraph_set         setPoint = xform3 c_tgraph_setpoint -instance ITNamed TGraph where+instance () => ITNamed (TGraph) where         setName = xform1 c_tgraph_setname         setNameTitle = xform2 c_tgraph_setnametitle         setTitle = xform1 c_tgraph_settitle -instance ITAttLine TGraph where+instance () => ITAttLine (TGraph) where         getLineColor = xform0 c_tgraph_getlinecolor         getLineStyle = xform0 c_tgraph_getlinestyle         getLineWidth = xform0 c_tgraph_getlinewidth@@ -93,11 +102,11 @@         setLineStyle = xform1 c_tgraph_setlinestyle         setLineWidth = xform1 c_tgraph_setlinewidth -instance ITAttFill TGraph where+instance () => ITAttFill (TGraph) where         setFillColor = xform1 c_tgraph_setfillcolor         setFillStyle = xform1 c_tgraph_setfillstyle -instance ITAttMarker TGraph where+instance () => ITAttMarker (TGraph) where         getMarkerColor = xform0 c_tgraph_getmarkercolor         getMarkerStyle = xform0 c_tgraph_getmarkerstyle         getMarkerSize = xform0 c_tgraph_getmarkersize@@ -107,7 +116,8 @@         setMarkerStyle = xform1 c_tgraph_setmarkerstyle         setMarkerSize = xform1 c_tgraph_setmarkersize -instance ITObject TGraph where+instance () => ITObject (TGraph) where+        clear = xform1 c_tgraph_clear         draw = xform1 c_tgraph_draw         findObject = xform1 c_tgraph_findobject         getName = xform0 c_tgraph_getname@@ -116,46 +126,48 @@         printObj = xform1 c_tgraph_printobj         saveAs = xform2 c_tgraph_saveas         write = xform3 c_tgraph_write+        write_ = xform0 c_tgraph_write_ -instance IDeletable TGraph where+instance () => IDeletable (TGraph) where         delete = xform0 c_tgraph_delete -newTGraph :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraph+newTGraph :: () => CInt -> Ptr CDouble -> Ptr CDouble -> IO TGraph newTGraph = xform2 c_tgraph_newtgraph -tGraphGetEditable :: TGraph -> IO CInt-tGraphGetEditable = xform0 c_tgraph_tgraphgeteditable+tGraph_GetEditable :: () => TGraph -> IO CBool+tGraph_GetEditable = xform0 c_tgraph_tgraph_geteditable -tGraphGetFunction :: Castable c0 CString => TGraph -> c0 -> IO TF1-tGraphGetFunction = xform1 c_tgraph_tgraphgetfunction+tGraph_GetFunction ::+                     (Castable c0 CString) => TGraph -> c0 -> IO TF1+tGraph_GetFunction = xform1 c_tgraph_tgraph_getfunction -tGraphGetHistogram :: TGraph -> IO TH1F-tGraphGetHistogram = xform0 c_tgraph_tgraphgethistogram+tGraph_GetHistogram :: () => TGraph -> IO TH1F+tGraph_GetHistogram = xform0 c_tgraph_tgraph_gethistogram -tGraphGetMaxSize :: TGraph -> IO CInt-tGraphGetMaxSize = xform0 c_tgraph_tgraphgetmaxsize+tGraph_GetMaxSize :: () => TGraph -> IO CInt+tGraph_GetMaxSize = xform0 c_tgraph_tgraph_getmaxsize -tGraphGetN :: TGraph -> IO CInt-tGraphGetN = xform0 c_tgraph_tgraphgetn+tGraph_GetN :: () => TGraph -> IO CInt+tGraph_GetN = xform0 c_tgraph_tgraph_getn -tGraphGetMaximum :: TGraph -> IO CDouble-tGraphGetMaximum = xform0 c_tgraph_tgraphgetmaximum+tGraph_GetMaximum :: () => TGraph -> IO CDouble+tGraph_GetMaximum = xform0 c_tgraph_tgraph_getmaximum -tGraphGetMinimum :: TGraph -> IO CDouble-tGraphGetMinimum = xform0 c_tgraph_tgraphgetminimum+tGraph_GetMinimum :: () => TGraph -> IO CDouble+tGraph_GetMinimum = xform0 c_tgraph_tgraph_getminimum -tGraphGetXaxis :: TGraph -> IO TAxis-tGraphGetXaxis = xform0 c_tgraph_tgraphgetxaxis+tGraph_GetXaxis :: () => TGraph -> IO TAxis+tGraph_GetXaxis = xform0 c_tgraph_tgraph_getxaxis -tGraphGetYaxis :: TGraph -> IO TAxis-tGraphGetYaxis = xform0 c_tgraph_tgraphgetyaxis+tGraph_GetYaxis :: () => TGraph -> IO TAxis+tGraph_GetYaxis = xform0 c_tgraph_tgraph_getyaxis -tGraphPaintGraph ::-                   Castable c0 CString =>-                   TGraph -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> c0 -> IO ()-tGraphPaintGraph = xform4 c_tgraph_tgraphpaintgraph+tGraph_PaintGraph ::+                    (Castable c0 CString) =>+                    TGraph -> CInt -> Ptr CDouble -> Ptr CDouble -> c0 -> IO ()+tGraph_PaintGraph = xform4 c_tgraph_tgraph_paintgraph -tGraphPaintGrapHist ::-                      Castable c0 CString =>-                      TGraph -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> c0 -> IO ()-tGraphPaintGrapHist = xform4 c_tgraph_tgraphpaintgraphist+tGraph_PaintGrapHist ::+                       (Castable c0 CString) =>+                       TGraph -> CInt -> Ptr CDouble -> Ptr CDouble -> c0 -> IO ()+tGraph_PaintGrapHist = xform4 c_tgraph_tgraph_paintgraphist
src/HROOT/Hist/TGraph/Interface.hs view
@@ -4,19 +4,17 @@   TypeSynonymInstances #-} module HROOT.Hist.TGraph.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TGraph.RawType-import HROOT.Hist.TF1.RawType-import HROOT.Hist.TH1F.RawType-import HROOT.Hist.TAxis.RawType import HROOT.Core.TNamed.Interface import HROOT.Core.TAttLine.Interface import HROOT.Core.TAttFill.Interface import HROOT.Core.TAttMarker.Interface-import {-# SOURCE #-} HROOT.Hist.TF1.Interface-import {-# SOURCE #-} HROOT.Hist.TH1F.Interface+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TH1F.Interface  class (ITNamed a, ITAttLine a, ITAttFill a, ITAttMarker a) =>       ITGraph a where@@ -25,67 +23,67 @@         chisquare :: (ITF1 c0, FPtr c0) => a -> c0 -> IO CDouble                  drawGraph ::-                    Castable c0 CString =>-                    a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> c0 -> IO ()+                    (Castable c0 CString) =>+                    a -> CInt -> Ptr CDouble -> Ptr CDouble -> c0 -> IO ()         -        drawPanelTGraph :: a -> IO ()+        drawPanelTGraph :: () => a -> IO ()         -        expand :: a -> CInt -> CInt -> IO ()+        expand :: () => a -> CInt -> CInt -> IO ()         -        fitPanelTGraph :: a -> IO ()+        fitPanelTGraph :: () => a -> IO ()         -        getCorrelationFactorTGraph :: a -> IO CDouble+        getCorrelationFactorTGraph :: () => a -> IO CDouble         -        getCovarianceTGraph :: a -> IO CDouble+        getCovarianceTGraph :: () => a -> IO CDouble         -        getMeanTGraph :: a -> CInt -> IO CDouble+        getMeanTGraph :: () => a -> CInt -> IO CDouble         -        getRMSTGraph :: a -> CInt -> IO CDouble+        getRMSTGraph :: () => a -> CInt -> IO CDouble         -        getErrorX :: a -> CInt -> IO CDouble+        getErrorX :: () => a -> CInt -> IO CDouble         -        getErrorY :: a -> CInt -> IO CDouble+        getErrorY :: () => a -> CInt -> IO CDouble         -        getErrorXhigh :: a -> CInt -> IO CDouble+        getErrorXhigh :: () => a -> CInt -> IO CDouble         -        getErrorXlow :: a -> CInt -> IO CDouble+        getErrorXlow :: () => a -> CInt -> IO CDouble         -        getErrorYhigh :: a -> CInt -> IO CDouble+        getErrorYhigh :: () => a -> CInt -> IO CDouble         -        getErrorYlow :: a -> CInt -> IO CDouble+        getErrorYlow :: () => a -> CInt -> IO CDouble         -        initExpo :: a -> CDouble -> CDouble -> IO ()+        initExpo :: () => a -> CDouble -> CDouble -> IO ()         -        initGaus :: a -> CDouble -> CDouble -> IO ()+        initGaus :: () => a -> CDouble -> CDouble -> IO ()         -        initPolynom :: a -> CDouble -> CDouble -> IO ()+        initPolynom :: () => a -> CDouble -> CDouble -> IO ()         -        insertPoint :: a -> IO CInt+        insertPoint :: () => a -> IO CInt         -        integralTGraph :: a -> CInt -> CInt -> IO CDouble+        integralTGraph :: () => a -> CInt -> CInt -> IO CDouble         -        isEditable :: a -> IO CInt+        isEditable :: () => a -> IO CBool         -        isInsideTGraph :: a -> CDouble -> CDouble -> IO CInt+        isInsideTGraph :: () => a -> CDouble -> CDouble -> IO CInt                  leastSquareFit ::-                         a -> CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()+                         () => a -> CInt -> Ptr CDouble -> CDouble -> CDouble -> IO ()                  paintStats :: (ITF1 c0, FPtr c0) => a -> c0 -> IO ()         -        removePoint :: a -> CInt -> IO CInt+        removePoint :: () => a -> CInt -> IO CInt         -        setEditable :: a -> CInt -> IO ()+        setEditable :: () => a -> CBool -> IO ()                  setHistogram :: (ITH1F c0, FPtr c0) => a -> c0 -> IO ()         -        setMaximumTGraph :: a -> CDouble -> IO ()+        setMaximumTGraph :: () => a -> CDouble -> IO ()         -        setMinimumTGraph :: a -> CDouble -> IO ()+        setMinimumTGraph :: () => a -> CDouble -> IO ()         -        set :: a -> CInt -> IO ()+        set :: () => a -> CInt -> IO ()         -        setPoint :: a -> CInt -> CDouble -> CDouble -> IO ()+        setPoint :: () => a -> CInt -> CDouble -> CDouble -> IO ()  upcastTGraph :: forall a . (FPtr a, ITGraph a) => a -> TGraph upcastTGraph h
src/HROOT/Hist/TGraph/RawType.hs view
@@ -8,9 +8,9 @@ data RawTGraph  newtype TGraph = TGraph (Ptr RawTGraph)-               deriving (Eq, Ord, Show)+                   deriving (Eq, Ord, Show) -instance FPtr TGraph where+instance () => FPtr (TGraph) where         type Raw TGraph = RawTGraph         get_fptr (TGraph ptr) = ptr         cast_fptr_to_obj = TGraph
+ src/HROOT/Hist/TGraph2D.hs view
@@ -0,0 +1,8 @@+module HROOT.Hist.TGraph2D+       (TGraph2D(..), ITGraph2D(..), upcastTGraph2D, downcastTGraph2D,+        newTGraph2D_, newTGraph2D, tGraph2D_GetXaxis, tGraph2D_GetYaxis,+        tGraph2D_GetZaxis, tGraph2D_SetMaximum, tGraph2D_SetMinimum)+       where+import HROOT.Hist.TGraph2D.RawType+import HROOT.Hist.TGraph2D.Interface+import HROOT.Hist.TGraph2D.Implementation
+ src/HROOT/Hist/TGraph2D/Cast.hs view
@@ -0,0 +1,18 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies,+  MultiParamTypeClasses, OverlappingInstances, IncoherentInstances+  #-}+module HROOT.Hist.TGraph2D.Cast where+import Foreign.Ptr+import FFICXX.Runtime.Cast+import System.IO.Unsafe+import HROOT.Hist.TGraph2D.RawType+import HROOT.Hist.TGraph2D.Interface++instance (ITGraph2D a, FPtr a) => Castable (a) (Ptr RawTGraph2D)+         where+        cast x f = f (castPtr (get_fptr x))+        uncast x f = f (cast_fptr_to_obj (castPtr x))++instance () => Castable (TGraph2D) (Ptr RawTGraph2D) where+        cast x f = f (castPtr (get_fptr x))+        uncast x f = f (cast_fptr_to_obj (castPtr x))
+ src/HROOT/Hist/TGraph2D/FFI.hsc view
@@ -0,0 +1,183 @@+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-}+module HROOT.Hist.TGraph2D.FFI where+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import HROOT.Hist.TGraph2D.RawType+import HROOT.Hist.TGraph2D.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TAxis.RawType++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetName" c_tgraph2d_setname ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetNameTitle" c_tgraph2d_setnametitle+               :: Ptr RawTGraph2D -> CString -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetTitle" c_tgraph2d_settitle ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetLineColor" c_tgraph2d_getlinecolor+               :: Ptr RawTGraph2D -> IO CShort++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetLineStyle" c_tgraph2d_getlinestyle+               :: Ptr RawTGraph2D -> IO CShort++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetLineWidth" c_tgraph2d_getlinewidth+               :: Ptr RawTGraph2D -> IO CShort++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_ResetAttLine" c_tgraph2d_resetattline+               :: Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetLineAttributes"+               c_tgraph2d_setlineattributes :: Ptr RawTGraph2D -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetLineColor" c_tgraph2d_setlinecolor+               :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetLineStyle" c_tgraph2d_setlinestyle+               :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetLineWidth" c_tgraph2d_setlinewidth+               :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetFillColor" c_tgraph2d_setfillcolor+               :: Ptr RawTGraph2D -> CInt -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetFillStyle" c_tgraph2d_setfillstyle+               :: Ptr RawTGraph2D -> CInt -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetMarkerColor"+               c_tgraph2d_getmarkercolor :: Ptr RawTGraph2D -> IO CShort++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetMarkerStyle"+               c_tgraph2d_getmarkerstyle :: Ptr RawTGraph2D -> IO CShort++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetMarkerSize"+               c_tgraph2d_getmarkersize :: Ptr RawTGraph2D -> IO CFloat++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_ResetAttMarker"+               c_tgraph2d_resetattmarker :: Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetMarkerAttributes"+               c_tgraph2d_setmarkerattributes :: Ptr RawTGraph2D -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetMarkerColor"+               c_tgraph2d_setmarkercolor :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetMarkerStyle"+               c_tgraph2d_setmarkerstyle :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetMarkerSize"+               c_tgraph2d_setmarkersize :: Ptr RawTGraph2D -> CShort -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_Clear" c_tgraph2d_clear ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_Draw" c_tgraph2d_draw ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_FindObject" c_tgraph2d_findobject ::+               Ptr RawTGraph2D -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_GetName" c_tgraph2d_getname ::+               Ptr RawTGraph2D -> IO CString++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_IsA" c_tgraph2d_isa ::+               Ptr RawTGraph2D -> IO (Ptr RawTClass)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_Paint" c_tgraph2d_paint ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_printObj" c_tgraph2d_printobj ::+               Ptr RawTGraph2D -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SaveAs" c_tgraph2d_saveas ::+               Ptr RawTGraph2D -> CString -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_Write" c_tgraph2d_write ::+               Ptr RawTGraph2D -> CString -> CInt -> CInt -> IO CInt++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_Write_" c_tgraph2d_write_ ::+               Ptr RawTGraph2D -> IO CInt++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_delete" c_tgraph2d_delete ::+               Ptr RawTGraph2D -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_newTGraph2D_" c_tgraph2d_newtgraph2d_+               :: IO (Ptr RawTGraph2D)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_newTGraph2D" c_tgraph2d_newtgraph2d+               ::+               CInt ->+                 Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO (Ptr RawTGraph2D)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_tGraph2D_GetXaxis"+               c_tgraph2d_tgraph2d_getxaxis ::+               Ptr RawTGraph2D -> IO (Ptr RawTAxis)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_tGraph2D_GetYaxis"+               c_tgraph2d_tgraph2d_getyaxis ::+               Ptr RawTGraph2D -> IO (Ptr RawTAxis)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_tGraph2D_GetZaxis"+               c_tgraph2d_tgraph2d_getzaxis ::+               Ptr RawTGraph2D -> IO (Ptr RawTAxis)++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetN" c_tgraph2d_setn ::+               Ptr RawTGraph2D -> CInt -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_tGraph2D_SetMaximum"+               c_tgraph2d_tgraph2d_setmaximum ::+               Ptr RawTGraph2D -> CDouble -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_tGraph2D_SetMinimum"+               c_tgraph2d_tgraph2d_setminimum ::+               Ptr RawTGraph2D -> CDouble -> IO ()++foreign import ccall interruptible+               "HROOTHistTGraph2D.h TGraph2D_SetPointXYZ" c_tgraph2d_setpointxyz+               ::+               Ptr RawTGraph2D -> CInt -> CDouble -> CDouble -> CDouble -> IO ()
+ src/HROOT/Hist/TGraph2D/Implementation.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,+  ForeignFunctionInterface, IncoherentInstances,+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-}+module HROOT.Hist.TGraph2D.Implementation where+import Data.Monoid+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax+import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH+import HROOT.Hist.TGraph2D.RawType+import HROOT.Hist.TGraph2D.FFI+import HROOT.Hist.TGraph2D.Interface+import HROOT.Hist.TGraph2D.Cast+import HROOT.Hist.TGraph2D.RawType+import HROOT.Hist.TGraph2D.Cast+import HROOT.Hist.TGraph2D.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TAxis.RawType+import HROOT.Hist.TAxis.Cast+import HROOT.Hist.TAxis.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.RawType+import HROOT.Core.TAttLine.Cast+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.RawType+import HROOT.Core.TAttFill.Cast+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.RawType+import HROOT.Core.TAttMarker.Cast+import HROOT.Core.TAttMarker.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface++instance () => ITGraph2D (TGraph2D) where+        setN = xform1 c_tgraph2d_setn+        setPointXYZ = xform4 c_tgraph2d_setpointxyz++instance () => ITNamed (TGraph2D) where+        setName = xform1 c_tgraph2d_setname+        setNameTitle = xform2 c_tgraph2d_setnametitle+        setTitle = xform1 c_tgraph2d_settitle++instance () => ITAttLine (TGraph2D) where+        getLineColor = xform0 c_tgraph2d_getlinecolor+        getLineStyle = xform0 c_tgraph2d_getlinestyle+        getLineWidth = xform0 c_tgraph2d_getlinewidth+        resetAttLine = xform1 c_tgraph2d_resetattline+        setLineAttributes = xform0 c_tgraph2d_setlineattributes+        setLineColor = xform1 c_tgraph2d_setlinecolor+        setLineStyle = xform1 c_tgraph2d_setlinestyle+        setLineWidth = xform1 c_tgraph2d_setlinewidth++instance () => ITAttFill (TGraph2D) where+        setFillColor = xform1 c_tgraph2d_setfillcolor+        setFillStyle = xform1 c_tgraph2d_setfillstyle++instance () => ITAttMarker (TGraph2D) where+        getMarkerColor = xform0 c_tgraph2d_getmarkercolor+        getMarkerStyle = xform0 c_tgraph2d_getmarkerstyle+        getMarkerSize = xform0 c_tgraph2d_getmarkersize+        resetAttMarker = xform1 c_tgraph2d_resetattmarker+        setMarkerAttributes = xform0 c_tgraph2d_setmarkerattributes+        setMarkerColor = xform1 c_tgraph2d_setmarkercolor+        setMarkerStyle = xform1 c_tgraph2d_setmarkerstyle+        setMarkerSize = xform1 c_tgraph2d_setmarkersize++instance () => ITObject (TGraph2D) where+        clear = xform1 c_tgraph2d_clear+        draw = xform1 c_tgraph2d_draw+        findObject = xform1 c_tgraph2d_findobject+        getName = xform0 c_tgraph2d_getname+        isA = xform0 c_tgraph2d_isa+        paint = xform1 c_tgraph2d_paint+        printObj = xform1 c_tgraph2d_printobj+        saveAs = xform2 c_tgraph2d_saveas+        write = xform3 c_tgraph2d_write+        write_ = xform0 c_tgraph2d_write_++instance () => IDeletable (TGraph2D) where+        delete = xform0 c_tgraph2d_delete++newTGraph2D_ :: () => IO TGraph2D+newTGraph2D_ = xformnull c_tgraph2d_newtgraph2d_++newTGraph2D ::+              () =>+              CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraph2D+newTGraph2D = xform3 c_tgraph2d_newtgraph2d++tGraph2D_GetXaxis :: () => TGraph2D -> IO TAxis+tGraph2D_GetXaxis = xform0 c_tgraph2d_tgraph2d_getxaxis++tGraph2D_GetYaxis :: () => TGraph2D -> IO TAxis+tGraph2D_GetYaxis = xform0 c_tgraph2d_tgraph2d_getyaxis++tGraph2D_GetZaxis :: () => TGraph2D -> IO TAxis+tGraph2D_GetZaxis = xform0 c_tgraph2d_tgraph2d_getzaxis++tGraph2D_SetMaximum :: () => TGraph2D -> CDouble -> IO ()+tGraph2D_SetMaximum = xform1 c_tgraph2d_tgraph2d_setmaximum++tGraph2D_SetMinimum :: () => TGraph2D -> CDouble -> IO ()+tGraph2D_SetMinimum = xform1 c_tgraph2d_tgraph2d_setminimum
+ src/HROOT/Hist/TGraph2D/Interface.hs view
@@ -0,0 +1,35 @@+{-# LANGUAGE EmptyDataDecls, ExistentialQuantification,+  FlexibleContexts, FlexibleInstances, ForeignFunctionInterface,+  MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies,+  TypeSynonymInstances #-}+module HROOT.Hist.TGraph2D.Interface where+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import FFICXX.Runtime.Cast+import HROOT.Hist.TGraph2D.RawType+import HROOT.Core.TNamed.Interface+import HROOT.Core.TAttLine.Interface+import HROOT.Core.TAttFill.Interface+import HROOT.Core.TAttMarker.Interface++class (ITNamed a, ITAttLine a, ITAttFill a, ITAttMarker a) =>+      ITGraph2D a where+        setN :: () => a -> CInt -> IO ()+        +        setPointXYZ ::+                      () => a -> CInt -> CDouble -> CDouble -> CDouble -> IO ()++upcastTGraph2D :: forall a . (FPtr a, ITGraph2D a) => a -> TGraph2D+upcastTGraph2D h+  = let fh = get_fptr h+        fh2 :: Ptr RawTGraph2D = castPtr fh+      in cast_fptr_to_obj fh2++downcastTGraph2D ::+                 forall a . (FPtr a, ITGraph2D a) => TGraph2D -> a+downcastTGraph2D h+  = let fh = get_fptr h+        fh2 = castPtr fh+      in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TGraph2D/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies,+  MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances,+  EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}+module HROOT.Hist.TGraph2D.RawType where+import Foreign.Ptr+import FFICXX.Runtime.Cast++data RawTGraph2D++newtype TGraph2D = TGraph2D (Ptr RawTGraph2D)+                     deriving (Eq, Ord, Show)++instance () => FPtr (TGraph2D) where+        type Raw TGraph2D = RawTGraph2D+        get_fptr (TGraph2D ptr) = ptr+        cast_fptr_to_obj = TGraph2D
src/HROOT/Hist/TGraphAsymmErrors.hs view
@@ -1,5 +1,5 @@ module HROOT.Hist.TGraphAsymmErrors-       (TGraphAsymmErrors(..), ITGraphAsymmErrors,+       (TGraphAsymmErrors(..), ITGraphAsymmErrors(..),         upcastTGraphAsymmErrors, downcastTGraphAsymmErrors,         newTGraphAsymmErrors)        where
src/HROOT/Hist/TGraphAsymmErrors/Cast.hs view
@@ -8,12 +8,14 @@ import HROOT.Hist.TGraphAsymmErrors.RawType import HROOT.Hist.TGraphAsymmErrors.Interface -instance (ITGraphAsymmErrors a, FPtr a) => Castable a-         (Ptr RawTGraphAsymmErrors) where+instance (ITGraphAsymmErrors a, FPtr a) =>+         Castable (a) (Ptr RawTGraphAsymmErrors)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TGraphAsymmErrors (Ptr RawTGraphAsymmErrors)+instance () =>+         Castable (TGraphAsymmErrors) (Ptr RawTGraphAsymmErrors)          where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TGraphAsymmErrors/FFI.hsc view
@@ -1,331 +1,349 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TGraphAsymmErrors.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TGraphAsymmErrors.RawType import HROOT.Hist.TF1.RawType import HROOT.Hist.TH1F.RawType import HROOT.Hist.TAxis.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Apply"                c_tgraphasymmerrors_apply ::                Ptr RawTGraphAsymmErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Chisquare"                c_tgraphasymmerrors_chisquare ::                Ptr RawTGraphAsymmErrors -> Ptr RawTF1 -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_DrawGraph"                c_tgraphasymmerrors_drawgraph ::                Ptr RawTGraphAsymmErrors ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_drawPanelTGraph"                c_tgraphasymmerrors_drawpaneltgraph ::                Ptr RawTGraphAsymmErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Expand"                c_tgraphasymmerrors_expand ::                Ptr RawTGraphAsymmErrors -> CInt -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_FitPanelTGraph"                c_tgraphasymmerrors_fitpaneltgraph ::                Ptr RawTGraphAsymmErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getCorrelationFactorTGraph"                c_tgraphasymmerrors_getcorrelationfactortgraph ::                Ptr RawTGraphAsymmErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getCovarianceTGraph"                c_tgraphasymmerrors_getcovariancetgraph ::                Ptr RawTGraphAsymmErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getMeanTGraph"                c_tgraphasymmerrors_getmeantgraph ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_getRMSTGraph"                c_tgraphasymmerrors_getrmstgraph ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorX"                c_tgraphasymmerrors_geterrorx ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorY"                c_tgraphasymmerrors_geterrory ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorXhigh"                c_tgraphasymmerrors_geterrorxhigh ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorXlow"                c_tgraphasymmerrors_geterrorxlow ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorYhigh"                c_tgraphasymmerrors_geterroryhigh ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetErrorYlow"                c_tgraphasymmerrors_geterrorylow ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitExpo"                c_tgraphasymmerrors_initexpo ::                Ptr RawTGraphAsymmErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitGaus"                c_tgraphasymmerrors_initgaus ::                Ptr RawTGraphAsymmErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InitPolynom"                c_tgraphasymmerrors_initpolynom ::                Ptr RawTGraphAsymmErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_InsertPoint"                c_tgraphasymmerrors_insertpoint ::                Ptr RawTGraphAsymmErrors -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_integralTGraph"                c_tgraphasymmerrors_integraltgraph ::                Ptr RawTGraphAsymmErrors -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_IsEditable"                c_tgraphasymmerrors_iseditable ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CBool -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_isInsideTGraph"                c_tgraphasymmerrors_isinsidetgraph ::                Ptr RawTGraphAsymmErrors -> CDouble -> CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_LeastSquareFit"                c_tgraphasymmerrors_leastsquarefit ::                Ptr RawTGraphAsymmErrors ->-                 CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()+                 CInt -> Ptr CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_PaintStats"                c_tgraphasymmerrors_paintstats ::                Ptr RawTGraphAsymmErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_RemovePoint"                c_tgraphasymmerrors_removepoint ::                Ptr RawTGraphAsymmErrors -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetEditable"                c_tgraphasymmerrors_seteditable ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CBool -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetHistogram"                c_tgraphasymmerrors_sethistogram ::                Ptr RawTGraphAsymmErrors -> Ptr RawTH1F -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_setMaximumTGraph"                c_tgraphasymmerrors_setmaximumtgraph ::                Ptr RawTGraphAsymmErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_setMinimumTGraph"                c_tgraphasymmerrors_setminimumtgraph ::                Ptr RawTGraphAsymmErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Set"                c_tgraphasymmerrors_set ::                Ptr RawTGraphAsymmErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetPoint"                c_tgraphasymmerrors_setpoint ::                Ptr RawTGraphAsymmErrors -> CInt -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetName"                c_tgraphasymmerrors_setname ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetNameTitle"                c_tgraphasymmerrors_setnametitle ::                Ptr RawTGraphAsymmErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetTitle"                c_tgraphasymmerrors_settitle ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineColor"                c_tgraphasymmerrors_getlinecolor ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineStyle"                c_tgraphasymmerrors_getlinestyle ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetLineWidth"                c_tgraphasymmerrors_getlinewidth ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_ResetAttLine"                c_tgraphasymmerrors_resetattline ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineAttributes"                c_tgraphasymmerrors_setlineattributes ::                Ptr RawTGraphAsymmErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineColor"                c_tgraphasymmerrors_setlinecolor ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineStyle"                c_tgraphasymmerrors_setlinestyle ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetLineWidth"                c_tgraphasymmerrors_setlinewidth ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetFillColor"                c_tgraphasymmerrors_setfillcolor ::                Ptr RawTGraphAsymmErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetFillStyle"                c_tgraphasymmerrors_setfillstyle ::                Ptr RawTGraphAsymmErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerColor"                c_tgraphasymmerrors_getmarkercolor ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerStyle"                c_tgraphasymmerrors_getmarkerstyle ::-               Ptr RawTGraphAsymmErrors -> IO CInt+               Ptr RawTGraphAsymmErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetMarkerSize"                c_tgraphasymmerrors_getmarkersize ::-               Ptr RawTGraphAsymmErrors -> IO CDouble+               Ptr RawTGraphAsymmErrors -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_ResetAttMarker"                c_tgraphasymmerrors_resetattmarker ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerAttributes"                c_tgraphasymmerrors_setmarkerattributes ::                Ptr RawTGraphAsymmErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerColor"                c_tgraphasymmerrors_setmarkercolor ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerStyle"                c_tgraphasymmerrors_setmarkerstyle ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetMarkerSize"                c_tgraphasymmerrors_setmarkersize ::-               Ptr RawTGraphAsymmErrors -> CInt -> IO ()+               Ptr RawTGraphAsymmErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Clear"+               c_tgraphasymmerrors_clear ::+               Ptr RawTGraphAsymmErrors -> CString -> IO ()++foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Draw"                c_tgraphasymmerrors_draw ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_FindObject"                c_tgraphasymmerrors_findobject ::                Ptr RawTGraphAsymmErrors -> CString -> IO (Ptr RawTObject) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_GetName"                c_tgraphasymmerrors_getname ::                Ptr RawTGraphAsymmErrors -> IO CString -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_IsA"                c_tgraphasymmerrors_isa ::                Ptr RawTGraphAsymmErrors -> IO (Ptr RawTClass) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Paint"                c_tgraphasymmerrors_paint ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_printObj"                c_tgraphasymmerrors_printobj ::                Ptr RawTGraphAsymmErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SaveAs"                c_tgraphasymmerrors_saveas ::                Ptr RawTGraphAsymmErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Write"                c_tgraphasymmerrors_write ::                Ptr RawTGraphAsymmErrors -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_Write_"+               c_tgraphasymmerrors_write_ :: Ptr RawTGraphAsymmErrors -> IO CInt++foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_delete"                c_tgraphasymmerrors_delete :: Ptr RawTGraphAsymmErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_newTGraphAsymmErrors"                c_tgraphasymmerrors_newtgraphasymmerrors ::                CInt ->-                 (Ptr CDouble) ->-                   (Ptr CDouble) ->-                     (Ptr CDouble) ->-                       (Ptr CDouble) ->-                         (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphAsymmErrors)+                 Ptr CDouble ->+                   Ptr CDouble ->+                     Ptr CDouble ->+                       Ptr CDouble ->+                         Ptr CDouble -> Ptr CDouble -> IO (Ptr RawTGraphAsymmErrors)++foreign import ccall interruptible+               "HROOTHistTGraphAsymmErrors.h TGraphAsymmErrors_SetPointErrorA"+               c_tgraphasymmerrors_setpointerrora ::+               Ptr RawTGraphAsymmErrors ->+                 CInt -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
src/HROOT/Hist/TGraphAsymmErrors/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TGraphAsymmErrors.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TGraphAsymmErrors.RawType import HROOT.Hist.TGraphAsymmErrors.FFI import HROOT.Hist.TGraphAsymmErrors.Interface import HROOT.Hist.TGraphAsymmErrors.Cast+import HROOT.Hist.TGraphAsymmErrors.RawType+import HROOT.Hist.TGraphAsymmErrors.Cast+import HROOT.Hist.TGraphAsymmErrors.Interface import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.Cast import HROOT.Hist.TF1.Interface@@ -42,13 +51,14 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITGraphAsymmErrors TGraphAsymmErrors+instance () => ITGraphAsymmErrors (TGraphAsymmErrors) where+        setPointErrorA = xform5 c_tgraphasymmerrors_setpointerrora -instance ITGraph TGraphAsymmErrors where+instance () => ITGraph (TGraphAsymmErrors) where         apply = xform1 c_tgraphasymmerrors_apply         chisquare = xform1 c_tgraphasymmerrors_chisquare         drawGraph = xform4 c_tgraphasymmerrors_drawgraph@@ -84,12 +94,12 @@         set = xform1 c_tgraphasymmerrors_set         setPoint = xform3 c_tgraphasymmerrors_setpoint -instance ITNamed TGraphAsymmErrors where+instance () => ITNamed (TGraphAsymmErrors) where         setName = xform1 c_tgraphasymmerrors_setname         setNameTitle = xform2 c_tgraphasymmerrors_setnametitle         setTitle = xform1 c_tgraphasymmerrors_settitle -instance ITAttLine TGraphAsymmErrors where+instance () => ITAttLine (TGraphAsymmErrors) where         getLineColor = xform0 c_tgraphasymmerrors_getlinecolor         getLineStyle = xform0 c_tgraphasymmerrors_getlinestyle         getLineWidth = xform0 c_tgraphasymmerrors_getlinewidth@@ -99,11 +109,11 @@         setLineStyle = xform1 c_tgraphasymmerrors_setlinestyle         setLineWidth = xform1 c_tgraphasymmerrors_setlinewidth -instance ITAttFill TGraphAsymmErrors where+instance () => ITAttFill (TGraphAsymmErrors) where         setFillColor = xform1 c_tgraphasymmerrors_setfillcolor         setFillStyle = xform1 c_tgraphasymmerrors_setfillstyle -instance ITAttMarker TGraphAsymmErrors where+instance () => ITAttMarker (TGraphAsymmErrors) where         getMarkerColor = xform0 c_tgraphasymmerrors_getmarkercolor         getMarkerStyle = xform0 c_tgraphasymmerrors_getmarkerstyle         getMarkerSize = xform0 c_tgraphasymmerrors_getmarkersize@@ -114,7 +124,8 @@         setMarkerStyle = xform1 c_tgraphasymmerrors_setmarkerstyle         setMarkerSize = xform1 c_tgraphasymmerrors_setmarkersize -instance ITObject TGraphAsymmErrors where+instance () => ITObject (TGraphAsymmErrors) where+        clear = xform1 c_tgraphasymmerrors_clear         draw = xform1 c_tgraphasymmerrors_draw         findObject = xform1 c_tgraphasymmerrors_findobject         getName = xform0 c_tgraphasymmerrors_getname@@ -123,16 +134,17 @@         printObj = xform1 c_tgraphasymmerrors_printobj         saveAs = xform2 c_tgraphasymmerrors_saveas         write = xform3 c_tgraphasymmerrors_write+        write_ = xform0 c_tgraphasymmerrors_write_ -instance IDeletable TGraphAsymmErrors where+instance () => IDeletable (TGraphAsymmErrors) where         delete = xform0 c_tgraphasymmerrors_delete  newTGraphAsymmErrors ::+                       () =>                        CInt ->-                         (Ptr CDouble) ->-                           (Ptr CDouble) ->-                             (Ptr CDouble) ->-                               (Ptr CDouble) ->-                                 (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphAsymmErrors+                         Ptr CDouble ->+                           Ptr CDouble ->+                             Ptr CDouble ->+                               Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraphAsymmErrors newTGraphAsymmErrors   = xform6 c_tgraphasymmerrors_newtgraphasymmerrors
src/HROOT/Hist/TGraphAsymmErrors/Interface.hs view
@@ -4,13 +4,17 @@   TypeSynonymInstances #-} module HROOT.Hist.TGraphAsymmErrors.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TGraphAsymmErrors.RawType import HROOT.Hist.TGraph.Interface -class ITGraph a => ITGraphAsymmErrors a+class (ITGraph a) => ITGraphAsymmErrors a where+        setPointErrorA ::+                         () =>+                         a -> CInt -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()  upcastTGraphAsymmErrors ::                         forall a . (FPtr a, ITGraphAsymmErrors a) => a -> TGraphAsymmErrors
src/HROOT/Hist/TGraphAsymmErrors/RawType.hs view
@@ -9,9 +9,9 @@  newtype TGraphAsymmErrors = TGraphAsymmErrors (Ptr                                                  RawTGraphAsymmErrors)-                          deriving (Eq, Ord, Show)+                              deriving (Eq, Ord, Show) -instance FPtr TGraphAsymmErrors where+instance () => FPtr (TGraphAsymmErrors) where         type Raw TGraphAsymmErrors = RawTGraphAsymmErrors         get_fptr (TGraphAsymmErrors ptr) = ptr         cast_fptr_to_obj = TGraphAsymmErrors
src/HROOT/Hist/TGraphBentErrors/Cast.hs view
@@ -8,11 +8,14 @@ import HROOT.Hist.TGraphBentErrors.RawType import HROOT.Hist.TGraphBentErrors.Interface -instance (ITGraphBentErrors a, FPtr a) => Castable a-         (Ptr RawTGraphBentErrors) where+instance (ITGraphBentErrors a, FPtr a) =>+         Castable (a) (Ptr RawTGraphBentErrors)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TGraphBentErrors (Ptr RawTGraphBentErrors) where+instance () =>+         Castable (TGraphBentErrors) (Ptr RawTGraphBentErrors)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TGraphBentErrors/FFI.hsc view
@@ -1,332 +1,345 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TGraphBentErrors.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TGraphBentErrors.RawType import HROOT.Hist.TF1.RawType import HROOT.Hist.TH1F.RawType import HROOT.Hist.TAxis.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Apply"                c_tgraphbenterrors_apply ::                Ptr RawTGraphBentErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Chisquare"                c_tgraphbenterrors_chisquare ::                Ptr RawTGraphBentErrors -> Ptr RawTF1 -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_DrawGraph"                c_tgraphbenterrors_drawgraph ::                Ptr RawTGraphBentErrors ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_drawPanelTGraph"                c_tgraphbenterrors_drawpaneltgraph ::                Ptr RawTGraphBentErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Expand"                c_tgraphbenterrors_expand ::                Ptr RawTGraphBentErrors -> CInt -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_FitPanelTGraph"                c_tgraphbenterrors_fitpaneltgraph ::                Ptr RawTGraphBentErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_getCorrelationFactorTGraph"                c_tgraphbenterrors_getcorrelationfactortgraph ::                Ptr RawTGraphBentErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_getCovarianceTGraph"                c_tgraphbenterrors_getcovariancetgraph ::                Ptr RawTGraphBentErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_getMeanTGraph"                c_tgraphbenterrors_getmeantgraph ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_getRMSTGraph"                c_tgraphbenterrors_getrmstgraph ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorX"                c_tgraphbenterrors_geterrorx ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorY"                c_tgraphbenterrors_geterrory ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorXhigh"                c_tgraphbenterrors_geterrorxhigh ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorXlow"                c_tgraphbenterrors_geterrorxlow ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorYhigh"                c_tgraphbenterrors_geterroryhigh ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetErrorYlow"                c_tgraphbenterrors_geterrorylow ::                Ptr RawTGraphBentErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitExpo"                c_tgraphbenterrors_initexpo ::                Ptr RawTGraphBentErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitGaus"                c_tgraphbenterrors_initgaus ::                Ptr RawTGraphBentErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_InitPolynom"                c_tgraphbenterrors_initpolynom ::                Ptr RawTGraphBentErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_InsertPoint"                c_tgraphbenterrors_insertpoint ::                Ptr RawTGraphBentErrors -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_integralTGraph"                c_tgraphbenterrors_integraltgraph ::                Ptr RawTGraphBentErrors -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_IsEditable"-               c_tgraphbenterrors_iseditable :: Ptr RawTGraphBentErrors -> IO CInt+               c_tgraphbenterrors_iseditable ::+               Ptr RawTGraphBentErrors -> IO CBool -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_isInsideTGraph"                c_tgraphbenterrors_isinsidetgraph ::                Ptr RawTGraphBentErrors -> CDouble -> CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_LeastSquareFit"                c_tgraphbenterrors_leastsquarefit ::                Ptr RawTGraphBentErrors ->-                 CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()+                 CInt -> Ptr CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_PaintStats"                c_tgraphbenterrors_paintstats ::                Ptr RawTGraphBentErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_RemovePoint"                c_tgraphbenterrors_removepoint ::                Ptr RawTGraphBentErrors -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetEditable"                c_tgraphbenterrors_seteditable ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CBool -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetHistogram"                c_tgraphbenterrors_sethistogram ::                Ptr RawTGraphBentErrors -> Ptr RawTH1F -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_setMaximumTGraph"                c_tgraphbenterrors_setmaximumtgraph ::                Ptr RawTGraphBentErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_setMinimumTGraph"                c_tgraphbenterrors_setminimumtgraph ::                Ptr RawTGraphBentErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Set"                c_tgraphbenterrors_set :: Ptr RawTGraphBentErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetPoint"                c_tgraphbenterrors_setpoint ::                Ptr RawTGraphBentErrors -> CInt -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetName"                c_tgraphbenterrors_setname ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetNameTitle"                c_tgraphbenterrors_setnametitle ::                Ptr RawTGraphBentErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetTitle"                c_tgraphbenterrors_settitle ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineColor"                c_tgraphbenterrors_getlinecolor ::-               Ptr RawTGraphBentErrors -> IO CInt+               Ptr RawTGraphBentErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineStyle"                c_tgraphbenterrors_getlinestyle ::-               Ptr RawTGraphBentErrors -> IO CInt+               Ptr RawTGraphBentErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetLineWidth"                c_tgraphbenterrors_getlinewidth ::-               Ptr RawTGraphBentErrors -> IO CInt+               Ptr RawTGraphBentErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_ResetAttLine"                c_tgraphbenterrors_resetattline ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineAttributes"                c_tgraphbenterrors_setlineattributes ::                Ptr RawTGraphBentErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineColor"                c_tgraphbenterrors_setlinecolor ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineStyle"                c_tgraphbenterrors_setlinestyle ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetLineWidth"                c_tgraphbenterrors_setlinewidth ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetFillColor"                c_tgraphbenterrors_setfillcolor ::                Ptr RawTGraphBentErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetFillStyle"                c_tgraphbenterrors_setfillstyle ::                Ptr RawTGraphBentErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerColor"                c_tgraphbenterrors_getmarkercolor ::-               Ptr RawTGraphBentErrors -> IO CInt+               Ptr RawTGraphBentErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerStyle"                c_tgraphbenterrors_getmarkerstyle ::-               Ptr RawTGraphBentErrors -> IO CInt+               Ptr RawTGraphBentErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetMarkerSize"                c_tgraphbenterrors_getmarkersize ::-               Ptr RawTGraphBentErrors -> IO CDouble+               Ptr RawTGraphBentErrors -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_ResetAttMarker"                c_tgraphbenterrors_resetattmarker ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerAttributes"                c_tgraphbenterrors_setmarkerattributes ::                Ptr RawTGraphBentErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerColor"                c_tgraphbenterrors_setmarkercolor ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerStyle"                c_tgraphbenterrors_setmarkerstyle ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SetMarkerSize"                c_tgraphbenterrors_setmarkersize ::-               Ptr RawTGraphBentErrors -> CInt -> IO ()+               Ptr RawTGraphBentErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphBentErrors.h TGraphBentErrors_Clear"+               c_tgraphbenterrors_clear ::+               Ptr RawTGraphBentErrors -> CString -> IO ()++foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Draw"                c_tgraphbenterrors_draw ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_FindObject"                c_tgraphbenterrors_findobject ::                Ptr RawTGraphBentErrors -> CString -> IO (Ptr RawTObject) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_GetName"                c_tgraphbenterrors_getname :: Ptr RawTGraphBentErrors -> IO CString -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_IsA"                c_tgraphbenterrors_isa ::                Ptr RawTGraphBentErrors -> IO (Ptr RawTClass) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Paint"                c_tgraphbenterrors_paint ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_printObj"                c_tgraphbenterrors_printobj ::                Ptr RawTGraphBentErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_SaveAs"                c_tgraphbenterrors_saveas ::                Ptr RawTGraphBentErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_Write"                c_tgraphbenterrors_write ::                Ptr RawTGraphBentErrors -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphBentErrors.h TGraphBentErrors_Write_"+               c_tgraphbenterrors_write_ :: Ptr RawTGraphBentErrors -> IO CInt++foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_delete"                c_tgraphbenterrors_delete :: Ptr RawTGraphBentErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphBentErrors.h TGraphBentErrors_newTGraphBentErrors"                c_tgraphbenterrors_newtgraphbenterrors ::                CInt ->-                 (Ptr CDouble) ->-                   (Ptr CDouble) ->-                     (Ptr CDouble) ->-                       (Ptr CDouble) ->-                         (Ptr CDouble) ->-                           (Ptr CDouble) ->-                             (Ptr CDouble) ->-                               (Ptr CDouble) ->-                                 (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphBentErrors)+                 Ptr CDouble ->+                   Ptr CDouble ->+                     Ptr CDouble ->+                       Ptr CDouble ->+                         Ptr CDouble ->+                           Ptr CDouble ->+                             Ptr CDouble ->+                               Ptr CDouble ->+                                 Ptr CDouble -> Ptr CDouble -> IO (Ptr RawTGraphBentErrors)
src/HROOT/Hist/TGraphBentErrors/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TGraphBentErrors.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TGraphBentErrors.RawType import HROOT.Hist.TGraphBentErrors.FFI import HROOT.Hist.TGraphBentErrors.Interface import HROOT.Hist.TGraphBentErrors.Cast+import HROOT.Hist.TGraphBentErrors.RawType+import HROOT.Hist.TGraphBentErrors.Cast+import HROOT.Hist.TGraphBentErrors.Interface import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.Cast import HROOT.Hist.TF1.Interface@@ -42,13 +51,13 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITGraphBentErrors TGraphBentErrors+instance () => ITGraphBentErrors (TGraphBentErrors) where -instance ITGraph TGraphBentErrors where+instance () => ITGraph (TGraphBentErrors) where         apply = xform1 c_tgraphbenterrors_apply         chisquare = xform1 c_tgraphbenterrors_chisquare         drawGraph = xform4 c_tgraphbenterrors_drawgraph@@ -83,12 +92,12 @@         set = xform1 c_tgraphbenterrors_set         setPoint = xform3 c_tgraphbenterrors_setpoint -instance ITNamed TGraphBentErrors where+instance () => ITNamed (TGraphBentErrors) where         setName = xform1 c_tgraphbenterrors_setname         setNameTitle = xform2 c_tgraphbenterrors_setnametitle         setTitle = xform1 c_tgraphbenterrors_settitle -instance ITAttLine TGraphBentErrors where+instance () => ITAttLine (TGraphBentErrors) where         getLineColor = xform0 c_tgraphbenterrors_getlinecolor         getLineStyle = xform0 c_tgraphbenterrors_getlinestyle         getLineWidth = xform0 c_tgraphbenterrors_getlinewidth@@ -98,11 +107,11 @@         setLineStyle = xform1 c_tgraphbenterrors_setlinestyle         setLineWidth = xform1 c_tgraphbenterrors_setlinewidth -instance ITAttFill TGraphBentErrors where+instance () => ITAttFill (TGraphBentErrors) where         setFillColor = xform1 c_tgraphbenterrors_setfillcolor         setFillStyle = xform1 c_tgraphbenterrors_setfillstyle -instance ITAttMarker TGraphBentErrors where+instance () => ITAttMarker (TGraphBentErrors) where         getMarkerColor = xform0 c_tgraphbenterrors_getmarkercolor         getMarkerStyle = xform0 c_tgraphbenterrors_getmarkerstyle         getMarkerSize = xform0 c_tgraphbenterrors_getmarkersize@@ -112,7 +121,8 @@         setMarkerStyle = xform1 c_tgraphbenterrors_setmarkerstyle         setMarkerSize = xform1 c_tgraphbenterrors_setmarkersize -instance ITObject TGraphBentErrors where+instance () => ITObject (TGraphBentErrors) where+        clear = xform1 c_tgraphbenterrors_clear         draw = xform1 c_tgraphbenterrors_draw         findObject = xform1 c_tgraphbenterrors_findobject         getName = xform0 c_tgraphbenterrors_getname@@ -121,20 +131,22 @@         printObj = xform1 c_tgraphbenterrors_printobj         saveAs = xform2 c_tgraphbenterrors_saveas         write = xform3 c_tgraphbenterrors_write+        write_ = xform0 c_tgraphbenterrors_write_ -instance IDeletable TGraphBentErrors where+instance () => IDeletable (TGraphBentErrors) where         delete = xform0 c_tgraphbenterrors_delete  newTGraphBentErrors ::+                      () =>                       CInt ->-                        (Ptr CDouble) ->-                          (Ptr CDouble) ->-                            (Ptr CDouble) ->-                              (Ptr CDouble) ->-                                (Ptr CDouble) ->-                                  (Ptr CDouble) ->-                                    (Ptr CDouble) ->-                                      (Ptr CDouble) ->-                                        (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphBentErrors+                        Ptr CDouble ->+                          Ptr CDouble ->+                            Ptr CDouble ->+                              Ptr CDouble ->+                                Ptr CDouble ->+                                  Ptr CDouble ->+                                    Ptr CDouble ->+                                      Ptr CDouble ->+                                        Ptr CDouble -> Ptr CDouble -> IO TGraphBentErrors newTGraphBentErrors   = xform10 c_tgraphbenterrors_newtgraphbenterrors
src/HROOT/Hist/TGraphBentErrors/Interface.hs view
@@ -4,13 +4,14 @@   TypeSynonymInstances #-} module HROOT.Hist.TGraphBentErrors.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TGraphBentErrors.RawType import HROOT.Hist.TGraph.Interface -class ITGraph a => ITGraphBentErrors a+class (ITGraph a) => ITGraphBentErrors a where  upcastTGraphBentErrors ::                        forall a . (FPtr a, ITGraphBentErrors a) => a -> TGraphBentErrors
src/HROOT/Hist/TGraphBentErrors/RawType.hs view
@@ -9,9 +9,9 @@  newtype TGraphBentErrors = TGraphBentErrors (Ptr                                                RawTGraphBentErrors)-                         deriving (Eq, Ord, Show)+                             deriving (Eq, Ord, Show) -instance FPtr TGraphBentErrors where+instance () => FPtr (TGraphBentErrors) where         type Raw TGraphBentErrors = RawTGraphBentErrors         get_fptr (TGraphBentErrors ptr) = ptr         cast_fptr_to_obj = TGraphBentErrors
src/HROOT/Hist/TGraphErrors.hs view
@@ -1,5 +1,5 @@ module HROOT.Hist.TGraphErrors-       (TGraphErrors(..), ITGraphErrors, upcastTGraphErrors,+       (TGraphErrors(..), ITGraphErrors(..), upcastTGraphErrors,         downcastTGraphErrors, newTGraphErrors)        where import HROOT.Hist.TGraphErrors.RawType
src/HROOT/Hist/TGraphErrors/Cast.hs view
@@ -8,11 +8,12 @@ import HROOT.Hist.TGraphErrors.RawType import HROOT.Hist.TGraphErrors.Interface -instance (ITGraphErrors a, FPtr a) => Castable a-         (Ptr RawTGraphErrors) where+instance (ITGraphErrors a, FPtr a) =>+         Castable (a) (Ptr RawTGraphErrors)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TGraphErrors (Ptr RawTGraphErrors) where+instance () => Castable (TGraphErrors) (Ptr RawTGraphErrors) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TGraphErrors/FFI.hsc view
@@ -1,299 +1,318 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TGraphErrors.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TGraphErrors.RawType import HROOT.Hist.TF1.RawType import HROOT.Hist.TH1F.RawType import HROOT.Hist.TAxis.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Apply" c_tgrapherrors_apply                :: Ptr RawTGraphErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Chisquare"                c_tgrapherrors_chisquare ::                Ptr RawTGraphErrors -> Ptr RawTF1 -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_DrawGraph"                c_tgrapherrors_drawgraph ::                Ptr RawTGraphErrors ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_drawPanelTGraph"                c_tgrapherrors_drawpaneltgraph :: Ptr RawTGraphErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Expand" c_tgrapherrors_expand                :: Ptr RawTGraphErrors -> CInt -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_FitPanelTGraph"                c_tgrapherrors_fitpaneltgraph :: Ptr RawTGraphErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_getCorrelationFactorTGraph"                c_tgrapherrors_getcorrelationfactortgraph ::                Ptr RawTGraphErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_getCovarianceTGraph"                c_tgrapherrors_getcovariancetgraph ::                Ptr RawTGraphErrors -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_getMeanTGraph"                c_tgrapherrors_getmeantgraph ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_getRMSTGraph"                c_tgrapherrors_getrmstgraph ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorX"                c_tgrapherrors_geterrorx ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorY"                c_tgrapherrors_geterrory ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorXhigh"                c_tgrapherrors_geterrorxhigh ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorXlow"                c_tgrapherrors_geterrorxlow ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorYhigh"                c_tgrapherrors_geterroryhigh ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetErrorYlow"                c_tgrapherrors_geterrorylow ::                Ptr RawTGraphErrors -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_InitExpo"                c_tgrapherrors_initexpo ::                Ptr RawTGraphErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_InitGaus"                c_tgrapherrors_initgaus ::                Ptr RawTGraphErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_InitPolynom"                c_tgrapherrors_initpolynom ::                Ptr RawTGraphErrors -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_InsertPoint"                c_tgrapherrors_insertpoint :: Ptr RawTGraphErrors -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_integralTGraph"                c_tgrapherrors_integraltgraph ::                Ptr RawTGraphErrors -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_IsEditable"-               c_tgrapherrors_iseditable :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_iseditable :: Ptr RawTGraphErrors -> IO CBool -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_isInsideTGraph"                c_tgrapherrors_isinsidetgraph ::                Ptr RawTGraphErrors -> CDouble -> CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_LeastSquareFit"                c_tgrapherrors_leastsquarefit ::                Ptr RawTGraphErrors ->-                 CInt -> (Ptr CDouble) -> CDouble -> CDouble -> IO ()+                 CInt -> Ptr CDouble -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_PaintStats"                c_tgrapherrors_paintstats ::                Ptr RawTGraphErrors -> Ptr RawTF1 -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_RemovePoint"                c_tgrapherrors_removepoint ::                Ptr RawTGraphErrors -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetEditable"-               c_tgrapherrors_seteditable :: Ptr RawTGraphErrors -> CInt -> IO ()+               c_tgrapherrors_seteditable :: Ptr RawTGraphErrors -> CBool -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetHistogram"                c_tgrapherrors_sethistogram ::                Ptr RawTGraphErrors -> Ptr RawTH1F -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_setMaximumTGraph"                c_tgrapherrors_setmaximumtgraph ::                Ptr RawTGraphErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_setMinimumTGraph"                c_tgrapherrors_setminimumtgraph ::                Ptr RawTGraphErrors -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Set" c_tgrapherrors_set ::                Ptr RawTGraphErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetPoint"                c_tgrapherrors_setpoint ::                Ptr RawTGraphErrors -> CInt -> CDouble -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetName"                c_tgrapherrors_setname :: Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetNameTitle"                c_tgrapherrors_setnametitle ::                Ptr RawTGraphErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetTitle"                c_tgrapherrors_settitle :: Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetLineColor"-               c_tgrapherrors_getlinecolor :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_getlinecolor :: Ptr RawTGraphErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetLineStyle"-               c_tgrapherrors_getlinestyle :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_getlinestyle :: Ptr RawTGraphErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetLineWidth"-               c_tgrapherrors_getlinewidth :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_getlinewidth :: Ptr RawTGraphErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_ResetAttLine"                c_tgrapherrors_resetattline ::                Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetLineAttributes"                c_tgrapherrors_setlineattributes :: Ptr RawTGraphErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetLineColor"-               c_tgrapherrors_setlinecolor :: Ptr RawTGraphErrors -> CInt -> IO ()+               c_tgrapherrors_setlinecolor ::+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetLineStyle"-               c_tgrapherrors_setlinestyle :: Ptr RawTGraphErrors -> CInt -> IO ()+               c_tgrapherrors_setlinestyle ::+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetLineWidth"-               c_tgrapherrors_setlinewidth :: Ptr RawTGraphErrors -> CInt -> IO ()+               c_tgrapherrors_setlinewidth ::+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetFillColor"                c_tgrapherrors_setfillcolor :: Ptr RawTGraphErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetFillStyle"                c_tgrapherrors_setfillstyle :: Ptr RawTGraphErrors -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerColor"-               c_tgrapherrors_getmarkercolor :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_getmarkercolor :: Ptr RawTGraphErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerStyle"-               c_tgrapherrors_getmarkerstyle :: Ptr RawTGraphErrors -> IO CInt+               c_tgrapherrors_getmarkerstyle :: Ptr RawTGraphErrors -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetMarkerSize"-               c_tgrapherrors_getmarkersize :: Ptr RawTGraphErrors -> IO CDouble+               c_tgrapherrors_getmarkersize :: Ptr RawTGraphErrors -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_ResetAttMarker"                c_tgrapherrors_resetattmarker ::                Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerAttributes"                c_tgrapherrors_setmarkerattributes :: Ptr RawTGraphErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerColor"                c_tgrapherrors_setmarkercolor ::-               Ptr RawTGraphErrors -> CInt -> IO ()+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerStyle"                c_tgrapherrors_setmarkerstyle ::-               Ptr RawTGraphErrors -> CInt -> IO ()+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SetMarkerSize"                c_tgrapherrors_setmarkersize ::-               Ptr RawTGraphErrors -> CInt -> IO ()+               Ptr RawTGraphErrors -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphErrors.h TGraphErrors_Clear" c_tgrapherrors_clear+               :: Ptr RawTGraphErrors -> CString -> IO ()++foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Draw" c_tgrapherrors_draw ::                Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_FindObject"                c_tgrapherrors_findobject ::                Ptr RawTGraphErrors -> CString -> IO (Ptr RawTObject) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_GetName"                c_tgrapherrors_getname :: Ptr RawTGraphErrors -> IO CString -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_IsA" c_tgrapherrors_isa ::                Ptr RawTGraphErrors -> IO (Ptr RawTClass) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Paint" c_tgrapherrors_paint                :: Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_printObj"                c_tgrapherrors_printobj :: Ptr RawTGraphErrors -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_SaveAs" c_tgrapherrors_saveas                :: Ptr RawTGraphErrors -> CString -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_Write" c_tgrapherrors_write                :: Ptr RawTGraphErrors -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible+               "HROOTHistTGraphErrors.h TGraphErrors_Write_" c_tgrapherrors_write_+               :: Ptr RawTGraphErrors -> IO CInt++foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_delete" c_tgrapherrors_delete                :: Ptr RawTGraphErrors -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTGraphErrors.h TGraphErrors_newTGraphErrors"                c_tgrapherrors_newtgrapherrors ::                CInt ->-                 (Ptr CDouble) ->-                   (Ptr CDouble) ->-                     (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphErrors)+                 Ptr CDouble ->+                   Ptr CDouble ->+                     Ptr CDouble -> Ptr CDouble -> IO (Ptr RawTGraphErrors)++foreign import ccall interruptible+               "HROOTHistTGraphErrors.h TGraphErrors_SetPointError"+               c_tgrapherrors_setpointerror ::+               Ptr RawTGraphErrors -> CInt -> CDouble -> CDouble -> IO ()
src/HROOT/Hist/TGraphErrors/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TGraphErrors.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TGraphErrors.RawType import HROOT.Hist.TGraphErrors.FFI import HROOT.Hist.TGraphErrors.Interface import HROOT.Hist.TGraphErrors.Cast+import HROOT.Hist.TGraphErrors.RawType+import HROOT.Hist.TGraphErrors.Cast+import HROOT.Hist.TGraphErrors.Interface import HROOT.Hist.TF1.RawType import HROOT.Hist.TF1.Cast import HROOT.Hist.TF1.Interface@@ -42,13 +51,14 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITGraphErrors TGraphErrors+instance () => ITGraphErrors (TGraphErrors) where+        setPointError = xform3 c_tgrapherrors_setpointerror -instance ITGraph TGraphErrors where+instance () => ITGraph (TGraphErrors) where         apply = xform1 c_tgrapherrors_apply         chisquare = xform1 c_tgrapherrors_chisquare         drawGraph = xform4 c_tgrapherrors_drawgraph@@ -83,12 +93,12 @@         set = xform1 c_tgrapherrors_set         setPoint = xform3 c_tgrapherrors_setpoint -instance ITNamed TGraphErrors where+instance () => ITNamed (TGraphErrors) where         setName = xform1 c_tgrapherrors_setname         setNameTitle = xform2 c_tgrapherrors_setnametitle         setTitle = xform1 c_tgrapherrors_settitle -instance ITAttLine TGraphErrors where+instance () => ITAttLine (TGraphErrors) where         getLineColor = xform0 c_tgrapherrors_getlinecolor         getLineStyle = xform0 c_tgrapherrors_getlinestyle         getLineWidth = xform0 c_tgrapherrors_getlinewidth@@ -98,11 +108,11 @@         setLineStyle = xform1 c_tgrapherrors_setlinestyle         setLineWidth = xform1 c_tgrapherrors_setlinewidth -instance ITAttFill TGraphErrors where+instance () => ITAttFill (TGraphErrors) where         setFillColor = xform1 c_tgrapherrors_setfillcolor         setFillStyle = xform1 c_tgrapherrors_setfillstyle -instance ITAttMarker TGraphErrors where+instance () => ITAttMarker (TGraphErrors) where         getMarkerColor = xform0 c_tgrapherrors_getmarkercolor         getMarkerStyle = xform0 c_tgrapherrors_getmarkerstyle         getMarkerSize = xform0 c_tgrapherrors_getmarkersize@@ -112,7 +122,8 @@         setMarkerStyle = xform1 c_tgrapherrors_setmarkerstyle         setMarkerSize = xform1 c_tgrapherrors_setmarkersize -instance ITObject TGraphErrors where+instance () => ITObject (TGraphErrors) where+        clear = xform1 c_tgrapherrors_clear         draw = xform1 c_tgrapherrors_draw         findObject = xform1 c_tgrapherrors_findobject         getName = xform0 c_tgrapherrors_getname@@ -121,12 +132,14 @@         printObj = xform1 c_tgrapherrors_printobj         saveAs = xform2 c_tgrapherrors_saveas         write = xform3 c_tgrapherrors_write+        write_ = xform0 c_tgrapherrors_write_ -instance IDeletable TGraphErrors where+instance () => IDeletable (TGraphErrors) where         delete = xform0 c_tgrapherrors_delete  newTGraphErrors ::+                  () =>                   CInt ->-                    (Ptr CDouble) ->-                      (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO TGraphErrors+                    Ptr CDouble ->+                      Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO TGraphErrors newTGraphErrors = xform4 c_tgrapherrors_newtgrapherrors
src/HROOT/Hist/TGraphErrors/Interface.hs view
@@ -4,13 +4,15 @@   TypeSynonymInstances #-} module HROOT.Hist.TGraphErrors.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TGraphErrors.RawType import HROOT.Hist.TGraph.Interface -class ITGraph a => ITGraphErrors a+class (ITGraph a) => ITGraphErrors a where+        setPointError :: () => a -> CInt -> CDouble -> CDouble -> IO ()  upcastTGraphErrors ::                    forall a . (FPtr a, ITGraphErrors a) => a -> TGraphErrors
src/HROOT/Hist/TGraphErrors/RawType.hs view
@@ -8,9 +8,9 @@ data RawTGraphErrors  newtype TGraphErrors = TGraphErrors (Ptr RawTGraphErrors)-                     deriving (Eq, Ord, Show)+                         deriving (Eq, Ord, Show) -instance FPtr TGraphErrors where+instance () => FPtr (TGraphErrors) where         type Raw TGraphErrors = RawTGraphErrors         get_fptr (TGraphErrors ptr) = ptr         cast_fptr_to_obj = TGraphErrors
+ src/HROOT/Hist/TH.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE FlexibleContexts, FlexibleInstances,+  ForeignFunctionInterface, InterruptibleFFI, TemplateHaskell #-}+module HROOT.Hist.TH () where+import Data.Char+import Data.List+import Data.Monoid+import Foreign.C.Types+import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH
src/HROOT/Hist/TH1.hs view
@@ -1,10 +1,10 @@ module HROOT.Hist.TH1-       (TH1(..), ITH1(..), upcastTH1, downcastTH1, tH1GetAsymmetry,-        tH1GetBufferLength, tH1GetBufferSize, tH1GetDirectory,-        tH1IsBinOverflow, tH1IsBinUnderflow, tH1UseCurrentStyle,-        tH1GetDefaultBufferSize, tH1GetDefaultSumw2,-        tH1SetDefaultBufferSize, tH1SetDefaultSumw2, tH1SmoothArray,-        tH1StatOverflows)+       (TH1(..), ITH1(..), upcastTH1, downcastTH1, tH1_GetAsymmetry,+        tH1_GetBufferLength, tH1_GetBufferSize, tH1_GetDirectory,+        tH1_GetXaxis, tH1_GetYaxis, tH1_GetZaxis, tH1_IsBinOverflow,+        tH1_IsBinUnderflow, tH1_UseCurrentStyle, tH1_GetDefaultBufferSize,+        tH1_GetDefaultSumw2, tH1_SetDefaultBufferSize, tH1_SetDefaultSumw2,+        tH1_SmoothArray, tH1_StatOverflows)        where import HROOT.Hist.TH1.RawType import HROOT.Hist.TH1.Interface
src/HROOT/Hist/TH1/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1.RawType import HROOT.Hist.TH1.Interface -instance (ITH1 a, FPtr a) => Castable a (Ptr RawTH1) where+instance (ITH1 a, FPtr a) => Castable (a) (Ptr RawTH1) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1 (Ptr RawTH1) where+instance () => Castable (TH1) (Ptr RawTH1) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType import HROOT.Core.TDirectory.RawType@@ -10,559 +13,643 @@ import HROOT.Core.TArrayD.RawType import HROOT.Hist.TAxis.RawType -foreign import ccall safe "HROOTHistTH1.h TH1_SetName"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetName"                c_th1_setname :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetNameTitle"-               c_th1_setnametitle :: Ptr RawTH1 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetNameTitle" c_th1_setnametitle ::+               Ptr RawTH1 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetTitle"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetTitle"                c_th1_settitle :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_GetLineColor"-               c_th1_getlinecolor :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetLineColor" c_th1_getlinecolor ::+               Ptr RawTH1 -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_GetLineStyle"-               c_th1_getlinestyle :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetLineStyle" c_th1_getlinestyle ::+               Ptr RawTH1 -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_GetLineWidth"-               c_th1_getlinewidth :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetLineWidth" c_th1_getlinewidth ::+               Ptr RawTH1 -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_ResetAttLine"-               c_th1_resetattline :: Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_ResetAttLine" c_th1_resetattline ::+               Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetLineAttributes"-               c_th1_setlineattributes :: Ptr RawTH1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetLineAttributes" c_th1_setlineattributes ::+               Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetLineColor"-               c_th1_setlinecolor :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetLineColor" c_th1_setlinecolor ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetLineStyle"-               c_th1_setlinestyle :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetLineStyle" c_th1_setlinestyle ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetLineWidth"-               c_th1_setlinewidth :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetLineWidth" c_th1_setlinewidth ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetFillColor"-               c_th1_setfillcolor :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetFillColor" c_th1_setfillcolor ::+               Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetFillStyle"-               c_th1_setfillstyle :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetFillStyle" c_th1_setfillstyle ::+               Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_GetMarkerColor"-               c_th1_getmarkercolor :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMarkerColor" c_th1_getmarkercolor ::+               Ptr RawTH1 -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_GetMarkerStyle"-               c_th1_getmarkerstyle :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMarkerStyle" c_th1_getmarkerstyle ::+               Ptr RawTH1 -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_GetMarkerSize"-               c_th1_getmarkersize :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMarkerSize" c_th1_getmarkersize ::+               Ptr RawTH1 -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_ResetAttMarker"-               c_th1_resetattmarker :: Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_ResetAttMarker" c_th1_resetattmarker ::+               Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMarkerAttributes"-               c_th1_setmarkerattributes :: Ptr RawTH1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetMarkerAttributes" c_th1_setmarkerattributes+               :: Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMarkerColor"-               c_th1_setmarkercolor :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetMarkerColor" c_th1_setmarkercolor ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMarkerStyle"-               c_th1_setmarkerstyle :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetMarkerStyle" c_th1_setmarkerstyle ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMarkerSize"-               c_th1_setmarkersize :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetMarkerSize" c_th1_setmarkersize ::+               Ptr RawTH1 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Draw" c_th1_draw ::-               Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Clear"+               c_th1_clear :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_FindObject"+foreign import ccall interruptible "HROOTHistTH1.h TH1_Draw"+               c_th1_draw :: Ptr RawTH1 -> CString -> IO ()++foreign import ccall interruptible "HROOTHistTH1.h TH1_FindObject"                c_th1_findobject :: Ptr RawTH1 -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTH1.h TH1_GetName"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetName"                c_th1_getname :: Ptr RawTH1 -> IO CString -foreign import ccall safe "HROOTHistTH1.h TH1_IsA" c_th1_isa ::-               Ptr RawTH1 -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1.h TH1_IsA"+               c_th1_isa :: Ptr RawTH1 -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1.h TH1_Paint" c_th1_paint ::-               Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Paint"+               c_th1_paint :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_printObj"+foreign import ccall interruptible "HROOTHistTH1.h TH1_printObj"                c_th1_printobj :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SaveAs" c_th1_saveas-               :: Ptr RawTH1 -> CString -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SaveAs"+               c_th1_saveas :: Ptr RawTH1 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Write" c_th1_write ::-               Ptr RawTH1 -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1.h TH1_Write"+               c_th1_write :: Ptr RawTH1 -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_delete" c_th1_delete-               :: Ptr RawTH1 -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Write_"+               c_th1_write_ :: Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_Add" c_th1_add ::-               Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_delete"+               c_th1_delete :: Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_AddBinContent"-               c_th1_addbincontent :: Ptr RawTH1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Add"+               c_th1_add :: Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Chi2Test"-               c_th1_chi2test ::-               Ptr RawTH1 -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_AddBinContent" c_th1_addbincontent ::+               Ptr RawTH1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_ComputeIntegral"-               c_th1_computeintegral :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible "HROOTHistTH1.h TH1_Chi2Test"+               c_th1_chi2test ::+               Ptr RawTH1 -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_DirectoryAutoAdd"-               c_th1_directoryautoadd :: Ptr RawTH1 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_DirectoryAutoAdd" c_th1_directoryautoadd ::+               Ptr RawTH1 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Divide" c_th1_divide-               ::+foreign import ccall interruptible "HROOTHistTH1.h TH1_Divide"+               c_th1_divide ::                Ptr RawTH1 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_drawCopyTH1"+foreign import ccall interruptible "HROOTHistTH1.h TH1_drawCopyTH1"                c_th1_drawcopyth1 :: Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_DrawNormalized"-               c_th1_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_DrawNormalized" c_th1_drawnormalized ::                Ptr RawTH1 -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_drawPanelTH1"-               c_th1_drawpanelth1 :: Ptr RawTH1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_drawPanelTH1" c_th1_drawpanelth1 ::+               Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_BufferEmpty"+foreign import ccall interruptible "HROOTHistTH1.h TH1_BufferEmpty"                c_th1_bufferempty :: Ptr RawTH1 -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_evalF" c_th1_evalf ::-               Ptr RawTH1 -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_evalF"+               c_th1_evalf :: Ptr RawTH1 -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_FFT" c_th1_fft ::-               Ptr RawTH1 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1.h TH1_FFT"+               c_th1_fft :: Ptr RawTH1 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_fill1" c_th1_fill1 ::-               Ptr RawTH1 -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1.h TH1_fill1"+               c_th1_fill1 :: Ptr RawTH1 -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_fill1w" c_th1_fill1w-               :: Ptr RawTH1 -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1.h TH1_fill1w"+               c_th1_fill1w :: Ptr RawTH1 -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_fillN1" c_th1_filln1-               ::-               Ptr RawTH1 ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_fillN1"+               c_th1_filln1 ::+               Ptr RawTH1 -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_FillRandom"+foreign import ccall interruptible "HROOTHistTH1.h TH1_FillRandom"                c_th1_fillrandom :: Ptr RawTH1 -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_FindBin"+foreign import ccall interruptible "HROOTHistTH1.h TH1_FindBin"                c_th1_findbin ::                Ptr RawTH1 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_FindFixBin"+foreign import ccall interruptible "HROOTHistTH1.h TH1_FindFixBin"                c_th1_findfixbin ::                Ptr RawTH1 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_FindFirstBinAbove"-               c_th1_findfirstbinabove :: Ptr RawTH1 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_FindFirstBinAbove" c_th1_findfirstbinabove ::+               Ptr RawTH1 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_FindLastBinAbove"-               c_th1_findlastbinabove :: Ptr RawTH1 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_FindLastBinAbove" c_th1_findlastbinabove ::+               Ptr RawTH1 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_Fit" c_th1_fit ::+foreign import ccall interruptible "HROOTHistTH1.h TH1_Fit"+               c_th1_fit ::                Ptr RawTH1 ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_FitPanelTH1"+foreign import ccall interruptible "HROOTHistTH1.h TH1_FitPanelTH1"                c_th1_fitpanelth1 :: Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_tH1GetAsymmetry"-               c_th1_th1getasymmetry ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetAsymmetry" c_th1_th1_getasymmetry ::                Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_tH1GetBufferLength"-               c_th1_th1getbufferlength :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetBufferLength" c_th1_th1_getbufferlength+               :: Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_tH1GetBufferSize"-               c_th1_th1getbuffersize :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetBufferSize" c_th1_th1_getbuffersize ::+               Ptr RawTH1 -> IO CInt -foreign import ccall safe-               "HROOTHistTH1.h TH1_tH1GetDefaultBufferSize"-               c_th1_th1getdefaultbuffersize :: IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetDefaultBufferSize"+               c_th1_th1_getdefaultbuffersize :: IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_getNdivisionA"-               c_th1_getndivisiona :: Ptr RawTH1 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getNdivisionA" c_th1_getndivisiona ::+               Ptr RawTH1 -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_getAxisColorA"-               c_th1_getaxiscolora :: Ptr RawTH1 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getAxisColorA" c_th1_getaxiscolora ::+               Ptr RawTH1 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_getLabelColorA"-               c_th1_getlabelcolora :: Ptr RawTH1 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getLabelColorA" c_th1_getlabelcolora ::+               Ptr RawTH1 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_getLabelFontA"-               c_th1_getlabelfonta :: Ptr RawTH1 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getLabelFontA" c_th1_getlabelfonta ::+               Ptr RawTH1 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_getLabelOffsetA"-               c_th1_getlabeloffseta :: Ptr RawTH1 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getLabelOffsetA" c_th1_getlabeloffseta ::+               Ptr RawTH1 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_getLabelSizeA"-               c_th1_getlabelsizea :: Ptr RawTH1 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getLabelSizeA" c_th1_getlabelsizea ::+               Ptr RawTH1 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_getTitleFontA"-               c_th1_gettitlefonta :: Ptr RawTH1 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getTitleFontA" c_th1_gettitlefonta ::+               Ptr RawTH1 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1.h TH1_getTitleOffsetA"-               c_th1_gettitleoffseta :: Ptr RawTH1 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getTitleOffsetA" c_th1_gettitleoffseta ::+               Ptr RawTH1 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_getTitleSizeA"-               c_th1_gettitlesizea :: Ptr RawTH1 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getTitleSizeA" c_th1_gettitlesizea ::+               Ptr RawTH1 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_getTickLengthA"-               c_th1_getticklengtha :: Ptr RawTH1 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getTickLengthA" c_th1_getticklengtha ::+               Ptr RawTH1 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_GetBarOffset"-               c_th1_getbaroffset :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBarOffset" c_th1_getbaroffset ::+               Ptr RawTH1 -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_GetBarWidth"-               c_th1_getbarwidth :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetBarWidth"+               c_th1_getbarwidth :: Ptr RawTH1 -> IO CFloat -foreign import ccall safe "HROOTHistTH1.h TH1_GetContour"-               c_th1_getcontour :: Ptr RawTH1 -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetContour"+               c_th1_getcontour :: Ptr RawTH1 -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetContourLevel"-               c_th1_getcontourlevel :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetContourLevel" c_th1_getcontourlevel ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetContourLevelPad"-               c_th1_getcontourlevelpad :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetContourLevelPad" c_th1_getcontourlevelpad ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBin" c_th1_getbin-               :: Ptr RawTH1 -> CInt -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetBin"+               c_th1_getbin :: Ptr RawTH1 -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinCenter"-               c_th1_getbincenter :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinCenter" c_th1_getbincenter ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinContent1"-               c_th1_getbincontent1 :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinContent1" c_th1_getbincontent1 ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinContent2"-               c_th1_getbincontent2 :: Ptr RawTH1 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinContent2" c_th1_getbincontent2 ::+               Ptr RawTH1 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinContent3"-               c_th1_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinContent3" c_th1_getbincontent3 ::                Ptr RawTH1 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinError1"-               c_th1_getbinerror1 :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinError1" c_th1_getbinerror1 ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinError2"-               c_th1_getbinerror2 :: Ptr RawTH1 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinError2" c_th1_getbinerror2 ::+               Ptr RawTH1 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinError3"-               c_th1_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinError3" c_th1_getbinerror3 ::                Ptr RawTH1 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinLowEdge"-               c_th1_getbinlowedge :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetBinLowEdge" c_th1_getbinlowedge ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetBinWidth"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetBinWidth"                c_th1_getbinwidth :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetCellContent"-               c_th1_getcellcontent :: Ptr RawTH1 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetCellContent" c_th1_getcellcontent ::+               Ptr RawTH1 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetCellError"-               c_th1_getcellerror :: Ptr RawTH1 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetCellError" c_th1_getcellerror ::+               Ptr RawTH1 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_tH1GetDefaultSumw2"-               c_th1_th1getdefaultsumw2 :: IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetDefaultSumw2" c_th1_th1_getdefaultsumw2+               :: IO CBool -foreign import ccall safe "HROOTHistTH1.h TH1_tH1GetDirectory"-               c_th1_th1getdirectory :: Ptr RawTH1 -> IO (Ptr RawTDirectory)+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetDirectory" c_th1_th1_getdirectory ::+               Ptr RawTH1 -> IO (Ptr RawTDirectory) -foreign import ccall safe "HROOTHistTH1.h TH1_GetEntries"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetEntries"                c_th1_getentries :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetEffectiveEntries"-               c_th1_geteffectiveentries :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetEffectiveEntries" c_th1_geteffectiveentries+               :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetFunction"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetFunction"                c_th1_getfunction :: Ptr RawTH1 -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1.h TH1_GetDimension"-               c_th1_getdimension :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetDimension" c_th1_getdimension ::+               Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetKurtosis"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetKurtosis"                c_th1_getkurtosis :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetLowEdge"-               c_th1_getlowedge :: Ptr RawTH1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetLowEdge"+               c_th1_getlowedge :: Ptr RawTH1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_getMaximumTH1"-               c_th1_getmaximumth1 :: Ptr RawTH1 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getMaximumTH1" c_th1_getmaximumth1 ::+               Ptr RawTH1 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetMaximumBin"-               c_th1_getmaximumbin :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMaximumBin" c_th1_getmaximumbin ::+               Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetMaximumStored"-               c_th1_getmaximumstored :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMaximumStored" c_th1_getmaximumstored ::+               Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_getMinimumTH1"-               c_th1_getminimumth1 :: Ptr RawTH1 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getMinimumTH1" c_th1_getminimumth1 ::+               Ptr RawTH1 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetMinimumBin"-               c_th1_getminimumbin :: Ptr RawTH1 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMinimumBin" c_th1_getminimumbin ::+               Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetMinimumStored"-               c_th1_getminimumstored :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMinimumStored" c_th1_getminimumstored ::+               Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetMean"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetMean"                c_th1_getmean :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetMeanError"-               c_th1_getmeanerror :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetMeanError" c_th1_getmeanerror ::+               Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetNbinsX"                c_th1_getnbinsx :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetNbinsY"                c_th1_getnbinsy :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetNbinsZ"                c_th1_getnbinsz :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_getQuantilesTH1"-               c_th1_getquantilesth1 ::-               Ptr RawTH1 -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_getQuantilesTH1" c_th1_getquantilesth1 ::+               Ptr RawTH1 -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetRandom"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetRandom"                c_th1_getrandom :: Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetStats"-               c_th1_getstats :: Ptr RawTH1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetStats"+               c_th1_getstats :: Ptr RawTH1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_GetSumOfWeights"-               c_th1_getsumofweights :: Ptr RawTH1 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_GetSumOfWeights" c_th1_getsumofweights ::+               Ptr RawTH1 -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetSumw2"                c_th1_getsumw2 :: Ptr RawTH1 -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1.h TH1_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetSumw2N"                c_th1_getsumw2n :: Ptr RawTH1 -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_GetRMS" c_th1_getrms-               :: Ptr RawTH1 -> CInt -> IO CDouble+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetRMS"+               c_th1_getrms :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetRMSError"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetRMSError"                c_th1_getrmserror :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_GetSkewness"+foreign import ccall interruptible "HROOTHistTH1.h TH1_GetSkewness"                c_th1_getskewness :: Ptr RawTH1 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_integral1"-               c_th1_integral1 ::-               Ptr RawTH1 -> CInt -> CInt -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetXaxis" c_th1_th1_getxaxis ::+               Ptr RawTH1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTH1.h TH1_interpolate1"-               c_th1_interpolate1 :: Ptr RawTH1 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetYaxis" c_th1_th1_getyaxis ::+               Ptr RawTH1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTH1.h TH1_interpolate2"-               c_th1_interpolate2 ::-               Ptr RawTH1 -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_GetZaxis" c_th1_th1_getzaxis ::+               Ptr RawTH1 -> IO (Ptr RawTAxis) -foreign import ccall safe "HROOTHistTH1.h TH1_interpolate3"-               c_th1_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_interpolate3" c_th1_interpolate3 ::                Ptr RawTH1 -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_tH1IsBinOverflow"-               c_th1_th1isbinoverflow :: Ptr RawTH1 -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_IsBinOverflow" c_th1_th1_isbinoverflow ::+               Ptr RawTH1 -> CInt -> IO CBool -foreign import ccall safe "HROOTHistTH1.h TH1_tH1IsBinUnderflow"-               c_th1_th1isbinunderflow :: Ptr RawTH1 -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_IsBinUnderflow" c_th1_th1_isbinunderflow ::+               Ptr RawTH1 -> CInt -> IO CBool -foreign import ccall safe "HROOTHistTH1.h TH1_KolmogorovTest"-               c_th1_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_KolmogorovTest" c_th1_kolmogorovtest ::                Ptr RawTH1 -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1.h TH1_LabelsDeflate"-               c_th1_labelsdeflate :: Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_LabelsDeflate" c_th1_labelsdeflate ::+               Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_LabelsInflate"-               c_th1_labelsinflate :: Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_LabelsInflate" c_th1_labelsinflate ::+               Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_LabelsOption"-               c_th1_labelsoption :: Ptr RawTH1 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_LabelsOption" c_th1_labelsoption ::+               Ptr RawTH1 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_multiflyF"+foreign import ccall interruptible "HROOTHistTH1.h TH1_multiflyF"                c_th1_multiflyf :: Ptr RawTH1 -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Multiply"+foreign import ccall interruptible "HROOTHistTH1.h TH1_Multiply"                c_th1_multiply ::                Ptr RawTH1 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_PutStats"-               c_th1_putstats :: Ptr RawTH1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_PutStats"+               c_th1_putstats :: Ptr RawTH1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Rebin" c_th1_rebin ::-               Ptr RawTH1 -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1.h TH1_Rebin"+               c_th1_rebin ::+               Ptr RawTH1 -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1.h TH1_RebinAxis"                c_th1_rebinaxis :: Ptr RawTH1 -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Rebuild"+foreign import ccall interruptible "HROOTHistTH1.h TH1_Rebuild"                c_th1_rebuild :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_RecursiveRemove"-               c_th1_recursiveremove :: Ptr RawTH1 -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_RecursiveRemove" c_th1_recursiveremove ::+               Ptr RawTH1 -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Reset" c_th1_reset ::-               Ptr RawTH1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Reset"+               c_th1_reset :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_ResetStats"+foreign import ccall interruptible "HROOTHistTH1.h TH1_ResetStats"                c_th1_resetstats :: Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Scale" c_th1_scale ::-               Ptr RawTH1 -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Scale"+               c_th1_scale :: Ptr RawTH1 -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setAxisColorA"-               c_th1_setaxiscolora :: Ptr RawTH1 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setAxisColorA" c_th1_setaxiscolora ::+               Ptr RawTH1 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetAxisRange"-               c_th1_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetAxisRange" c_th1_setaxisrange ::                Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetBarOffset"-               c_th1_setbaroffset :: Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetBarOffset" c_th1_setbaroffset ::+               Ptr RawTH1 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetBarWidth"-               c_th1_setbarwidth :: Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetBarWidth"+               c_th1_setbarwidth :: Ptr RawTH1 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinContent1"-               c_th1_setbincontent1 :: Ptr RawTH1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinContent1" c_th1_setbincontent1 ::+               Ptr RawTH1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinContent2"-               c_th1_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinContent2" c_th1_setbincontent2 ::                Ptr RawTH1 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinContent3"-               c_th1_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinContent3" c_th1_setbincontent3 ::                Ptr RawTH1 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinError1"-               c_th1_setbinerror1 :: Ptr RawTH1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinError1" c_th1_setbinerror1 ::+               Ptr RawTH1 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinError2"-               c_th1_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinError2" c_th1_setbinerror2 ::                Ptr RawTH1 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBinError3"-               c_th1_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setBinError3" c_th1_setbinerror3 ::                Ptr RawTH1 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBins1"-               c_th1_setbins1 :: Ptr RawTH1 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_setBins1"+               c_th1_setbins1 :: Ptr RawTH1 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBins2"+foreign import ccall interruptible "HROOTHistTH1.h TH1_setBins2"                c_th1_setbins2 ::-               Ptr RawTH1 ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1 -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setBins3"+foreign import ccall interruptible "HROOTHistTH1.h TH1_setBins3"                c_th1_setbins3 ::                Ptr RawTH1 ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetBinsLength"-               c_th1_setbinslength :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetBinsLength" c_th1_setbinslength ::+               Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetBuffer"                c_th1_setbuffer :: Ptr RawTH1 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetCellContent"-               c_th1_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetCellContent" c_th1_setcellcontent ::                Ptr RawTH1 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetContent"-               c_th1_setcontent :: Ptr RawTH1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetContent"+               c_th1_setcontent :: Ptr RawTH1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetContour"-               c_th1_setcontour :: Ptr RawTH1 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetContour"+               c_th1_setcontour :: Ptr RawTH1 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetContourLevel"-               c_th1_setcontourlevel :: Ptr RawTH1 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetContourLevel" c_th1_setcontourlevel ::+               Ptr RawTH1 -> CInt -> CDouble -> IO () -foreign import ccall safe-               "HROOTHistTH1.h TH1_tH1SetDefaultBufferSize"-               c_th1_th1setdefaultbuffersize :: CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_SetDefaultBufferSize"+               c_th1_th1_setdefaultbuffersize :: CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_tH1SetDefaultSumw2"-               c_th1_th1setdefaultsumw2 :: CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_SetDefaultSumw2" c_th1_th1_setdefaultsumw2+               :: CBool -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetDirectory"-               c_th1_setdirectory :: Ptr RawTH1 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetDirectory" c_th1_setdirectory ::+               Ptr RawTH1 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetEntries"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetEntries"                c_th1_setentries :: Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetError"-               c_th1_seterror :: Ptr RawTH1 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetError"+               c_th1_seterror :: Ptr RawTH1 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setLabelColorA"-               c_th1_setlabelcolora :: Ptr RawTH1 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setLabelColorA" c_th1_setlabelcolora ::+               Ptr RawTH1 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setLabelSizeA"-               c_th1_setlabelsizea :: Ptr RawTH1 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setLabelSizeA" c_th1_setlabelsizea ::+               Ptr RawTH1 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setLabelFontA"-               c_th1_setlabelfonta :: Ptr RawTH1 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setLabelFontA" c_th1_setlabelfonta ::+               Ptr RawTH1 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_setLabelOffsetA"-               c_th1_setlabeloffseta :: Ptr RawTH1 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_setLabelOffsetA" c_th1_setlabeloffseta ::+               Ptr RawTH1 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMaximum"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetMaximum"                c_th1_setmaximum :: Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetMinimum"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetMinimum"                c_th1_setminimum :: Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetNormFactor"-               c_th1_setnormfactor :: Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_SetNormFactor" c_th1_setnormfactor ::+               Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetStats"-               c_th1_setstats :: Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetStats"+               c_th1_setstats :: Ptr RawTH1 -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetOption"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetOption"                c_th1_setoption :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetXTitle"                c_th1_setxtitle :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetYTitle"                c_th1_setytitle :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1.h TH1_SetZTitle"                c_th1_setztitle :: Ptr RawTH1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_ShowBackground"-               c_th1_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_ShowBackground" c_th1_showbackground ::                Ptr RawTH1 -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1.h TH1_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1.h TH1_ShowPeaks"                c_th1_showpeaks ::                Ptr RawTH1 -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1.h TH1_Smooth" c_th1_smooth-               :: Ptr RawTH1 -> CInt -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Smooth"+               c_th1_smooth :: Ptr RawTH1 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_tH1SmoothArray"-               c_th1_th1smootharray :: CInt -> (Ptr CDouble) -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_SmoothArray" c_th1_th1_smootharray ::+               CInt -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_tH1StatOverflows"-               c_th1_th1statoverflows :: CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_StatOverflows" c_th1_th1_statoverflows ::+               CBool -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_Sumw2" c_th1_sumw2 ::-               Ptr RawTH1 -> IO ()+foreign import ccall interruptible "HROOTHistTH1.h TH1_Sumw2"+               c_th1_sumw2 :: Ptr RawTH1 -> IO () -foreign import ccall safe "HROOTHistTH1.h TH1_tH1UseCurrentStyle"-               c_th1_th1usecurrentstyle :: Ptr RawTH1 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1.h TH1_tH1_UseCurrentStyle" c_th1_th1_usecurrentstyle+               :: Ptr RawTH1 -> IO ()
src/HROOT/Hist/TH1/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1.RawType import HROOT.Hist.TH1.FFI import HROOT.Hist.TH1.Interface import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.RawType+import HROOT.Hist.TH1.Cast+import HROOT.Hist.TH1.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface@@ -42,15 +51,14 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITH1 TH1 where+instance () => ITH1 (TH1) where         add = xform2 c_th1_add         addBinContent = xform2 c_th1_addbincontent         chi2Test = xform3 c_th1_chi2test-        computeIntegral = xform0 c_th1_computeintegral         directoryAutoAdd = xform1 c_th1_directoryautoadd         divide = xform5 c_th1_divide         drawCopyTH1 = xform1 c_th1_drawcopyth1@@ -122,9 +130,6 @@         getRMS = xform1 c_th1_getrms         getRMSError = xform1 c_th1_getrmserror         getSkewness = xform1 c_th1_getskewness-        integral1 = xform3 c_th1_integral1-        interpolate1 = xform1 c_th1_interpolate1-        interpolate2 = xform2 c_th1_interpolate2         interpolate3 = xform3 c_th1_interpolate3         kolmogorovTest = xform2 c_th1_kolmogorovtest         labelsDeflate = xform1 c_th1_labelsdeflate@@ -179,12 +184,12 @@         smooth = xform2 c_th1_smooth         sumw2 = xform0 c_th1_sumw2 -instance ITNamed TH1 where+instance () => ITNamed (TH1) where         setName = xform1 c_th1_setname         setNameTitle = xform2 c_th1_setnametitle         setTitle = xform1 c_th1_settitle -instance ITAttLine TH1 where+instance () => ITAttLine (TH1) where         getLineColor = xform0 c_th1_getlinecolor         getLineStyle = xform0 c_th1_getlinestyle         getLineWidth = xform0 c_th1_getlinewidth@@ -194,11 +199,11 @@         setLineStyle = xform1 c_th1_setlinestyle         setLineWidth = xform1 c_th1_setlinewidth -instance ITAttFill TH1 where+instance () => ITAttFill (TH1) where         setFillColor = xform1 c_th1_setfillcolor         setFillStyle = xform1 c_th1_setfillstyle -instance ITAttMarker TH1 where+instance () => ITAttMarker (TH1) where         getMarkerColor = xform0 c_th1_getmarkercolor         getMarkerStyle = xform0 c_th1_getmarkerstyle         getMarkerSize = xform0 c_th1_getmarkersize@@ -208,7 +213,8 @@         setMarkerStyle = xform1 c_th1_setmarkerstyle         setMarkerSize = xform1 c_th1_setmarkersize -instance ITObject TH1 where+instance () => ITObject (TH1) where+        clear = xform1 c_th1_clear         draw = xform1 c_th1_draw         findObject = xform1 c_th1_findobject         getName = xform0 c_th1_getname@@ -217,46 +223,56 @@         printObj = xform1 c_th1_printobj         saveAs = xform2 c_th1_saveas         write = xform3 c_th1_write+        write_ = xform0 c_th1_write_ -instance IDeletable TH1 where+instance () => IDeletable (TH1) where         delete = xform0 c_th1_delete -tH1GetAsymmetry ::-                  (ITH1 c0, FPtr c0) => TH1 -> c0 -> CDouble -> CDouble -> IO TH1-tH1GetAsymmetry = xform3 c_th1_th1getasymmetry+tH1_GetAsymmetry ::+                   (ITH1 c0, FPtr c0) => TH1 -> c0 -> CDouble -> CDouble -> IO TH1+tH1_GetAsymmetry = xform3 c_th1_th1_getasymmetry -tH1GetBufferLength :: TH1 -> IO CInt-tH1GetBufferLength = xform0 c_th1_th1getbufferlength+tH1_GetBufferLength :: () => TH1 -> IO CInt+tH1_GetBufferLength = xform0 c_th1_th1_getbufferlength -tH1GetBufferSize :: TH1 -> IO CInt-tH1GetBufferSize = xform0 c_th1_th1getbuffersize+tH1_GetBufferSize :: () => TH1 -> IO CInt+tH1_GetBufferSize = xform0 c_th1_th1_getbuffersize -tH1GetDirectory :: TH1 -> IO TDirectory-tH1GetDirectory = xform0 c_th1_th1getdirectory+tH1_GetDirectory :: () => TH1 -> IO TDirectory+tH1_GetDirectory = xform0 c_th1_th1_getdirectory -tH1IsBinOverflow :: TH1 -> CInt -> IO CInt-tH1IsBinOverflow = xform1 c_th1_th1isbinoverflow+tH1_GetXaxis :: () => TH1 -> IO TAxis+tH1_GetXaxis = xform0 c_th1_th1_getxaxis -tH1IsBinUnderflow :: TH1 -> CInt -> IO CInt-tH1IsBinUnderflow = xform1 c_th1_th1isbinunderflow+tH1_GetYaxis :: () => TH1 -> IO TAxis+tH1_GetYaxis = xform0 c_th1_th1_getyaxis -tH1UseCurrentStyle :: TH1 -> IO ()-tH1UseCurrentStyle = xform0 c_th1_th1usecurrentstyle+tH1_GetZaxis :: () => TH1 -> IO TAxis+tH1_GetZaxis = xform0 c_th1_th1_getzaxis -tH1GetDefaultBufferSize :: IO CInt-tH1GetDefaultBufferSize = xformnull c_th1_th1getdefaultbuffersize+tH1_IsBinOverflow :: () => TH1 -> CInt -> IO CBool+tH1_IsBinOverflow = xform1 c_th1_th1_isbinoverflow -tH1GetDefaultSumw2 :: IO CInt-tH1GetDefaultSumw2 = xformnull c_th1_th1getdefaultsumw2+tH1_IsBinUnderflow :: () => TH1 -> CInt -> IO CBool+tH1_IsBinUnderflow = xform1 c_th1_th1_isbinunderflow -tH1SetDefaultBufferSize :: CInt -> IO ()-tH1SetDefaultBufferSize = xform0 c_th1_th1setdefaultbuffersize+tH1_UseCurrentStyle :: () => TH1 -> IO ()+tH1_UseCurrentStyle = xform0 c_th1_th1_usecurrentstyle -tH1SetDefaultSumw2 :: CInt -> IO ()-tH1SetDefaultSumw2 = xform0 c_th1_th1setdefaultsumw2+tH1_GetDefaultBufferSize :: () => IO CInt+tH1_GetDefaultBufferSize = xformnull c_th1_th1_getdefaultbuffersize -tH1SmoothArray :: CInt -> (Ptr CDouble) -> CInt -> IO ()-tH1SmoothArray = xform2 c_th1_th1smootharray+tH1_GetDefaultSumw2 :: () => IO CBool+tH1_GetDefaultSumw2 = xformnull c_th1_th1_getdefaultsumw2 -tH1StatOverflows :: CInt -> IO ()-tH1StatOverflows = xform0 c_th1_th1statoverflows+tH1_SetDefaultBufferSize :: () => CInt -> IO ()+tH1_SetDefaultBufferSize = xform0 c_th1_th1_setdefaultbuffersize++tH1_SetDefaultSumw2 :: () => CBool -> IO ()+tH1_SetDefaultSumw2 = xform0 c_th1_th1_setdefaultsumw2++tH1_SmoothArray :: () => CInt -> Ptr CDouble -> CInt -> IO ()+tH1_SmoothArray = xform2 c_th1_th1_smootharray++tH1_StatOverflows :: () => CBool -> IO ()+tH1_StatOverflows = xform0 c_th1_th1_statoverflows
src/HROOT/Hist/TH1/Interface.hs view
@@ -4,11 +4,11 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TH1.RawType-import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType import HROOT.Core.TArrayD.RawType import HROOT.Core.TNamed.Interface@@ -17,20 +17,18 @@ import HROOT.Core.TAttMarker.Interface import HROOT.Core.TDirectory.Interface import HROOT.Core.TObject.Interface-import {-# SOURCE #-} HROOT.Hist.TF1.Interface-import {-# SOURCE #-} HROOT.Hist.TAxis.Interface+import HROOT.Hist.TF1.Interface+import HROOT.Hist.TAxis.Interface -class (ITNamed a, ITAttLine a, ITAttFill a, ITAttMarker a) => ITH1-      a where+class (ITNamed a, ITAttLine a, ITAttFill a, ITAttMarker a) =>+      ITH1 a where         add :: (ITH1 c0, FPtr c0) => a -> c0 -> CDouble -> IO ()         -        addBinContent :: a -> CInt -> CDouble -> IO ()+        addBinContent :: () => a -> CInt -> CDouble -> IO ()                  chi2Test ::                    (Castable c1 CString, ITH1 c0, FPtr c0) =>-                   a -> c0 -> c1 -> (Ptr CDouble) -> IO CDouble-        -        computeIntegral :: a -> IO CDouble+                   a -> c0 -> c1 -> Ptr CDouble -> IO CDouble                  directoryAutoAdd :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO ()         @@ -38,14 +36,14 @@                  (Castable c2 CString, ITH1 c1, FPtr c1, ITH1 c0, FPtr c0) =>                  a -> c0 -> c1 -> CDouble -> CDouble -> c2 -> IO ()         -        drawCopyTH1 :: Castable c0 CString => a -> c0 -> IO a+        drawCopyTH1 :: (Castable c0 CString) => a -> c0 -> IO a                  drawNormalized ::-                         Castable c0 CString => a -> c0 -> CDouble -> IO TH1+                         (Castable c0 CString) => a -> c0 -> CDouble -> IO TH1         -        drawPanelTH1 :: a -> IO ()+        drawPanelTH1 :: () => a -> IO ()         -        bufferEmpty :: a -> CInt -> IO CInt+        bufferEmpty :: () => a -> CInt -> IO CInt                  evalF ::                 (Castable c1 CString, ITF1 c0, FPtr c0) => a -> c0 -> c1 -> IO ()@@ -53,152 +51,146 @@         fFT ::               (Castable c1 CString, ITH1 c0, FPtr c0) => a -> c0 -> c1 -> IO TH1         -        fill1 :: a -> CDouble -> IO CInt+        fill1 :: () => a -> CDouble -> IO CInt         -        fill1w :: a -> CDouble -> CDouble -> IO CInt+        fill1w :: () => a -> CDouble -> CDouble -> IO CInt                  fillN1 ::-                 a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 () => a -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO ()                  fillRandom :: (ITH1 c0, FPtr c0) => a -> c0 -> CInt -> IO ()         -        findBin :: a -> CDouble -> CDouble -> CDouble -> IO CInt+        findBin :: () => a -> CDouble -> CDouble -> CDouble -> IO CInt         -        findFixBin :: a -> CDouble -> CDouble -> CDouble -> IO CInt+        findFixBin :: () => a -> CDouble -> CDouble -> CDouble -> IO CInt         -        findFirstBinAbove :: a -> CDouble -> CInt -> IO CInt+        findFirstBinAbove :: () => a -> CDouble -> CInt -> IO CInt         -        findLastBinAbove :: a -> CDouble -> CInt -> IO CInt+        findLastBinAbove :: () => a -> CDouble -> CInt -> IO CInt                  fit ::               (Castable c2 CString, Castable c1 CString, ITF1 c0, FPtr c0) =>               a -> c0 -> c1 -> c2 -> CDouble -> CDouble -> IO ()         -        fitPanelTH1 :: a -> IO ()+        fitPanelTH1 :: () => a -> IO ()         -        getNdivisionA :: Castable c0 CString => a -> c0 -> IO CInt+        getNdivisionA :: (Castable c0 CString) => a -> c0 -> IO CInt         -        getAxisColorA :: Castable c0 CString => a -> c0 -> IO CInt+        getAxisColorA :: (Castable c0 CString) => a -> c0 -> IO CShort         -        getLabelColorA :: Castable c0 CString => a -> c0 -> IO CInt+        getLabelColorA :: (Castable c0 CString) => a -> c0 -> IO CShort         -        getLabelFontA :: Castable c0 CString => a -> c0 -> IO CInt+        getLabelFontA :: (Castable c0 CString) => a -> c0 -> IO CShort         -        getLabelOffsetA :: Castable c0 CString => a -> c0 -> IO CDouble+        getLabelOffsetA :: (Castable c0 CString) => a -> c0 -> IO CFloat         -        getLabelSizeA :: Castable c0 CString => a -> c0 -> IO CDouble+        getLabelSizeA :: (Castable c0 CString) => a -> c0 -> IO CFloat         -        getTitleFontA :: Castable c0 CString => a -> c0 -> IO CInt+        getTitleFontA :: (Castable c0 CString) => a -> c0 -> IO CShort         -        getTitleOffsetA :: Castable c0 CString => a -> c0 -> IO CDouble+        getTitleOffsetA :: (Castable c0 CString) => a -> c0 -> IO CFloat         -        getTitleSizeA :: Castable c0 CString => a -> c0 -> IO CDouble+        getTitleSizeA :: (Castable c0 CString) => a -> c0 -> IO CFloat         -        getTickLengthA :: Castable c0 CString => a -> c0 -> IO CDouble+        getTickLengthA :: (Castable c0 CString) => a -> c0 -> IO CFloat         -        getBarOffset :: a -> IO CDouble+        getBarOffset :: () => a -> IO CFloat         -        getBarWidth :: a -> IO CDouble+        getBarWidth :: () => a -> IO CFloat         -        getContour :: a -> (Ptr CDouble) -> IO CInt+        getContour :: () => a -> Ptr CDouble -> IO CInt         -        getContourLevel :: a -> CInt -> IO CDouble+        getContourLevel :: () => a -> CInt -> IO CDouble         -        getContourLevelPad :: a -> CInt -> IO CDouble+        getContourLevelPad :: () => a -> CInt -> IO CDouble         -        getBin :: a -> CInt -> CInt -> CInt -> IO CInt+        getBin :: () => a -> CInt -> CInt -> CInt -> IO CInt         -        getBinCenter :: a -> CInt -> IO CDouble+        getBinCenter :: () => a -> CInt -> IO CDouble         -        getBinContent1 :: a -> CInt -> IO CDouble+        getBinContent1 :: () => a -> CInt -> IO CDouble         -        getBinContent2 :: a -> CInt -> CInt -> IO CDouble+        getBinContent2 :: () => a -> CInt -> CInt -> IO CDouble         -        getBinContent3 :: a -> CInt -> CInt -> CInt -> IO CDouble+        getBinContent3 :: () => a -> CInt -> CInt -> CInt -> IO CDouble         -        getBinError1 :: a -> CInt -> IO CDouble+        getBinError1 :: () => a -> CInt -> IO CDouble         -        getBinError2 :: a -> CInt -> CInt -> IO CDouble+        getBinError2 :: () => a -> CInt -> CInt -> IO CDouble         -        getBinError3 :: a -> CInt -> CInt -> CInt -> IO CDouble+        getBinError3 :: () => a -> CInt -> CInt -> CInt -> IO CDouble         -        getBinLowEdge :: a -> CInt -> IO CDouble+        getBinLowEdge :: () => a -> CInt -> IO CDouble         -        getBinWidth :: a -> CInt -> IO CDouble+        getBinWidth :: () => a -> CInt -> IO CDouble         -        getCellContent :: a -> CInt -> CInt -> IO CDouble+        getCellContent :: () => a -> CInt -> CInt -> IO CDouble         -        getCellError :: a -> CInt -> CInt -> IO CDouble+        getCellError :: () => a -> CInt -> CInt -> IO CDouble         -        getEntries :: a -> IO CDouble+        getEntries :: () => a -> IO CDouble         -        getEffectiveEntries :: a -> IO CDouble+        getEffectiveEntries :: () => a -> IO CDouble         -        getFunction :: Castable c0 CString => a -> c0 -> IO TF1+        getFunction :: (Castable c0 CString) => a -> c0 -> IO TF1         -        getDimension :: a -> IO CInt+        getDimension :: () => a -> IO CInt         -        getKurtosis :: a -> CInt -> IO CDouble+        getKurtosis :: () => a -> CInt -> IO CDouble         -        getLowEdge :: a -> (Ptr CDouble) -> IO ()+        getLowEdge :: () => a -> Ptr CDouble -> IO ()         -        getMaximumTH1 :: a -> CDouble -> IO CDouble+        getMaximumTH1 :: () => a -> CDouble -> IO CDouble         -        getMaximumBin :: a -> IO CInt+        getMaximumBin :: () => a -> IO CInt         -        getMaximumStored :: a -> IO CDouble+        getMaximumStored :: () => a -> IO CDouble         -        getMinimumTH1 :: a -> CDouble -> IO CDouble+        getMinimumTH1 :: () => a -> CDouble -> IO CDouble         -        getMinimumBin :: a -> IO CInt+        getMinimumBin :: () => a -> IO CInt         -        getMinimumStored :: a -> IO CDouble+        getMinimumStored :: () => a -> IO CDouble         -        getMean :: a -> CInt -> IO CDouble+        getMean :: () => a -> CInt -> IO CDouble         -        getMeanError :: a -> CInt -> IO CDouble+        getMeanError :: () => a -> CInt -> IO CDouble         -        getNbinsX :: a -> IO CDouble+        getNbinsX :: () => a -> IO CDouble         -        getNbinsY :: a -> IO CDouble+        getNbinsY :: () => a -> IO CDouble         -        getNbinsZ :: a -> IO CDouble+        getNbinsZ :: () => a -> IO CDouble                  getQuantilesTH1 ::-                          a -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt-        -        getRandom :: a -> IO CDouble-        -        getStats :: a -> (Ptr CDouble) -> IO ()-        -        getSumOfWeights :: a -> IO CDouble+                          () => a -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt         -        getSumw2 :: a -> IO TArrayD+        getRandom :: () => a -> IO CDouble         -        getSumw2N :: a -> IO CInt+        getStats :: () => a -> Ptr CDouble -> IO ()         -        getRMS :: a -> CInt -> IO CDouble+        getSumOfWeights :: () => a -> IO CDouble         -        getRMSError :: a -> CInt -> IO CDouble+        getSumw2 :: () => a -> IO TArrayD         -        getSkewness :: a -> CInt -> IO CDouble+        getSumw2N :: () => a -> IO CInt         -        integral1 ::-                    Castable c0 CString => a -> CInt -> CInt -> c0 -> IO CDouble+        getRMS :: () => a -> CInt -> IO CDouble         -        interpolate1 :: a -> CDouble -> IO CDouble+        getRMSError :: () => a -> CInt -> IO CDouble         -        interpolate2 :: a -> CDouble -> CDouble -> IO CDouble+        getSkewness :: () => a -> CInt -> IO CDouble         -        interpolate3 :: a -> CDouble -> CDouble -> CDouble -> IO CDouble+        interpolate3 ::+                       () => a -> CDouble -> CDouble -> CDouble -> IO CDouble                  kolmogorovTest ::                          (Castable c1 CString, ITH1 c0, FPtr c0) =>                          a -> c0 -> c1 -> IO CDouble         -        labelsDeflate :: Castable c0 CString => a -> c0 -> IO ()+        labelsDeflate :: (Castable c0 CString) => a -> c0 -> IO ()         -        labelsInflate :: Castable c0 CString => a -> c0 -> IO ()+        labelsInflate :: (Castable c0 CString) => a -> c0 -> IO ()                  labelsOption ::                        (Castable c1 CString, Castable c0 CString) =>@@ -210,106 +202,112 @@                    (Castable c2 CString, ITH1 c1, FPtr c1, ITH1 c0, FPtr c0) =>                    a -> c0 -> c1 -> CDouble -> CDouble -> c2 -> IO ()         -        putStats :: a -> (Ptr CDouble) -> IO ()+        putStats :: () => a -> Ptr CDouble -> IO ()                  rebin ::-                Castable c0 CString => a -> CInt -> c0 -> (Ptr CDouble) -> IO TH1+                (Castable c0 CString) => a -> CInt -> c0 -> Ptr CDouble -> IO TH1                  rebinAxis :: (ITAxis c0, FPtr c0) => a -> CDouble -> c0 -> IO ()         -        rebuild :: Castable c0 CString => a -> c0 -> IO ()+        rebuild :: (Castable c0 CString) => a -> c0 -> IO ()                  recursiveRemove :: (ITObject c0, FPtr c0) => a -> c0 -> IO ()         -        reset :: Castable c0 CString => a -> c0 -> IO ()+        reset :: (Castable c0 CString) => a -> c0 -> IO ()         -        resetStats :: a -> IO ()+        resetStats :: () => a -> IO ()         -        scale :: Castable c0 CString => a -> CDouble -> c0 -> IO ()+        scale :: (Castable c0 CString) => a -> CDouble -> c0 -> IO ()         -        setAxisColorA :: Castable c0 CString => a -> CInt -> c0 -> IO ()+        setAxisColorA ::+                        (Castable c0 CString) => a -> CShort -> c0 -> IO ()                  setAxisRange ::-                       Castable c0 CString => a -> CDouble -> CDouble -> c0 -> IO ()+                       (Castable c0 CString) => a -> CDouble -> CDouble -> c0 -> IO ()         -        setBarOffset :: a -> CDouble -> IO ()+        setBarOffset :: () => a -> CFloat -> IO ()         -        setBarWidth :: a -> CDouble -> IO ()+        setBarWidth :: () => a -> CFloat -> IO ()         -        setBinContent1 :: a -> CInt -> CDouble -> IO ()+        setBinContent1 :: () => a -> CInt -> CDouble -> IO ()         -        setBinContent2 :: a -> CInt -> CInt -> CDouble -> IO ()+        setBinContent2 :: () => a -> CInt -> CInt -> CDouble -> IO ()         -        setBinContent3 :: a -> CInt -> CInt -> CInt -> CDouble -> IO ()+        setBinContent3 ::+                         () => a -> CInt -> CInt -> CInt -> CDouble -> IO ()         -        setBinError1 :: a -> CInt -> CDouble -> IO ()+        setBinError1 :: () => a -> CInt -> CDouble -> IO ()         -        setBinError2 :: a -> CInt -> CInt -> CDouble -> IO ()+        setBinError2 :: () => a -> CInt -> CInt -> CDouble -> IO ()         -        setBinError3 :: a -> CInt -> CInt -> CInt -> CDouble -> IO ()+        setBinError3 :: () => a -> CInt -> CInt -> CInt -> CDouble -> IO ()         -        setBins1 :: a -> CInt -> (Ptr CDouble) -> IO ()+        setBins1 :: () => a -> CInt -> Ptr CDouble -> IO ()                  setBins2 ::-                   a -> CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   () => a -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO ()                  setBins3 ::+                   () =>                    a ->                      CInt ->-                       (Ptr CDouble) ->-                         CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                       Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO ()         -        setBinsLength :: a -> CInt -> IO ()+        setBinsLength :: () => a -> CInt -> IO ()         -        setBuffer :: Castable c0 CString => a -> CInt -> c0 -> IO ()+        setBuffer :: (Castable c0 CString) => a -> CInt -> c0 -> IO ()         -        setCellContent :: a -> CInt -> CInt -> CDouble -> IO ()+        setCellContent :: () => a -> CInt -> CInt -> CDouble -> IO ()         -        setContent :: a -> (Ptr CDouble) -> IO ()+        setContent :: () => a -> Ptr CDouble -> IO ()         -        setContour :: a -> CInt -> (Ptr CDouble) -> IO ()+        setContour :: () => a -> CInt -> Ptr CDouble -> IO ()         -        setContourLevel :: a -> CInt -> CDouble -> IO ()+        setContourLevel :: () => a -> CInt -> CDouble -> IO ()                  setDirectory :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO ()         -        setEntries :: a -> CDouble -> IO ()+        setEntries :: () => a -> CDouble -> IO ()         -        setError :: a -> (Ptr CDouble) -> IO ()+        setError :: () => a -> Ptr CDouble -> IO ()         -        setLabelColorA :: Castable c0 CString => a -> CInt -> c0 -> IO ()+        setLabelColorA ::+                         (Castable c0 CString) => a -> CShort -> c0 -> IO ()         -        setLabelSizeA :: Castable c0 CString => a -> CDouble -> c0 -> IO ()+        setLabelSizeA ::+                        (Castable c0 CString) => a -> CFloat -> c0 -> IO ()         -        setLabelFontA :: Castable c0 CString => a -> CInt -> c0 -> IO ()+        setLabelFontA ::+                        (Castable c0 CString) => a -> CShort -> c0 -> IO ()                  setLabelOffsetA ::-                          Castable c0 CString => a -> CDouble -> c0 -> IO ()+                          (Castable c0 CString) => a -> CFloat -> c0 -> IO ()         -        setMaximum :: a -> CDouble -> IO ()+        setMaximum :: () => a -> CDouble -> IO ()         -        setMinimum :: a -> CDouble -> IO ()+        setMinimum :: () => a -> CDouble -> IO ()         -        setNormFactor :: a -> CDouble -> IO ()+        setNormFactor :: () => a -> CDouble -> IO ()         -        setStats :: a -> CInt -> IO ()+        setStats :: () => a -> CBool -> IO ()         -        setOption :: Castable c0 CString => a -> c0 -> IO ()+        setOption :: (Castable c0 CString) => a -> c0 -> IO ()         -        setXTitle :: Castable c0 CString => a -> c0 -> IO ()+        setXTitle :: (Castable c0 CString) => a -> c0 -> IO ()         -        setYTitle :: Castable c0 CString => a -> c0 -> IO ()+        setYTitle :: (Castable c0 CString) => a -> c0 -> IO ()         -        setZTitle :: Castable c0 CString => a -> c0 -> IO ()+        setZTitle :: (Castable c0 CString) => a -> c0 -> IO ()         -        showBackground :: Castable c0 CString => a -> CInt -> c0 -> IO TH1+        showBackground ::+                         (Castable c0 CString) => a -> CInt -> c0 -> IO TH1                  showPeaks ::-                    Castable c0 CString => a -> CDouble -> c0 -> CDouble -> IO CInt+                    (Castable c0 CString) => a -> CDouble -> c0 -> CDouble -> IO CInt         -        smooth :: Castable c0 CString => a -> CInt -> c0 -> IO ()+        smooth :: (Castable c0 CString) => a -> CInt -> c0 -> IO ()         -        sumw2 :: a -> IO ()+        sumw2 :: () => a -> IO ()  upcastTH1 :: forall a . (FPtr a, ITH1 a) => a -> TH1 upcastTH1 h
src/HROOT/Hist/TH1/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1  newtype TH1 = TH1 (Ptr RawTH1)-            deriving (Eq, Ord, Show)+                deriving (Eq, Ord, Show) -instance FPtr TH1 where+instance () => FPtr (TH1) where         type Raw TH1 = RawTH1         get_fptr (TH1 ptr) = ptr         cast_fptr_to_obj = TH1
src/HROOT/Hist/TH1C/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1C.RawType import HROOT.Hist.TH1C.Interface -instance (ITH1C a, FPtr a) => Castable a (Ptr RawTH1C) where+instance (ITH1C a, FPtr a) => Castable (a) (Ptr RawTH1C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1C (Ptr RawTH1C) where+instance () => Castable (TH1C) (Ptr RawTH1C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1C/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1C.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1C.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,524 +14,610 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1C.h TH1C_Add" c_th1c_add ::-               Ptr RawTH1C -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Add"+               c_th1c_add :: Ptr RawTH1C -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_AddBinContent"-               c_th1c_addbincontent :: Ptr RawTH1C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_AddBinContent" c_th1c_addbincontent ::+               Ptr RawTH1C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Chi2Test"                c_th1c_chi2test ::-               Ptr RawTH1C -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1C.h TH1C_ComputeIntegral"-               c_th1c_computeintegral :: Ptr RawTH1C -> IO CDouble+               Ptr RawTH1C -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_DirectoryAutoAdd"-               c_th1c_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_DirectoryAutoAdd" c_th1c_directoryautoadd ::                Ptr RawTH1C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Divide"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Divide"                c_th1c_divide ::                Ptr RawTH1C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_drawCopyTH1"-               c_th1c_drawcopyth1 :: Ptr RawTH1C -> CString -> IO (Ptr RawTH1C)+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_drawCopyTH1" c_th1c_drawcopyth1 ::+               Ptr RawTH1C -> CString -> IO (Ptr RawTH1C) -foreign import ccall safe "HROOTHistTH1C.h TH1C_DrawNormalized"-               c_th1c_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_DrawNormalized" c_th1c_drawnormalized ::                Ptr RawTH1C -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1C.h TH1C_drawPanelTH1"-               c_th1c_drawpanelth1 :: Ptr RawTH1C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_drawPanelTH1" c_th1c_drawpanelth1 ::+               Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_BufferEmpty"-               c_th1c_bufferempty :: Ptr RawTH1C -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_BufferEmpty" c_th1c_bufferempty ::+               Ptr RawTH1C -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_evalF" c_th1c_evalf-               :: Ptr RawTH1C -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_evalF"+               c_th1c_evalf :: Ptr RawTH1C -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_FFT" c_th1c_fft ::+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_FFT"+               c_th1c_fft ::                Ptr RawTH1C -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1C.h TH1C_fill1" c_th1c_fill1-               :: Ptr RawTH1C -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_fill1"+               c_th1c_fill1 :: Ptr RawTH1C -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_fill1w"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_fill1w"                c_th1c_fill1w :: Ptr RawTH1C -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_fillN1"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_fillN1"                c_th1c_filln1 ::-               Ptr RawTH1C ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1C -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_FillRandom"-               c_th1c_fillrandom :: Ptr RawTH1C -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FillRandom" c_th1c_fillrandom ::+               Ptr RawTH1C -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_FindBin"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_FindBin"                c_th1c_findbin ::                Ptr RawTH1C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_FindFixBin"-               c_th1c_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FindFixBin" c_th1c_findfixbin ::                Ptr RawTH1C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_FindFirstBinAbove"-               c_th1c_findfirstbinabove ::-               Ptr RawTH1C -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FindFirstBinAbove" c_th1c_findfirstbinabove+               :: Ptr RawTH1C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_FindLastBinAbove"-               c_th1c_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FindLastBinAbove" c_th1c_findlastbinabove ::                Ptr RawTH1C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_Fit" c_th1c_fit ::+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Fit"+               c_th1c_fit ::                Ptr RawTH1C ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_FitPanelTH1"-               c_th1c_fitpanelth1 :: Ptr RawTH1C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FitPanelTH1" c_th1c_fitpanelth1 ::+               Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_getNdivisionA"-               c_th1c_getndivisiona :: Ptr RawTH1C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getNdivisionA" c_th1c_getndivisiona ::+               Ptr RawTH1C -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_getAxisColorA"-               c_th1c_getaxiscolora :: Ptr RawTH1C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getAxisColorA" c_th1c_getaxiscolora ::+               Ptr RawTH1C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_getLabelColorA"-               c_th1c_getlabelcolora :: Ptr RawTH1C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getLabelColorA" c_th1c_getlabelcolora ::+               Ptr RawTH1C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_getLabelFontA"-               c_th1c_getlabelfonta :: Ptr RawTH1C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getLabelFontA" c_th1c_getlabelfonta ::+               Ptr RawTH1C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_getLabelOffsetA"-               c_th1c_getlabeloffseta :: Ptr RawTH1C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getLabelOffsetA" c_th1c_getlabeloffseta ::+               Ptr RawTH1C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_getLabelSizeA"-               c_th1c_getlabelsizea :: Ptr RawTH1C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getLabelSizeA" c_th1c_getlabelsizea ::+               Ptr RawTH1C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_getTitleFontA"-               c_th1c_gettitlefonta :: Ptr RawTH1C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getTitleFontA" c_th1c_gettitlefonta ::+               Ptr RawTH1C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_getTitleOffsetA"-               c_th1c_gettitleoffseta :: Ptr RawTH1C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getTitleOffsetA" c_th1c_gettitleoffseta ::+               Ptr RawTH1C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_getTitleSizeA"-               c_th1c_gettitlesizea :: Ptr RawTH1C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getTitleSizeA" c_th1c_gettitlesizea ::+               Ptr RawTH1C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_getTickLengthA"-               c_th1c_getticklengtha :: Ptr RawTH1C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getTickLengthA" c_th1c_getticklengtha ::+               Ptr RawTH1C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBarOffset"-               c_th1c_getbaroffset :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBarOffset" c_th1c_getbaroffset ::+               Ptr RawTH1C -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBarWidth"-               c_th1c_getbarwidth :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBarWidth" c_th1c_getbarwidth ::+               Ptr RawTH1C -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetContour"-               c_th1c_getcontour :: Ptr RawTH1C -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetContour" c_th1c_getcontour ::+               Ptr RawTH1C -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetContourLevel"-               c_th1c_getcontourlevel :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetContourLevel" c_th1c_getcontourlevel ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetContourLevelPad"-               c_th1c_getcontourlevelpad :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetContourLevelPad" c_th1c_getcontourlevelpad+               :: Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBin"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetBin"                c_th1c_getbin :: Ptr RawTH1C -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinCenter"-               c_th1c_getbincenter :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinCenter" c_th1c_getbincenter ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinContent1"-               c_th1c_getbincontent1 :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinContent1" c_th1c_getbincontent1 ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinContent2"-               c_th1c_getbincontent2 :: Ptr RawTH1C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinContent2" c_th1c_getbincontent2 ::+               Ptr RawTH1C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinContent3"-               c_th1c_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinContent3" c_th1c_getbincontent3 ::                Ptr RawTH1C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinError1"-               c_th1c_getbinerror1 :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinError1" c_th1c_getbinerror1 ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinError2"-               c_th1c_getbinerror2 :: Ptr RawTH1C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinError2" c_th1c_getbinerror2 ::+               Ptr RawTH1C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinError3"-               c_th1c_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinError3" c_th1c_getbinerror3 ::                Ptr RawTH1C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinLowEdge"-               c_th1c_getbinlowedge :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinLowEdge" c_th1c_getbinlowedge ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetBinWidth"-               c_th1c_getbinwidth :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetBinWidth" c_th1c_getbinwidth ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetCellContent"-               c_th1c_getcellcontent :: Ptr RawTH1C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetCellContent" c_th1c_getcellcontent ::+               Ptr RawTH1C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetCellError"-               c_th1c_getcellerror :: Ptr RawTH1C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetCellError" c_th1c_getcellerror ::+               Ptr RawTH1C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetEntries"-               c_th1c_getentries :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetEntries" c_th1c_getentries ::+               Ptr RawTH1C -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1C.h TH1C_GetEffectiveEntries"                c_th1c_geteffectiveentries :: Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetFunction"-               c_th1c_getfunction :: Ptr RawTH1C -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetFunction" c_th1c_getfunction ::+               Ptr RawTH1C -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetDimension"-               c_th1c_getdimension :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetDimension" c_th1c_getdimension ::+               Ptr RawTH1C -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetKurtosis"-               c_th1c_getkurtosis :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetKurtosis" c_th1c_getkurtosis ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetLowEdge"-               c_th1c_getlowedge :: Ptr RawTH1C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetLowEdge" c_th1c_getlowedge ::+               Ptr RawTH1C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_getMaximumTH1"-               c_th1c_getmaximumth1 :: Ptr RawTH1C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getMaximumTH1" c_th1c_getmaximumth1 ::+               Ptr RawTH1C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMaximumBin"-               c_th1c_getmaximumbin :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMaximumBin" c_th1c_getmaximumbin ::+               Ptr RawTH1C -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMaximumStored"-               c_th1c_getmaximumstored :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMaximumStored" c_th1c_getmaximumstored ::+               Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_getMinimumTH1"-               c_th1c_getminimumth1 :: Ptr RawTH1C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getMinimumTH1" c_th1c_getminimumth1 ::+               Ptr RawTH1C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMinimumBin"-               c_th1c_getminimumbin :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMinimumBin" c_th1c_getminimumbin ::+               Ptr RawTH1C -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMinimumStored"-               c_th1c_getminimumstored :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMinimumStored" c_th1c_getminimumstored ::+               Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMean"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetMean"                c_th1c_getmean :: Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMeanError"-               c_th1c_getmeanerror :: Ptr RawTH1C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMeanError" c_th1c_getmeanerror ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetNbinsX"                c_th1c_getnbinsx :: Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetNbinsY"                c_th1c_getnbinsy :: Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetNbinsZ"                c_th1c_getnbinsz :: Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_getQuantilesTH1"-               c_th1c_getquantilesth1 ::-               Ptr RawTH1C -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_getQuantilesTH1" c_th1c_getquantilesth1 ::+               Ptr RawTH1C -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetRandom"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetRandom"                c_th1c_getrandom :: Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetStats"-               c_th1c_getstats :: Ptr RawTH1C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetStats"+               c_th1c_getstats :: Ptr RawTH1C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetSumOfWeights"-               c_th1c_getsumofweights :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetSumOfWeights" c_th1c_getsumofweights ::+               Ptr RawTH1C -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetSumw2"                c_th1c_getsumw2 :: Ptr RawTH1C -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetSumw2N"                c_th1c_getsumw2n :: Ptr RawTH1C -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetRMS"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetRMS"                c_th1c_getrms :: Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetRMSError"-               c_th1c_getrmserror :: Ptr RawTH1C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1C.h TH1C_GetSkewness"-               c_th1c_getskewness :: Ptr RawTH1C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1C.h TH1C_integral1"-               c_th1c_integral1 ::-               Ptr RawTH1C -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1C.h TH1C_interpolate1"-               c_th1c_interpolate1 :: Ptr RawTH1C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetRMSError" c_th1c_getrmserror ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_interpolate2"-               c_th1c_interpolate2 ::-               Ptr RawTH1C -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetSkewness" c_th1c_getskewness ::+               Ptr RawTH1C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_interpolate3"-               c_th1c_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_interpolate3" c_th1c_interpolate3 ::                Ptr RawTH1C -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_KolmogorovTest"-               c_th1c_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_KolmogorovTest" c_th1c_kolmogorovtest ::                Ptr RawTH1C -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1C.h TH1C_LabelsDeflate"-               c_th1c_labelsdeflate :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_LabelsDeflate" c_th1c_labelsdeflate ::+               Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_LabelsInflate"-               c_th1c_labelsinflate :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_LabelsInflate" c_th1c_labelsinflate ::+               Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_LabelsOption"-               c_th1c_labelsoption :: Ptr RawTH1C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_LabelsOption" c_th1c_labelsoption ::+               Ptr RawTH1C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_multiflyF"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_multiflyF"                c_th1c_multiflyf :: Ptr RawTH1C -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Multiply"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Multiply"                c_th1c_multiply ::                Ptr RawTH1C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_PutStats"-               c_th1c_putstats :: Ptr RawTH1C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_PutStats"+               c_th1c_putstats :: Ptr RawTH1C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Rebin" c_th1c_rebin-               ::-               Ptr RawTH1C -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Rebin"+               c_th1c_rebin ::+               Ptr RawTH1C -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1C.h TH1C_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_RebinAxis"                c_th1c_rebinaxis :: Ptr RawTH1C -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Rebuild"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Rebuild"                c_th1c_rebuild :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_RecursiveRemove"-               c_th1c_recursiveremove :: Ptr RawTH1C -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_RecursiveRemove" c_th1c_recursiveremove ::+               Ptr RawTH1C -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Reset" c_th1c_reset-               :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Reset"+               c_th1c_reset :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_ResetStats"-               c_th1c_resetstats :: Ptr RawTH1C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_ResetStats" c_th1c_resetstats ::+               Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Scale" c_th1c_scale-               :: Ptr RawTH1C -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Scale"+               c_th1c_scale :: Ptr RawTH1C -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setAxisColorA"-               c_th1c_setaxiscolora :: Ptr RawTH1C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setAxisColorA" c_th1c_setaxiscolora ::+               Ptr RawTH1C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetAxisRange"-               c_th1c_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetAxisRange" c_th1c_setaxisrange ::                Ptr RawTH1C -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetBarOffset"-               c_th1c_setbaroffset :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetBarOffset" c_th1c_setbaroffset ::+               Ptr RawTH1C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetBarWidth"-               c_th1c_setbarwidth :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetBarWidth" c_th1c_setbarwidth ::+               Ptr RawTH1C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinContent1"-               c_th1c_setbincontent1 :: Ptr RawTH1C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinContent1" c_th1c_setbincontent1 ::+               Ptr RawTH1C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinContent2"-               c_th1c_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinContent2" c_th1c_setbincontent2 ::                Ptr RawTH1C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinContent3"-               c_th1c_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinContent3" c_th1c_setbincontent3 ::                Ptr RawTH1C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinError1"-               c_th1c_setbinerror1 :: Ptr RawTH1C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinError1" c_th1c_setbinerror1 ::+               Ptr RawTH1C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinError2"-               c_th1c_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinError2" c_th1c_setbinerror2 ::                Ptr RawTH1C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBinError3"-               c_th1c_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setBinError3" c_th1c_setbinerror3 ::                Ptr RawTH1C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBins1"-               c_th1c_setbins1 :: Ptr RawTH1C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_setBins1"+               c_th1c_setbins1 :: Ptr RawTH1C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBins2"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_setBins2"                c_th1c_setbins2 ::-               Ptr RawTH1C ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1C -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setBins3"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_setBins3"                c_th1c_setbins3 ::                Ptr RawTH1C ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetBinsLength"-               c_th1c_setbinslength :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetBinsLength" c_th1c_setbinslength ::+               Ptr RawTH1C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetBuffer"                c_th1c_setbuffer :: Ptr RawTH1C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetCellContent"-               c_th1c_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetCellContent" c_th1c_setcellcontent ::                Ptr RawTH1C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetContent"-               c_th1c_setcontent :: Ptr RawTH1C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetContent" c_th1c_setcontent ::+               Ptr RawTH1C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetContour"-               c_th1c_setcontour :: Ptr RawTH1C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetContour" c_th1c_setcontour ::+               Ptr RawTH1C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetContourLevel"-               c_th1c_setcontourlevel :: Ptr RawTH1C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetContourLevel" c_th1c_setcontourlevel ::+               Ptr RawTH1C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetDirectory"-               c_th1c_setdirectory :: Ptr RawTH1C -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetDirectory" c_th1c_setdirectory ::+               Ptr RawTH1C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetEntries"-               c_th1c_setentries :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetEntries" c_th1c_setentries ::+               Ptr RawTH1C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetError"-               c_th1c_seterror :: Ptr RawTH1C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetError"+               c_th1c_seterror :: Ptr RawTH1C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setLabelColorA"-               c_th1c_setlabelcolora :: Ptr RawTH1C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setLabelColorA" c_th1c_setlabelcolora ::+               Ptr RawTH1C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setLabelSizeA"-               c_th1c_setlabelsizea :: Ptr RawTH1C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setLabelSizeA" c_th1c_setlabelsizea ::+               Ptr RawTH1C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setLabelFontA"-               c_th1c_setlabelfonta :: Ptr RawTH1C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setLabelFontA" c_th1c_setlabelfonta ::+               Ptr RawTH1C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_setLabelOffsetA"-               c_th1c_setlabeloffseta ::-               Ptr RawTH1C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_setLabelOffsetA" c_th1c_setlabeloffseta ::+               Ptr RawTH1C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetMaximum"-               c_th1c_setmaximum :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetMaximum" c_th1c_setmaximum ::+               Ptr RawTH1C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetMinimum"-               c_th1c_setminimum :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetMinimum" c_th1c_setminimum ::+               Ptr RawTH1C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetNormFactor"-               c_th1c_setnormfactor :: Ptr RawTH1C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetNormFactor" c_th1c_setnormfactor ::+               Ptr RawTH1C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetStats"-               c_th1c_setstats :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetStats"+               c_th1c_setstats :: Ptr RawTH1C -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetOption"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetOption"                c_th1c_setoption :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetXTitle"                c_th1c_setxtitle :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetYTitle"                c_th1c_setytitle :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetZTitle"                c_th1c_setztitle :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_ShowBackground"-               c_th1c_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_ShowBackground" c_th1c_showbackground ::                Ptr RawTH1C -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1C.h TH1C_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_ShowPeaks"                c_th1c_showpeaks ::                Ptr RawTH1C -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_Smooth"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Smooth"                c_th1c_smooth :: Ptr RawTH1C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Sumw2" c_th1c_sumw2-               :: Ptr RawTH1C -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Sumw2"+               c_th1c_sumw2 :: Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetName"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetName"                c_th1c_setname :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetNameTitle"-               c_th1c_setnametitle :: Ptr RawTH1C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetNameTitle" c_th1c_setnametitle ::+               Ptr RawTH1C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetTitle"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetTitle"                c_th1c_settitle :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetLineColor"-               c_th1c_getlinecolor :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetLineColor" c_th1c_getlinecolor ::+               Ptr RawTH1C -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetLineStyle"-               c_th1c_getlinestyle :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetLineStyle" c_th1c_getlinestyle ::+               Ptr RawTH1C -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetLineWidth"-               c_th1c_getlinewidth :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetLineWidth" c_th1c_getlinewidth ::+               Ptr RawTH1C -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_ResetAttLine"-               c_th1c_resetattline :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_ResetAttLine" c_th1c_resetattline ::+               Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetLineAttributes"-               c_th1c_setlineattributes :: Ptr RawTH1C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetLineAttributes" c_th1c_setlineattributes+               :: Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetLineColor"-               c_th1c_setlinecolor :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetLineColor" c_th1c_setlinecolor ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetLineStyle"-               c_th1c_setlinestyle :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetLineStyle" c_th1c_setlinestyle ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetLineWidth"-               c_th1c_setlinewidth :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetLineWidth" c_th1c_setlinewidth ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetFillColor"-               c_th1c_setfillcolor :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetFillColor" c_th1c_setfillcolor ::+               Ptr RawTH1C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetFillStyle"-               c_th1c_setfillstyle :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetFillStyle" c_th1c_setfillstyle ::+               Ptr RawTH1C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMarkerColor"-               c_th1c_getmarkercolor :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMarkerColor" c_th1c_getmarkercolor ::+               Ptr RawTH1C -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMarkerStyle"-               c_th1c_getmarkerstyle :: Ptr RawTH1C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMarkerStyle" c_th1c_getmarkerstyle ::+               Ptr RawTH1C -> IO CShort -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetMarkerSize"-               c_th1c_getmarkersize :: Ptr RawTH1C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_GetMarkerSize" c_th1c_getmarkersize ::+               Ptr RawTH1C -> IO CFloat -foreign import ccall safe "HROOTHistTH1C.h TH1C_ResetAttMarker"-               c_th1c_resetattmarker :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_ResetAttMarker" c_th1c_resetattmarker ::+               Ptr RawTH1C -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1C.h TH1C_SetMarkerAttributes"                c_th1c_setmarkerattributes :: Ptr RawTH1C -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetMarkerColor"-               c_th1c_setmarkercolor :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetMarkerColor" c_th1c_setmarkercolor ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetMarkerStyle"-               c_th1c_setmarkerstyle :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetMarkerStyle" c_th1c_setmarkerstyle ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SetMarkerSize"-               c_th1c_setmarkersize :: Ptr RawTH1C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_SetMarkerSize" c_th1c_setmarkersize ::+               Ptr RawTH1C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Draw" c_th1c_draw-               :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Clear"+               c_th1c_clear :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_FindObject"-               c_th1c_findobject :: Ptr RawTH1C -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Draw"+               c_th1c_draw :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_GetName"+foreign import ccall interruptible+               "HROOTHistTH1C.h TH1C_FindObject" c_th1c_findobject ::+               Ptr RawTH1C -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetName"                c_th1c_getname :: Ptr RawTH1C -> IO CString -foreign import ccall safe "HROOTHistTH1C.h TH1C_IsA" c_th1c_isa ::-               Ptr RawTH1C -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_IsA"+               c_th1c_isa :: Ptr RawTH1C -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1C.h TH1C_Paint" c_th1c_paint-               :: Ptr RawTH1C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Paint"+               c_th1c_paint :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_printObj"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_printObj"                c_th1c_printobj :: Ptr RawTH1C -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_SaveAs"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SaveAs"                c_th1c_saveas :: Ptr RawTH1C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1C.h TH1C_Write" c_th1c_write-               :: Ptr RawTH1C -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Write"+               c_th1c_write :: Ptr RawTH1C -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1C.h TH1C_delete"+foreign import ccall interruptible "HROOTHistTH1C.h TH1C_Write_"+               c_th1c_write_ :: Ptr RawTH1C -> IO CInt++foreign import ccall interruptible "HROOTHistTH1C.h TH1C_delete"                c_th1c_delete :: Ptr RawTH1C -> IO ()++foreign import ccall interruptible "HROOTHistTH1C.h TH1C_GetAt"+               c_th1c_getat :: Ptr RawTH1C -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetArray"+               c_th1c_setarray :: Ptr RawTH1C -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1C.h TH1C_SetAt"+               c_th1c_setat :: Ptr RawTH1C -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH1C/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1C.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1C.RawType import HROOT.Hist.TH1C.FFI import HROOT.Hist.TH1C.Interface import HROOT.Hist.TH1C.Cast+import HROOT.Hist.TH1C.RawType+import HROOT.Hist.TH1C.Cast+import HROOT.Hist.TH1C.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -48,20 +57,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1C TH1C+instance () => ITH1C (TH1C) where -instance ITH1 TH1C where+instance () => ITH1 (TH1C) where         add = xform2 c_th1c_add         addBinContent = xform2 c_th1c_addbincontent         chi2Test = xform3 c_th1c_chi2test-        computeIntegral = xform0 c_th1c_computeintegral         directoryAutoAdd = xform1 c_th1c_directoryautoadd         divide = xform5 c_th1c_divide         drawCopyTH1 = xform1 c_th1c_drawcopyth1@@ -133,9 +141,6 @@         getRMS = xform1 c_th1c_getrms         getRMSError = xform1 c_th1c_getrmserror         getSkewness = xform1 c_th1c_getskewness-        integral1 = xform3 c_th1c_integral1-        interpolate1 = xform1 c_th1c_interpolate1-        interpolate2 = xform2 c_th1c_interpolate2         interpolate3 = xform3 c_th1c_interpolate3         kolmogorovTest = xform2 c_th1c_kolmogorovtest         labelsDeflate = xform1 c_th1c_labelsdeflate@@ -190,14 +195,14 @@         smooth = xform2 c_th1c_smooth         sumw2 = xform0 c_th1c_sumw2 -instance ITArrayC TH1C+instance () => ITArrayC (TH1C) where -instance ITNamed TH1C where+instance () => ITNamed (TH1C) where         setName = xform1 c_th1c_setname         setNameTitle = xform2 c_th1c_setnametitle         setTitle = xform1 c_th1c_settitle -instance ITAttLine TH1C where+instance () => ITAttLine (TH1C) where         getLineColor = xform0 c_th1c_getlinecolor         getLineStyle = xform0 c_th1c_getlinestyle         getLineWidth = xform0 c_th1c_getlinewidth@@ -207,11 +212,11 @@         setLineStyle = xform1 c_th1c_setlinestyle         setLineWidth = xform1 c_th1c_setlinewidth -instance ITAttFill TH1C where+instance () => ITAttFill (TH1C) where         setFillColor = xform1 c_th1c_setfillcolor         setFillStyle = xform1 c_th1c_setfillstyle -instance ITAttMarker TH1C where+instance () => ITAttMarker (TH1C) where         getMarkerColor = xform0 c_th1c_getmarkercolor         getMarkerStyle = xform0 c_th1c_getmarkerstyle         getMarkerSize = xform0 c_th1c_getmarkersize@@ -221,7 +226,8 @@         setMarkerStyle = xform1 c_th1c_setmarkerstyle         setMarkerSize = xform1 c_th1c_setmarkersize -instance ITObject TH1C where+instance () => ITObject (TH1C) where+        clear = xform1 c_th1c_clear         draw = xform1 c_th1c_draw         findObject = xform1 c_th1c_findobject         getName = xform0 c_th1c_getname@@ -230,8 +236,12 @@         printObj = xform1 c_th1c_printobj         saveAs = xform2 c_th1c_saveas         write = xform3 c_th1c_write+        write_ = xform0 c_th1c_write_ -instance IDeletable TH1C where+instance () => IDeletable (TH1C) where         delete = xform0 c_th1c_delete -instance ITArray TH1C+instance () => ITArray (TH1C) where+        getAt = xform1 c_th1c_getat+        setArray = xform1 c_th1c_setarray+        setAt = xform2 c_th1c_setat
src/HROOT/Hist/TH1C/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1C.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayC.Interface -class (ITH1 a, ITArrayC a) => ITH1C a+class (ITH1 a, ITArrayC a) => ITH1C a where  upcastTH1C :: forall a . (FPtr a, ITH1C a) => a -> TH1C upcastTH1C h
src/HROOT/Hist/TH1C/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1C  newtype TH1C = TH1C (Ptr RawTH1C)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1C where+instance () => FPtr (TH1C) where         type Raw TH1C = RawTH1C         get_fptr (TH1C ptr) = ptr         cast_fptr_to_obj = TH1C
src/HROOT/Hist/TH1D/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Interface -instance (ITH1D a, FPtr a) => Castable a (Ptr RawTH1D) where+instance (ITH1D a, FPtr a) => Castable (a) (Ptr RawTH1D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1D (Ptr RawTH1D) where+instance () => Castable (TH1D) (Ptr RawTH1D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1D/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1D.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,529 +14,615 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1D.h TH1D_Add" c_th1d_add ::-               Ptr RawTH1D -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Add"+               c_th1d_add :: Ptr RawTH1D -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_AddBinContent"-               c_th1d_addbincontent :: Ptr RawTH1D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_AddBinContent" c_th1d_addbincontent ::+               Ptr RawTH1D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Chi2Test"                c_th1d_chi2test ::-               Ptr RawTH1D -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1D.h TH1D_ComputeIntegral"-               c_th1d_computeintegral :: Ptr RawTH1D -> IO CDouble+               Ptr RawTH1D -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_DirectoryAutoAdd"-               c_th1d_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_DirectoryAutoAdd" c_th1d_directoryautoadd ::                Ptr RawTH1D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Divide"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Divide"                c_th1d_divide ::                Ptr RawTH1D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_drawCopyTH1"-               c_th1d_drawcopyth1 :: Ptr RawTH1D -> CString -> IO (Ptr RawTH1D)+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_drawCopyTH1" c_th1d_drawcopyth1 ::+               Ptr RawTH1D -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH1D.h TH1D_DrawNormalized"-               c_th1d_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_DrawNormalized" c_th1d_drawnormalized ::                Ptr RawTH1D -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1D.h TH1D_drawPanelTH1"-               c_th1d_drawpanelth1 :: Ptr RawTH1D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_drawPanelTH1" c_th1d_drawpanelth1 ::+               Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_BufferEmpty"-               c_th1d_bufferempty :: Ptr RawTH1D -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_BufferEmpty" c_th1d_bufferempty ::+               Ptr RawTH1D -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_evalF" c_th1d_evalf-               :: Ptr RawTH1D -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_evalF"+               c_th1d_evalf :: Ptr RawTH1D -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_FFT" c_th1d_fft ::+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_FFT"+               c_th1d_fft ::                Ptr RawTH1D -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1D.h TH1D_fill1" c_th1d_fill1-               :: Ptr RawTH1D -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_fill1"+               c_th1d_fill1 :: Ptr RawTH1D -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_fill1w"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_fill1w"                c_th1d_fill1w :: Ptr RawTH1D -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_fillN1"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_fillN1"                c_th1d_filln1 ::-               Ptr RawTH1D ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1D -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_FillRandom"-               c_th1d_fillrandom :: Ptr RawTH1D -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FillRandom" c_th1d_fillrandom ::+               Ptr RawTH1D -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_FindBin"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_FindBin"                c_th1d_findbin ::                Ptr RawTH1D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_FindFixBin"-               c_th1d_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FindFixBin" c_th1d_findfixbin ::                Ptr RawTH1D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_FindFirstBinAbove"-               c_th1d_findfirstbinabove ::-               Ptr RawTH1D -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FindFirstBinAbove" c_th1d_findfirstbinabove+               :: Ptr RawTH1D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_FindLastBinAbove"-               c_th1d_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FindLastBinAbove" c_th1d_findlastbinabove ::                Ptr RawTH1D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_Fit" c_th1d_fit ::+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Fit"+               c_th1d_fit ::                Ptr RawTH1D ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_FitPanelTH1"-               c_th1d_fitpanelth1 :: Ptr RawTH1D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FitPanelTH1" c_th1d_fitpanelth1 ::+               Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_getNdivisionA"-               c_th1d_getndivisiona :: Ptr RawTH1D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getNdivisionA" c_th1d_getndivisiona ::+               Ptr RawTH1D -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_getAxisColorA"-               c_th1d_getaxiscolora :: Ptr RawTH1D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getAxisColorA" c_th1d_getaxiscolora ::+               Ptr RawTH1D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_getLabelColorA"-               c_th1d_getlabelcolora :: Ptr RawTH1D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getLabelColorA" c_th1d_getlabelcolora ::+               Ptr RawTH1D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_getLabelFontA"-               c_th1d_getlabelfonta :: Ptr RawTH1D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getLabelFontA" c_th1d_getlabelfonta ::+               Ptr RawTH1D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_getLabelOffsetA"-               c_th1d_getlabeloffseta :: Ptr RawTH1D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getLabelOffsetA" c_th1d_getlabeloffseta ::+               Ptr RawTH1D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_getLabelSizeA"-               c_th1d_getlabelsizea :: Ptr RawTH1D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getLabelSizeA" c_th1d_getlabelsizea ::+               Ptr RawTH1D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_getTitleFontA"-               c_th1d_gettitlefonta :: Ptr RawTH1D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getTitleFontA" c_th1d_gettitlefonta ::+               Ptr RawTH1D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_getTitleOffsetA"-               c_th1d_gettitleoffseta :: Ptr RawTH1D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getTitleOffsetA" c_th1d_gettitleoffseta ::+               Ptr RawTH1D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_getTitleSizeA"-               c_th1d_gettitlesizea :: Ptr RawTH1D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getTitleSizeA" c_th1d_gettitlesizea ::+               Ptr RawTH1D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_getTickLengthA"-               c_th1d_getticklengtha :: Ptr RawTH1D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getTickLengthA" c_th1d_getticklengtha ::+               Ptr RawTH1D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBarOffset"-               c_th1d_getbaroffset :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBarOffset" c_th1d_getbaroffset ::+               Ptr RawTH1D -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBarWidth"-               c_th1d_getbarwidth :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBarWidth" c_th1d_getbarwidth ::+               Ptr RawTH1D -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetContour"-               c_th1d_getcontour :: Ptr RawTH1D -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetContour" c_th1d_getcontour ::+               Ptr RawTH1D -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetContourLevel"-               c_th1d_getcontourlevel :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetContourLevel" c_th1d_getcontourlevel ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetContourLevelPad"-               c_th1d_getcontourlevelpad :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetContourLevelPad" c_th1d_getcontourlevelpad+               :: Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBin"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetBin"                c_th1d_getbin :: Ptr RawTH1D -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinCenter"-               c_th1d_getbincenter :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinCenter" c_th1d_getbincenter ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinContent1"-               c_th1d_getbincontent1 :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinContent1" c_th1d_getbincontent1 ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinContent2"-               c_th1d_getbincontent2 :: Ptr RawTH1D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinContent2" c_th1d_getbincontent2 ::+               Ptr RawTH1D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinContent3"-               c_th1d_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinContent3" c_th1d_getbincontent3 ::                Ptr RawTH1D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinError1"-               c_th1d_getbinerror1 :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinError1" c_th1d_getbinerror1 ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinError2"-               c_th1d_getbinerror2 :: Ptr RawTH1D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinError2" c_th1d_getbinerror2 ::+               Ptr RawTH1D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinError3"-               c_th1d_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinError3" c_th1d_getbinerror3 ::                Ptr RawTH1D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinLowEdge"-               c_th1d_getbinlowedge :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinLowEdge" c_th1d_getbinlowedge ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetBinWidth"-               c_th1d_getbinwidth :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetBinWidth" c_th1d_getbinwidth ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetCellContent"-               c_th1d_getcellcontent :: Ptr RawTH1D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetCellContent" c_th1d_getcellcontent ::+               Ptr RawTH1D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetCellError"-               c_th1d_getcellerror :: Ptr RawTH1D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetCellError" c_th1d_getcellerror ::+               Ptr RawTH1D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetEntries"-               c_th1d_getentries :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetEntries" c_th1d_getentries ::+               Ptr RawTH1D -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1D.h TH1D_GetEffectiveEntries"                c_th1d_geteffectiveentries :: Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetFunction"-               c_th1d_getfunction :: Ptr RawTH1D -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetFunction" c_th1d_getfunction ::+               Ptr RawTH1D -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetDimension"-               c_th1d_getdimension :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetDimension" c_th1d_getdimension ::+               Ptr RawTH1D -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetKurtosis"-               c_th1d_getkurtosis :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetKurtosis" c_th1d_getkurtosis ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetLowEdge"-               c_th1d_getlowedge :: Ptr RawTH1D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetLowEdge" c_th1d_getlowedge ::+               Ptr RawTH1D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_getMaximumTH1"-               c_th1d_getmaximumth1 :: Ptr RawTH1D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getMaximumTH1" c_th1d_getmaximumth1 ::+               Ptr RawTH1D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMaximumBin"-               c_th1d_getmaximumbin :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMaximumBin" c_th1d_getmaximumbin ::+               Ptr RawTH1D -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMaximumStored"-               c_th1d_getmaximumstored :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMaximumStored" c_th1d_getmaximumstored ::+               Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_getMinimumTH1"-               c_th1d_getminimumth1 :: Ptr RawTH1D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getMinimumTH1" c_th1d_getminimumth1 ::+               Ptr RawTH1D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMinimumBin"-               c_th1d_getminimumbin :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMinimumBin" c_th1d_getminimumbin ::+               Ptr RawTH1D -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMinimumStored"-               c_th1d_getminimumstored :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMinimumStored" c_th1d_getminimumstored ::+               Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMean"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetMean"                c_th1d_getmean :: Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMeanError"-               c_th1d_getmeanerror :: Ptr RawTH1D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMeanError" c_th1d_getmeanerror ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetNbinsX"                c_th1d_getnbinsx :: Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetNbinsY"                c_th1d_getnbinsy :: Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetNbinsZ"                c_th1d_getnbinsz :: Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_getQuantilesTH1"-               c_th1d_getquantilesth1 ::-               Ptr RawTH1D -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_getQuantilesTH1" c_th1d_getquantilesth1 ::+               Ptr RawTH1D -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetRandom"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetRandom"                c_th1d_getrandom :: Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetStats"-               c_th1d_getstats :: Ptr RawTH1D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetStats"+               c_th1d_getstats :: Ptr RawTH1D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetSumOfWeights"-               c_th1d_getsumofweights :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetSumOfWeights" c_th1d_getsumofweights ::+               Ptr RawTH1D -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetSumw2"                c_th1d_getsumw2 :: Ptr RawTH1D -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetSumw2N"                c_th1d_getsumw2n :: Ptr RawTH1D -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetRMS"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetRMS"                c_th1d_getrms :: Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetRMSError"-               c_th1d_getrmserror :: Ptr RawTH1D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1D.h TH1D_GetSkewness"-               c_th1d_getskewness :: Ptr RawTH1D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1D.h TH1D_integral1"-               c_th1d_integral1 ::-               Ptr RawTH1D -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1D.h TH1D_interpolate1"-               c_th1d_interpolate1 :: Ptr RawTH1D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetRMSError" c_th1d_getrmserror ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_interpolate2"-               c_th1d_interpolate2 ::-               Ptr RawTH1D -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetSkewness" c_th1d_getskewness ::+               Ptr RawTH1D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_interpolate3"-               c_th1d_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_interpolate3" c_th1d_interpolate3 ::                Ptr RawTH1D -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_KolmogorovTest"-               c_th1d_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_KolmogorovTest" c_th1d_kolmogorovtest ::                Ptr RawTH1D -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1D.h TH1D_LabelsDeflate"-               c_th1d_labelsdeflate :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_LabelsDeflate" c_th1d_labelsdeflate ::+               Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_LabelsInflate"-               c_th1d_labelsinflate :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_LabelsInflate" c_th1d_labelsinflate ::+               Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_LabelsOption"-               c_th1d_labelsoption :: Ptr RawTH1D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_LabelsOption" c_th1d_labelsoption ::+               Ptr RawTH1D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_multiflyF"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_multiflyF"                c_th1d_multiflyf :: Ptr RawTH1D -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Multiply"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Multiply"                c_th1d_multiply ::                Ptr RawTH1D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_PutStats"-               c_th1d_putstats :: Ptr RawTH1D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_PutStats"+               c_th1d_putstats :: Ptr RawTH1D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Rebin" c_th1d_rebin-               ::-               Ptr RawTH1D -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Rebin"+               c_th1d_rebin ::+               Ptr RawTH1D -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1D.h TH1D_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_RebinAxis"                c_th1d_rebinaxis :: Ptr RawTH1D -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Rebuild"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Rebuild"                c_th1d_rebuild :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_RecursiveRemove"-               c_th1d_recursiveremove :: Ptr RawTH1D -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_RecursiveRemove" c_th1d_recursiveremove ::+               Ptr RawTH1D -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Reset" c_th1d_reset-               :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Reset"+               c_th1d_reset :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_ResetStats"-               c_th1d_resetstats :: Ptr RawTH1D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_ResetStats" c_th1d_resetstats ::+               Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Scale" c_th1d_scale-               :: Ptr RawTH1D -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Scale"+               c_th1d_scale :: Ptr RawTH1D -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setAxisColorA"-               c_th1d_setaxiscolora :: Ptr RawTH1D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setAxisColorA" c_th1d_setaxiscolora ::+               Ptr RawTH1D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetAxisRange"-               c_th1d_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetAxisRange" c_th1d_setaxisrange ::                Ptr RawTH1D -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetBarOffset"-               c_th1d_setbaroffset :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetBarOffset" c_th1d_setbaroffset ::+               Ptr RawTH1D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetBarWidth"-               c_th1d_setbarwidth :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetBarWidth" c_th1d_setbarwidth ::+               Ptr RawTH1D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinContent1"-               c_th1d_setbincontent1 :: Ptr RawTH1D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinContent1" c_th1d_setbincontent1 ::+               Ptr RawTH1D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinContent2"-               c_th1d_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinContent2" c_th1d_setbincontent2 ::                Ptr RawTH1D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinContent3"-               c_th1d_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinContent3" c_th1d_setbincontent3 ::                Ptr RawTH1D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinError1"-               c_th1d_setbinerror1 :: Ptr RawTH1D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinError1" c_th1d_setbinerror1 ::+               Ptr RawTH1D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinError2"-               c_th1d_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinError2" c_th1d_setbinerror2 ::                Ptr RawTH1D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBinError3"-               c_th1d_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setBinError3" c_th1d_setbinerror3 ::                Ptr RawTH1D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBins1"-               c_th1d_setbins1 :: Ptr RawTH1D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_setBins1"+               c_th1d_setbins1 :: Ptr RawTH1D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBins2"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_setBins2"                c_th1d_setbins2 ::-               Ptr RawTH1D ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1D -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setBins3"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_setBins3"                c_th1d_setbins3 ::                Ptr RawTH1D ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetBinsLength"-               c_th1d_setbinslength :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetBinsLength" c_th1d_setbinslength ::+               Ptr RawTH1D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetBuffer"                c_th1d_setbuffer :: Ptr RawTH1D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetCellContent"-               c_th1d_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetCellContent" c_th1d_setcellcontent ::                Ptr RawTH1D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetContent"-               c_th1d_setcontent :: Ptr RawTH1D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetContent" c_th1d_setcontent ::+               Ptr RawTH1D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetContour"-               c_th1d_setcontour :: Ptr RawTH1D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetContour" c_th1d_setcontour ::+               Ptr RawTH1D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetContourLevel"-               c_th1d_setcontourlevel :: Ptr RawTH1D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetContourLevel" c_th1d_setcontourlevel ::+               Ptr RawTH1D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetDirectory"-               c_th1d_setdirectory :: Ptr RawTH1D -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetDirectory" c_th1d_setdirectory ::+               Ptr RawTH1D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetEntries"-               c_th1d_setentries :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetEntries" c_th1d_setentries ::+               Ptr RawTH1D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetError"-               c_th1d_seterror :: Ptr RawTH1D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetError"+               c_th1d_seterror :: Ptr RawTH1D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setLabelColorA"-               c_th1d_setlabelcolora :: Ptr RawTH1D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setLabelColorA" c_th1d_setlabelcolora ::+               Ptr RawTH1D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setLabelSizeA"-               c_th1d_setlabelsizea :: Ptr RawTH1D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setLabelSizeA" c_th1d_setlabelsizea ::+               Ptr RawTH1D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setLabelFontA"-               c_th1d_setlabelfonta :: Ptr RawTH1D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setLabelFontA" c_th1d_setlabelfonta ::+               Ptr RawTH1D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_setLabelOffsetA"-               c_th1d_setlabeloffseta ::-               Ptr RawTH1D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_setLabelOffsetA" c_th1d_setlabeloffseta ::+               Ptr RawTH1D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetMaximum"-               c_th1d_setmaximum :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetMaximum" c_th1d_setmaximum ::+               Ptr RawTH1D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetMinimum"-               c_th1d_setminimum :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetMinimum" c_th1d_setminimum ::+               Ptr RawTH1D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetNormFactor"-               c_th1d_setnormfactor :: Ptr RawTH1D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetNormFactor" c_th1d_setnormfactor ::+               Ptr RawTH1D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetStats"-               c_th1d_setstats :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetStats"+               c_th1d_setstats :: Ptr RawTH1D -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetOption"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetOption"                c_th1d_setoption :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetXTitle"                c_th1d_setxtitle :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetYTitle"                c_th1d_setytitle :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetZTitle"                c_th1d_setztitle :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_ShowBackground"-               c_th1d_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_ShowBackground" c_th1d_showbackground ::                Ptr RawTH1D -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1D.h TH1D_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_ShowPeaks"                c_th1d_showpeaks ::                Ptr RawTH1D -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_Smooth"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Smooth"                c_th1d_smooth :: Ptr RawTH1D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Sumw2" c_th1d_sumw2-               :: Ptr RawTH1D -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Sumw2"+               c_th1d_sumw2 :: Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetName"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetName"                c_th1d_setname :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetNameTitle"-               c_th1d_setnametitle :: Ptr RawTH1D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetNameTitle" c_th1d_setnametitle ::+               Ptr RawTH1D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetTitle"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetTitle"                c_th1d_settitle :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetLineColor"-               c_th1d_getlinecolor :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetLineColor" c_th1d_getlinecolor ::+               Ptr RawTH1D -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetLineStyle"-               c_th1d_getlinestyle :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetLineStyle" c_th1d_getlinestyle ::+               Ptr RawTH1D -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetLineWidth"-               c_th1d_getlinewidth :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetLineWidth" c_th1d_getlinewidth ::+               Ptr RawTH1D -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_ResetAttLine"-               c_th1d_resetattline :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_ResetAttLine" c_th1d_resetattline ::+               Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetLineAttributes"-               c_th1d_setlineattributes :: Ptr RawTH1D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetLineAttributes" c_th1d_setlineattributes+               :: Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetLineColor"-               c_th1d_setlinecolor :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetLineColor" c_th1d_setlinecolor ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetLineStyle"-               c_th1d_setlinestyle :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetLineStyle" c_th1d_setlinestyle ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetLineWidth"-               c_th1d_setlinewidth :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetLineWidth" c_th1d_setlinewidth ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetFillColor"-               c_th1d_setfillcolor :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetFillColor" c_th1d_setfillcolor ::+               Ptr RawTH1D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetFillStyle"-               c_th1d_setfillstyle :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetFillStyle" c_th1d_setfillstyle ::+               Ptr RawTH1D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMarkerColor"-               c_th1d_getmarkercolor :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMarkerColor" c_th1d_getmarkercolor ::+               Ptr RawTH1D -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMarkerStyle"-               c_th1d_getmarkerstyle :: Ptr RawTH1D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMarkerStyle" c_th1d_getmarkerstyle ::+               Ptr RawTH1D -> IO CShort -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetMarkerSize"-               c_th1d_getmarkersize :: Ptr RawTH1D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_GetMarkerSize" c_th1d_getmarkersize ::+               Ptr RawTH1D -> IO CFloat -foreign import ccall safe "HROOTHistTH1D.h TH1D_ResetAttMarker"-               c_th1d_resetattmarker :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_ResetAttMarker" c_th1d_resetattmarker ::+               Ptr RawTH1D -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1D.h TH1D_SetMarkerAttributes"                c_th1d_setmarkerattributes :: Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetMarkerColor"-               c_th1d_setmarkercolor :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetMarkerColor" c_th1d_setmarkercolor ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetMarkerStyle"-               c_th1d_setmarkerstyle :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetMarkerStyle" c_th1d_setmarkerstyle ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SetMarkerSize"-               c_th1d_setmarkersize :: Ptr RawTH1D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_SetMarkerSize" c_th1d_setmarkersize ::+               Ptr RawTH1D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Draw" c_th1d_draw-               :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Clear"+               c_th1d_clear :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_FindObject"-               c_th1d_findobject :: Ptr RawTH1D -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Draw"+               c_th1d_draw :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_GetName"+foreign import ccall interruptible+               "HROOTHistTH1D.h TH1D_FindObject" c_th1d_findobject ::+               Ptr RawTH1D -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetName"                c_th1d_getname :: Ptr RawTH1D -> IO CString -foreign import ccall safe "HROOTHistTH1D.h TH1D_IsA" c_th1d_isa ::-               Ptr RawTH1D -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_IsA"+               c_th1d_isa :: Ptr RawTH1D -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1D.h TH1D_Paint" c_th1d_paint-               :: Ptr RawTH1D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Paint"+               c_th1d_paint :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_printObj"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_printObj"                c_th1d_printobj :: Ptr RawTH1D -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_SaveAs"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SaveAs"                c_th1d_saveas :: Ptr RawTH1D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_Write" c_th1d_write-               :: Ptr RawTH1D -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Write"+               c_th1d_write :: Ptr RawTH1D -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1D.h TH1D_delete"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_Write_"+               c_th1d_write_ :: Ptr RawTH1D -> IO CInt++foreign import ccall interruptible "HROOTHistTH1D.h TH1D_delete"                c_th1d_delete :: Ptr RawTH1D -> IO () -foreign import ccall safe "HROOTHistTH1D.h TH1D_newTH1D"+foreign import ccall interruptible "HROOTHistTH1D.h TH1D_GetAt"+               c_th1d_getat :: Ptr RawTH1D -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetArray"+               c_th1d_setarray :: Ptr RawTH1D -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1D.h TH1D_SetAt"+               c_th1d_setat :: Ptr RawTH1D -> CDouble -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1D.h TH1D_newTH1D"                c_th1d_newth1d ::                CString ->                  CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1D)
src/HROOT/Hist/TH1D/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1D.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.FFI import HROOT.Hist.TH1D.Interface import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.RawType+import HROOT.Hist.TH1D.Cast+import HROOT.Hist.TH1D.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -45,20 +54,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1D TH1D+instance () => ITH1D (TH1D) where -instance ITH1 TH1D where+instance () => ITH1 (TH1D) where         add = xform2 c_th1d_add         addBinContent = xform2 c_th1d_addbincontent         chi2Test = xform3 c_th1d_chi2test-        computeIntegral = xform0 c_th1d_computeintegral         directoryAutoAdd = xform1 c_th1d_directoryautoadd         divide = xform5 c_th1d_divide         drawCopyTH1 = xform1 c_th1d_drawcopyth1@@ -130,9 +138,6 @@         getRMS = xform1 c_th1d_getrms         getRMSError = xform1 c_th1d_getrmserror         getSkewness = xform1 c_th1d_getskewness-        integral1 = xform3 c_th1d_integral1-        interpolate1 = xform1 c_th1d_interpolate1-        interpolate2 = xform2 c_th1d_interpolate2         interpolate3 = xform3 c_th1d_interpolate3         kolmogorovTest = xform2 c_th1d_kolmogorovtest         labelsDeflate = xform1 c_th1d_labelsdeflate@@ -187,14 +192,14 @@         smooth = xform2 c_th1d_smooth         sumw2 = xform0 c_th1d_sumw2 -instance ITArrayD TH1D+instance () => ITArrayD (TH1D) where -instance ITNamed TH1D where+instance () => ITNamed (TH1D) where         setName = xform1 c_th1d_setname         setNameTitle = xform2 c_th1d_setnametitle         setTitle = xform1 c_th1d_settitle -instance ITAttLine TH1D where+instance () => ITAttLine (TH1D) where         getLineColor = xform0 c_th1d_getlinecolor         getLineStyle = xform0 c_th1d_getlinestyle         getLineWidth = xform0 c_th1d_getlinewidth@@ -204,11 +209,11 @@         setLineStyle = xform1 c_th1d_setlinestyle         setLineWidth = xform1 c_th1d_setlinewidth -instance ITAttFill TH1D where+instance () => ITAttFill (TH1D) where         setFillColor = xform1 c_th1d_setfillcolor         setFillStyle = xform1 c_th1d_setfillstyle -instance ITAttMarker TH1D where+instance () => ITAttMarker (TH1D) where         getMarkerColor = xform0 c_th1d_getmarkercolor         getMarkerStyle = xform0 c_th1d_getmarkerstyle         getMarkerSize = xform0 c_th1d_getmarkersize@@ -218,7 +223,8 @@         setMarkerStyle = xform1 c_th1d_setmarkerstyle         setMarkerSize = xform1 c_th1d_setmarkersize -instance ITObject TH1D where+instance () => ITObject (TH1D) where+        clear = xform1 c_th1d_clear         draw = xform1 c_th1d_draw         findObject = xform1 c_th1d_findobject         getName = xform0 c_th1d_getname@@ -227,11 +233,15 @@         printObj = xform1 c_th1d_printobj         saveAs = xform2 c_th1d_saveas         write = xform3 c_th1d_write+        write_ = xform0 c_th1d_write_ -instance IDeletable TH1D where+instance () => IDeletable (TH1D) where         delete = xform0 c_th1d_delete -instance ITArray TH1D+instance () => ITArray (TH1D) where+        getAt = xform1 c_th1d_getat+        setArray = xform1 c_th1d_setarray+        setAt = xform2 c_th1d_setat  newTH1D ::           (Castable c1 CString, Castable c0 CString) =>
src/HROOT/Hist/TH1D/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1D.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayD.Interface -class (ITH1 a, ITArrayD a) => ITH1D a+class (ITH1 a, ITArrayD a) => ITH1D a where  upcastTH1D :: forall a . (FPtr a, ITH1D a) => a -> TH1D upcastTH1D h
src/HROOT/Hist/TH1D/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1D  newtype TH1D = TH1D (Ptr RawTH1D)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1D where+instance () => FPtr (TH1D) where         type Raw TH1D = RawTH1D         get_fptr (TH1D ptr) = ptr         cast_fptr_to_obj = TH1D
src/HROOT/Hist/TH1F/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1F.RawType import HROOT.Hist.TH1F.Interface -instance (ITH1F a, FPtr a) => Castable a (Ptr RawTH1F) where+instance (ITH1F a, FPtr a) => Castable (a) (Ptr RawTH1F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1F (Ptr RawTH1F) where+instance () => Castable (TH1F) (Ptr RawTH1F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1F/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1F.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,529 +14,615 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1F.h TH1F_Add" c_th1f_add ::-               Ptr RawTH1F -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Add"+               c_th1f_add :: Ptr RawTH1F -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_AddBinContent"-               c_th1f_addbincontent :: Ptr RawTH1F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_AddBinContent" c_th1f_addbincontent ::+               Ptr RawTH1F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Chi2Test"                c_th1f_chi2test ::-               Ptr RawTH1F -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1F.h TH1F_ComputeIntegral"-               c_th1f_computeintegral :: Ptr RawTH1F -> IO CDouble+               Ptr RawTH1F -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_DirectoryAutoAdd"-               c_th1f_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_DirectoryAutoAdd" c_th1f_directoryautoadd ::                Ptr RawTH1F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Divide"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Divide"                c_th1f_divide ::                Ptr RawTH1F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_drawCopyTH1"-               c_th1f_drawcopyth1 :: Ptr RawTH1F -> CString -> IO (Ptr RawTH1F)+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_drawCopyTH1" c_th1f_drawcopyth1 ::+               Ptr RawTH1F -> CString -> IO (Ptr RawTH1F) -foreign import ccall safe "HROOTHistTH1F.h TH1F_DrawNormalized"-               c_th1f_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_DrawNormalized" c_th1f_drawnormalized ::                Ptr RawTH1F -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1F.h TH1F_drawPanelTH1"-               c_th1f_drawpanelth1 :: Ptr RawTH1F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_drawPanelTH1" c_th1f_drawpanelth1 ::+               Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_BufferEmpty"-               c_th1f_bufferempty :: Ptr RawTH1F -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_BufferEmpty" c_th1f_bufferempty ::+               Ptr RawTH1F -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_evalF" c_th1f_evalf-               :: Ptr RawTH1F -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_evalF"+               c_th1f_evalf :: Ptr RawTH1F -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_FFT" c_th1f_fft ::+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_FFT"+               c_th1f_fft ::                Ptr RawTH1F -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1F.h TH1F_fill1" c_th1f_fill1-               :: Ptr RawTH1F -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_fill1"+               c_th1f_fill1 :: Ptr RawTH1F -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_fill1w"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_fill1w"                c_th1f_fill1w :: Ptr RawTH1F -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_fillN1"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_fillN1"                c_th1f_filln1 ::-               Ptr RawTH1F ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1F -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_FillRandom"-               c_th1f_fillrandom :: Ptr RawTH1F -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FillRandom" c_th1f_fillrandom ::+               Ptr RawTH1F -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_FindBin"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_FindBin"                c_th1f_findbin ::                Ptr RawTH1F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_FindFixBin"-               c_th1f_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FindFixBin" c_th1f_findfixbin ::                Ptr RawTH1F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_FindFirstBinAbove"-               c_th1f_findfirstbinabove ::-               Ptr RawTH1F -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FindFirstBinAbove" c_th1f_findfirstbinabove+               :: Ptr RawTH1F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_FindLastBinAbove"-               c_th1f_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FindLastBinAbove" c_th1f_findlastbinabove ::                Ptr RawTH1F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_Fit" c_th1f_fit ::+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Fit"+               c_th1f_fit ::                Ptr RawTH1F ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_FitPanelTH1"-               c_th1f_fitpanelth1 :: Ptr RawTH1F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FitPanelTH1" c_th1f_fitpanelth1 ::+               Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_getNdivisionA"-               c_th1f_getndivisiona :: Ptr RawTH1F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getNdivisionA" c_th1f_getndivisiona ::+               Ptr RawTH1F -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_getAxisColorA"-               c_th1f_getaxiscolora :: Ptr RawTH1F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getAxisColorA" c_th1f_getaxiscolora ::+               Ptr RawTH1F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_getLabelColorA"-               c_th1f_getlabelcolora :: Ptr RawTH1F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getLabelColorA" c_th1f_getlabelcolora ::+               Ptr RawTH1F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_getLabelFontA"-               c_th1f_getlabelfonta :: Ptr RawTH1F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getLabelFontA" c_th1f_getlabelfonta ::+               Ptr RawTH1F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_getLabelOffsetA"-               c_th1f_getlabeloffseta :: Ptr RawTH1F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getLabelOffsetA" c_th1f_getlabeloffseta ::+               Ptr RawTH1F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_getLabelSizeA"-               c_th1f_getlabelsizea :: Ptr RawTH1F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getLabelSizeA" c_th1f_getlabelsizea ::+               Ptr RawTH1F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_getTitleFontA"-               c_th1f_gettitlefonta :: Ptr RawTH1F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getTitleFontA" c_th1f_gettitlefonta ::+               Ptr RawTH1F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_getTitleOffsetA"-               c_th1f_gettitleoffseta :: Ptr RawTH1F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getTitleOffsetA" c_th1f_gettitleoffseta ::+               Ptr RawTH1F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_getTitleSizeA"-               c_th1f_gettitlesizea :: Ptr RawTH1F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getTitleSizeA" c_th1f_gettitlesizea ::+               Ptr RawTH1F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_getTickLengthA"-               c_th1f_getticklengtha :: Ptr RawTH1F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getTickLengthA" c_th1f_getticklengtha ::+               Ptr RawTH1F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBarOffset"-               c_th1f_getbaroffset :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBarOffset" c_th1f_getbaroffset ::+               Ptr RawTH1F -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBarWidth"-               c_th1f_getbarwidth :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBarWidth" c_th1f_getbarwidth ::+               Ptr RawTH1F -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetContour"-               c_th1f_getcontour :: Ptr RawTH1F -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetContour" c_th1f_getcontour ::+               Ptr RawTH1F -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetContourLevel"-               c_th1f_getcontourlevel :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetContourLevel" c_th1f_getcontourlevel ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetContourLevelPad"-               c_th1f_getcontourlevelpad :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetContourLevelPad" c_th1f_getcontourlevelpad+               :: Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBin"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetBin"                c_th1f_getbin :: Ptr RawTH1F -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinCenter"-               c_th1f_getbincenter :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinCenter" c_th1f_getbincenter ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinContent1"-               c_th1f_getbincontent1 :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinContent1" c_th1f_getbincontent1 ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinContent2"-               c_th1f_getbincontent2 :: Ptr RawTH1F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinContent2" c_th1f_getbincontent2 ::+               Ptr RawTH1F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinContent3"-               c_th1f_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinContent3" c_th1f_getbincontent3 ::                Ptr RawTH1F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinError1"-               c_th1f_getbinerror1 :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinError1" c_th1f_getbinerror1 ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinError2"-               c_th1f_getbinerror2 :: Ptr RawTH1F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinError2" c_th1f_getbinerror2 ::+               Ptr RawTH1F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinError3"-               c_th1f_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinError3" c_th1f_getbinerror3 ::                Ptr RawTH1F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinLowEdge"-               c_th1f_getbinlowedge :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinLowEdge" c_th1f_getbinlowedge ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetBinWidth"-               c_th1f_getbinwidth :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetBinWidth" c_th1f_getbinwidth ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetCellContent"-               c_th1f_getcellcontent :: Ptr RawTH1F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetCellContent" c_th1f_getcellcontent ::+               Ptr RawTH1F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetCellError"-               c_th1f_getcellerror :: Ptr RawTH1F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetCellError" c_th1f_getcellerror ::+               Ptr RawTH1F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetEntries"-               c_th1f_getentries :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetEntries" c_th1f_getentries ::+               Ptr RawTH1F -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1F.h TH1F_GetEffectiveEntries"                c_th1f_geteffectiveentries :: Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetFunction"-               c_th1f_getfunction :: Ptr RawTH1F -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetFunction" c_th1f_getfunction ::+               Ptr RawTH1F -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetDimension"-               c_th1f_getdimension :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetDimension" c_th1f_getdimension ::+               Ptr RawTH1F -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetKurtosis"-               c_th1f_getkurtosis :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetKurtosis" c_th1f_getkurtosis ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetLowEdge"-               c_th1f_getlowedge :: Ptr RawTH1F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetLowEdge" c_th1f_getlowedge ::+               Ptr RawTH1F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_getMaximumTH1"-               c_th1f_getmaximumth1 :: Ptr RawTH1F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getMaximumTH1" c_th1f_getmaximumth1 ::+               Ptr RawTH1F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMaximumBin"-               c_th1f_getmaximumbin :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMaximumBin" c_th1f_getmaximumbin ::+               Ptr RawTH1F -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMaximumStored"-               c_th1f_getmaximumstored :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMaximumStored" c_th1f_getmaximumstored ::+               Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_getMinimumTH1"-               c_th1f_getminimumth1 :: Ptr RawTH1F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getMinimumTH1" c_th1f_getminimumth1 ::+               Ptr RawTH1F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMinimumBin"-               c_th1f_getminimumbin :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMinimumBin" c_th1f_getminimumbin ::+               Ptr RawTH1F -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMinimumStored"-               c_th1f_getminimumstored :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMinimumStored" c_th1f_getminimumstored ::+               Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMean"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetMean"                c_th1f_getmean :: Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMeanError"-               c_th1f_getmeanerror :: Ptr RawTH1F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMeanError" c_th1f_getmeanerror ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetNbinsX"                c_th1f_getnbinsx :: Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetNbinsY"                c_th1f_getnbinsy :: Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetNbinsZ"                c_th1f_getnbinsz :: Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_getQuantilesTH1"-               c_th1f_getquantilesth1 ::-               Ptr RawTH1F -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_getQuantilesTH1" c_th1f_getquantilesth1 ::+               Ptr RawTH1F -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetRandom"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetRandom"                c_th1f_getrandom :: Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetStats"-               c_th1f_getstats :: Ptr RawTH1F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetStats"+               c_th1f_getstats :: Ptr RawTH1F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetSumOfWeights"-               c_th1f_getsumofweights :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetSumOfWeights" c_th1f_getsumofweights ::+               Ptr RawTH1F -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetSumw2"                c_th1f_getsumw2 :: Ptr RawTH1F -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetSumw2N"                c_th1f_getsumw2n :: Ptr RawTH1F -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetRMS"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetRMS"                c_th1f_getrms :: Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetRMSError"-               c_th1f_getrmserror :: Ptr RawTH1F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1F.h TH1F_GetSkewness"-               c_th1f_getskewness :: Ptr RawTH1F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1F.h TH1F_integral1"-               c_th1f_integral1 ::-               Ptr RawTH1F -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1F.h TH1F_interpolate1"-               c_th1f_interpolate1 :: Ptr RawTH1F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetRMSError" c_th1f_getrmserror ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_interpolate2"-               c_th1f_interpolate2 ::-               Ptr RawTH1F -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetSkewness" c_th1f_getskewness ::+               Ptr RawTH1F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_interpolate3"-               c_th1f_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_interpolate3" c_th1f_interpolate3 ::                Ptr RawTH1F -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_KolmogorovTest"-               c_th1f_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_KolmogorovTest" c_th1f_kolmogorovtest ::                Ptr RawTH1F -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1F.h TH1F_LabelsDeflate"-               c_th1f_labelsdeflate :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_LabelsDeflate" c_th1f_labelsdeflate ::+               Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_LabelsInflate"-               c_th1f_labelsinflate :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_LabelsInflate" c_th1f_labelsinflate ::+               Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_LabelsOption"-               c_th1f_labelsoption :: Ptr RawTH1F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_LabelsOption" c_th1f_labelsoption ::+               Ptr RawTH1F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_multiflyF"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_multiflyF"                c_th1f_multiflyf :: Ptr RawTH1F -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Multiply"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Multiply"                c_th1f_multiply ::                Ptr RawTH1F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_PutStats"-               c_th1f_putstats :: Ptr RawTH1F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_PutStats"+               c_th1f_putstats :: Ptr RawTH1F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Rebin" c_th1f_rebin-               ::-               Ptr RawTH1F -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Rebin"+               c_th1f_rebin ::+               Ptr RawTH1F -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1F.h TH1F_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_RebinAxis"                c_th1f_rebinaxis :: Ptr RawTH1F -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Rebuild"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Rebuild"                c_th1f_rebuild :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_RecursiveRemove"-               c_th1f_recursiveremove :: Ptr RawTH1F -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_RecursiveRemove" c_th1f_recursiveremove ::+               Ptr RawTH1F -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Reset" c_th1f_reset-               :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Reset"+               c_th1f_reset :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_ResetStats"-               c_th1f_resetstats :: Ptr RawTH1F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_ResetStats" c_th1f_resetstats ::+               Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Scale" c_th1f_scale-               :: Ptr RawTH1F -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Scale"+               c_th1f_scale :: Ptr RawTH1F -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setAxisColorA"-               c_th1f_setaxiscolora :: Ptr RawTH1F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setAxisColorA" c_th1f_setaxiscolora ::+               Ptr RawTH1F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetAxisRange"-               c_th1f_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetAxisRange" c_th1f_setaxisrange ::                Ptr RawTH1F -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetBarOffset"-               c_th1f_setbaroffset :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetBarOffset" c_th1f_setbaroffset ::+               Ptr RawTH1F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetBarWidth"-               c_th1f_setbarwidth :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetBarWidth" c_th1f_setbarwidth ::+               Ptr RawTH1F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinContent1"-               c_th1f_setbincontent1 :: Ptr RawTH1F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinContent1" c_th1f_setbincontent1 ::+               Ptr RawTH1F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinContent2"-               c_th1f_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinContent2" c_th1f_setbincontent2 ::                Ptr RawTH1F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinContent3"-               c_th1f_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinContent3" c_th1f_setbincontent3 ::                Ptr RawTH1F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinError1"-               c_th1f_setbinerror1 :: Ptr RawTH1F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinError1" c_th1f_setbinerror1 ::+               Ptr RawTH1F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinError2"-               c_th1f_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinError2" c_th1f_setbinerror2 ::                Ptr RawTH1F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBinError3"-               c_th1f_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setBinError3" c_th1f_setbinerror3 ::                Ptr RawTH1F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBins1"-               c_th1f_setbins1 :: Ptr RawTH1F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_setBins1"+               c_th1f_setbins1 :: Ptr RawTH1F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBins2"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_setBins2"                c_th1f_setbins2 ::-               Ptr RawTH1F ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1F -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setBins3"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_setBins3"                c_th1f_setbins3 ::                Ptr RawTH1F ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetBinsLength"-               c_th1f_setbinslength :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetBinsLength" c_th1f_setbinslength ::+               Ptr RawTH1F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetBuffer"                c_th1f_setbuffer :: Ptr RawTH1F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetCellContent"-               c_th1f_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetCellContent" c_th1f_setcellcontent ::                Ptr RawTH1F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetContent"-               c_th1f_setcontent :: Ptr RawTH1F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetContent" c_th1f_setcontent ::+               Ptr RawTH1F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetContour"-               c_th1f_setcontour :: Ptr RawTH1F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetContour" c_th1f_setcontour ::+               Ptr RawTH1F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetContourLevel"-               c_th1f_setcontourlevel :: Ptr RawTH1F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetContourLevel" c_th1f_setcontourlevel ::+               Ptr RawTH1F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetDirectory"-               c_th1f_setdirectory :: Ptr RawTH1F -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetDirectory" c_th1f_setdirectory ::+               Ptr RawTH1F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetEntries"-               c_th1f_setentries :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetEntries" c_th1f_setentries ::+               Ptr RawTH1F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetError"-               c_th1f_seterror :: Ptr RawTH1F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetError"+               c_th1f_seterror :: Ptr RawTH1F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setLabelColorA"-               c_th1f_setlabelcolora :: Ptr RawTH1F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setLabelColorA" c_th1f_setlabelcolora ::+               Ptr RawTH1F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setLabelSizeA"-               c_th1f_setlabelsizea :: Ptr RawTH1F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setLabelSizeA" c_th1f_setlabelsizea ::+               Ptr RawTH1F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setLabelFontA"-               c_th1f_setlabelfonta :: Ptr RawTH1F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setLabelFontA" c_th1f_setlabelfonta ::+               Ptr RawTH1F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_setLabelOffsetA"-               c_th1f_setlabeloffseta ::-               Ptr RawTH1F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_setLabelOffsetA" c_th1f_setlabeloffseta ::+               Ptr RawTH1F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetMaximum"-               c_th1f_setmaximum :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetMaximum" c_th1f_setmaximum ::+               Ptr RawTH1F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetMinimum"-               c_th1f_setminimum :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetMinimum" c_th1f_setminimum ::+               Ptr RawTH1F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetNormFactor"-               c_th1f_setnormfactor :: Ptr RawTH1F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetNormFactor" c_th1f_setnormfactor ::+               Ptr RawTH1F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetStats"-               c_th1f_setstats :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetStats"+               c_th1f_setstats :: Ptr RawTH1F -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetOption"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetOption"                c_th1f_setoption :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetXTitle"                c_th1f_setxtitle :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetYTitle"                c_th1f_setytitle :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetZTitle"                c_th1f_setztitle :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_ShowBackground"-               c_th1f_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_ShowBackground" c_th1f_showbackground ::                Ptr RawTH1F -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1F.h TH1F_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_ShowPeaks"                c_th1f_showpeaks ::                Ptr RawTH1F -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_Smooth"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Smooth"                c_th1f_smooth :: Ptr RawTH1F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Sumw2" c_th1f_sumw2-               :: Ptr RawTH1F -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Sumw2"+               c_th1f_sumw2 :: Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetName"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetName"                c_th1f_setname :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetNameTitle"-               c_th1f_setnametitle :: Ptr RawTH1F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetNameTitle" c_th1f_setnametitle ::+               Ptr RawTH1F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetTitle"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetTitle"                c_th1f_settitle :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetLineColor"-               c_th1f_getlinecolor :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetLineColor" c_th1f_getlinecolor ::+               Ptr RawTH1F -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetLineStyle"-               c_th1f_getlinestyle :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetLineStyle" c_th1f_getlinestyle ::+               Ptr RawTH1F -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetLineWidth"-               c_th1f_getlinewidth :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetLineWidth" c_th1f_getlinewidth ::+               Ptr RawTH1F -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_ResetAttLine"-               c_th1f_resetattline :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_ResetAttLine" c_th1f_resetattline ::+               Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetLineAttributes"-               c_th1f_setlineattributes :: Ptr RawTH1F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetLineAttributes" c_th1f_setlineattributes+               :: Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetLineColor"-               c_th1f_setlinecolor :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetLineColor" c_th1f_setlinecolor ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetLineStyle"-               c_th1f_setlinestyle :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetLineStyle" c_th1f_setlinestyle ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetLineWidth"-               c_th1f_setlinewidth :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetLineWidth" c_th1f_setlinewidth ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetFillColor"-               c_th1f_setfillcolor :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetFillColor" c_th1f_setfillcolor ::+               Ptr RawTH1F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetFillStyle"-               c_th1f_setfillstyle :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetFillStyle" c_th1f_setfillstyle ::+               Ptr RawTH1F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMarkerColor"-               c_th1f_getmarkercolor :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMarkerColor" c_th1f_getmarkercolor ::+               Ptr RawTH1F -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMarkerStyle"-               c_th1f_getmarkerstyle :: Ptr RawTH1F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMarkerStyle" c_th1f_getmarkerstyle ::+               Ptr RawTH1F -> IO CShort -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetMarkerSize"-               c_th1f_getmarkersize :: Ptr RawTH1F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_GetMarkerSize" c_th1f_getmarkersize ::+               Ptr RawTH1F -> IO CFloat -foreign import ccall safe "HROOTHistTH1F.h TH1F_ResetAttMarker"-               c_th1f_resetattmarker :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_ResetAttMarker" c_th1f_resetattmarker ::+               Ptr RawTH1F -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1F.h TH1F_SetMarkerAttributes"                c_th1f_setmarkerattributes :: Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetMarkerColor"-               c_th1f_setmarkercolor :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetMarkerColor" c_th1f_setmarkercolor ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetMarkerStyle"-               c_th1f_setmarkerstyle :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetMarkerStyle" c_th1f_setmarkerstyle ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SetMarkerSize"-               c_th1f_setmarkersize :: Ptr RawTH1F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_SetMarkerSize" c_th1f_setmarkersize ::+               Ptr RawTH1F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Draw" c_th1f_draw-               :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Clear"+               c_th1f_clear :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_FindObject"-               c_th1f_findobject :: Ptr RawTH1F -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Draw"+               c_th1f_draw :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_GetName"+foreign import ccall interruptible+               "HROOTHistTH1F.h TH1F_FindObject" c_th1f_findobject ::+               Ptr RawTH1F -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetName"                c_th1f_getname :: Ptr RawTH1F -> IO CString -foreign import ccall safe "HROOTHistTH1F.h TH1F_IsA" c_th1f_isa ::-               Ptr RawTH1F -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_IsA"+               c_th1f_isa :: Ptr RawTH1F -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1F.h TH1F_Paint" c_th1f_paint-               :: Ptr RawTH1F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Paint"+               c_th1f_paint :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_printObj"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_printObj"                c_th1f_printobj :: Ptr RawTH1F -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_SaveAs"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SaveAs"                c_th1f_saveas :: Ptr RawTH1F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_Write" c_th1f_write-               :: Ptr RawTH1F -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Write"+               c_th1f_write :: Ptr RawTH1F -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1F.h TH1F_delete"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_Write_"+               c_th1f_write_ :: Ptr RawTH1F -> IO CInt++foreign import ccall interruptible "HROOTHistTH1F.h TH1F_delete"                c_th1f_delete :: Ptr RawTH1F -> IO () -foreign import ccall safe "HROOTHistTH1F.h TH1F_newTH1F"+foreign import ccall interruptible "HROOTHistTH1F.h TH1F_GetAt"+               c_th1f_getat :: Ptr RawTH1F -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetArray"+               c_th1f_setarray :: Ptr RawTH1F -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1F.h TH1F_SetAt"+               c_th1f_setat :: Ptr RawTH1F -> CDouble -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1F.h TH1F_newTH1F"                c_th1f_newth1f ::                CString ->                  CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1F)
src/HROOT/Hist/TH1F/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1F.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1F.RawType import HROOT.Hist.TH1F.FFI import HROOT.Hist.TH1F.Interface import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.RawType+import HROOT.Hist.TH1F.Cast+import HROOT.Hist.TH1F.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -48,20 +57,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1F TH1F+instance () => ITH1F (TH1F) where -instance ITH1 TH1F where+instance () => ITH1 (TH1F) where         add = xform2 c_th1f_add         addBinContent = xform2 c_th1f_addbincontent         chi2Test = xform3 c_th1f_chi2test-        computeIntegral = xform0 c_th1f_computeintegral         directoryAutoAdd = xform1 c_th1f_directoryautoadd         divide = xform5 c_th1f_divide         drawCopyTH1 = xform1 c_th1f_drawcopyth1@@ -133,9 +141,6 @@         getRMS = xform1 c_th1f_getrms         getRMSError = xform1 c_th1f_getrmserror         getSkewness = xform1 c_th1f_getskewness-        integral1 = xform3 c_th1f_integral1-        interpolate1 = xform1 c_th1f_interpolate1-        interpolate2 = xform2 c_th1f_interpolate2         interpolate3 = xform3 c_th1f_interpolate3         kolmogorovTest = xform2 c_th1f_kolmogorovtest         labelsDeflate = xform1 c_th1f_labelsdeflate@@ -190,14 +195,14 @@         smooth = xform2 c_th1f_smooth         sumw2 = xform0 c_th1f_sumw2 -instance ITArrayF TH1F+instance () => ITArrayF (TH1F) where -instance ITNamed TH1F where+instance () => ITNamed (TH1F) where         setName = xform1 c_th1f_setname         setNameTitle = xform2 c_th1f_setnametitle         setTitle = xform1 c_th1f_settitle -instance ITAttLine TH1F where+instance () => ITAttLine (TH1F) where         getLineColor = xform0 c_th1f_getlinecolor         getLineStyle = xform0 c_th1f_getlinestyle         getLineWidth = xform0 c_th1f_getlinewidth@@ -207,11 +212,11 @@         setLineStyle = xform1 c_th1f_setlinestyle         setLineWidth = xform1 c_th1f_setlinewidth -instance ITAttFill TH1F where+instance () => ITAttFill (TH1F) where         setFillColor = xform1 c_th1f_setfillcolor         setFillStyle = xform1 c_th1f_setfillstyle -instance ITAttMarker TH1F where+instance () => ITAttMarker (TH1F) where         getMarkerColor = xform0 c_th1f_getmarkercolor         getMarkerStyle = xform0 c_th1f_getmarkerstyle         getMarkerSize = xform0 c_th1f_getmarkersize@@ -221,7 +226,8 @@         setMarkerStyle = xform1 c_th1f_setmarkerstyle         setMarkerSize = xform1 c_th1f_setmarkersize -instance ITObject TH1F where+instance () => ITObject (TH1F) where+        clear = xform1 c_th1f_clear         draw = xform1 c_th1f_draw         findObject = xform1 c_th1f_findobject         getName = xform0 c_th1f_getname@@ -230,11 +236,15 @@         printObj = xform1 c_th1f_printobj         saveAs = xform2 c_th1f_saveas         write = xform3 c_th1f_write+        write_ = xform0 c_th1f_write_ -instance IDeletable TH1F where+instance () => IDeletable (TH1F) where         delete = xform0 c_th1f_delete -instance ITArray TH1F+instance () => ITArray (TH1F) where+        getAt = xform1 c_th1f_getat+        setArray = xform1 c_th1f_setarray+        setAt = xform2 c_th1f_setat  newTH1F ::           (Castable c1 CString, Castable c0 CString) =>
src/HROOT/Hist/TH1F/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1F.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayF.Interface -class (ITH1 a, ITArrayF a) => ITH1F a+class (ITH1 a, ITArrayF a) => ITH1F a where  upcastTH1F :: forall a . (FPtr a, ITH1F a) => a -> TH1F upcastTH1F h
− src/HROOT/Hist/TH1F/Interface.hs-boot
@@ -1,3 +0,0 @@-module HROOT.Hist.TH1F.Interface where--class ITH1F a
src/HROOT/Hist/TH1F/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1F  newtype TH1F = TH1F (Ptr RawTH1F)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1F where+instance () => FPtr (TH1F) where         type Raw TH1F = RawTH1F         get_fptr (TH1F ptr) = ptr         cast_fptr_to_obj = TH1F
src/HROOT/Hist/TH1I/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1I.RawType import HROOT.Hist.TH1I.Interface -instance (ITH1I a, FPtr a) => Castable a (Ptr RawTH1I) where+instance (ITH1I a, FPtr a) => Castable (a) (Ptr RawTH1I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1I (Ptr RawTH1I) where+instance () => Castable (TH1I) (Ptr RawTH1I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1I/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1I.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1I.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,524 +14,610 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1I.h TH1I_Add" c_th1i_add ::-               Ptr RawTH1I -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Add"+               c_th1i_add :: Ptr RawTH1I -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_AddBinContent"-               c_th1i_addbincontent :: Ptr RawTH1I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_AddBinContent" c_th1i_addbincontent ::+               Ptr RawTH1I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Chi2Test"                c_th1i_chi2test ::-               Ptr RawTH1I -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1I.h TH1I_ComputeIntegral"-               c_th1i_computeintegral :: Ptr RawTH1I -> IO CDouble+               Ptr RawTH1I -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_DirectoryAutoAdd"-               c_th1i_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_DirectoryAutoAdd" c_th1i_directoryautoadd ::                Ptr RawTH1I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Divide"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Divide"                c_th1i_divide ::                Ptr RawTH1I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_drawCopyTH1"-               c_th1i_drawcopyth1 :: Ptr RawTH1I -> CString -> IO (Ptr RawTH1I)+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_drawCopyTH1" c_th1i_drawcopyth1 ::+               Ptr RawTH1I -> CString -> IO (Ptr RawTH1I) -foreign import ccall safe "HROOTHistTH1I.h TH1I_DrawNormalized"-               c_th1i_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_DrawNormalized" c_th1i_drawnormalized ::                Ptr RawTH1I -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1I.h TH1I_drawPanelTH1"-               c_th1i_drawpanelth1 :: Ptr RawTH1I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_drawPanelTH1" c_th1i_drawpanelth1 ::+               Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_BufferEmpty"-               c_th1i_bufferempty :: Ptr RawTH1I -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_BufferEmpty" c_th1i_bufferempty ::+               Ptr RawTH1I -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_evalF" c_th1i_evalf-               :: Ptr RawTH1I -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_evalF"+               c_th1i_evalf :: Ptr RawTH1I -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_FFT" c_th1i_fft ::+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_FFT"+               c_th1i_fft ::                Ptr RawTH1I -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1I.h TH1I_fill1" c_th1i_fill1-               :: Ptr RawTH1I -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_fill1"+               c_th1i_fill1 :: Ptr RawTH1I -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_fill1w"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_fill1w"                c_th1i_fill1w :: Ptr RawTH1I -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_fillN1"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_fillN1"                c_th1i_filln1 ::-               Ptr RawTH1I ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1I -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_FillRandom"-               c_th1i_fillrandom :: Ptr RawTH1I -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FillRandom" c_th1i_fillrandom ::+               Ptr RawTH1I -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_FindBin"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_FindBin"                c_th1i_findbin ::                Ptr RawTH1I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_FindFixBin"-               c_th1i_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FindFixBin" c_th1i_findfixbin ::                Ptr RawTH1I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_FindFirstBinAbove"-               c_th1i_findfirstbinabove ::-               Ptr RawTH1I -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FindFirstBinAbove" c_th1i_findfirstbinabove+               :: Ptr RawTH1I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_FindLastBinAbove"-               c_th1i_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FindLastBinAbove" c_th1i_findlastbinabove ::                Ptr RawTH1I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_Fit" c_th1i_fit ::+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Fit"+               c_th1i_fit ::                Ptr RawTH1I ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_FitPanelTH1"-               c_th1i_fitpanelth1 :: Ptr RawTH1I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FitPanelTH1" c_th1i_fitpanelth1 ::+               Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_getNdivisionA"-               c_th1i_getndivisiona :: Ptr RawTH1I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getNdivisionA" c_th1i_getndivisiona ::+               Ptr RawTH1I -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_getAxisColorA"-               c_th1i_getaxiscolora :: Ptr RawTH1I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getAxisColorA" c_th1i_getaxiscolora ::+               Ptr RawTH1I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_getLabelColorA"-               c_th1i_getlabelcolora :: Ptr RawTH1I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getLabelColorA" c_th1i_getlabelcolora ::+               Ptr RawTH1I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_getLabelFontA"-               c_th1i_getlabelfonta :: Ptr RawTH1I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getLabelFontA" c_th1i_getlabelfonta ::+               Ptr RawTH1I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_getLabelOffsetA"-               c_th1i_getlabeloffseta :: Ptr RawTH1I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getLabelOffsetA" c_th1i_getlabeloffseta ::+               Ptr RawTH1I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_getLabelSizeA"-               c_th1i_getlabelsizea :: Ptr RawTH1I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getLabelSizeA" c_th1i_getlabelsizea ::+               Ptr RawTH1I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_getTitleFontA"-               c_th1i_gettitlefonta :: Ptr RawTH1I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getTitleFontA" c_th1i_gettitlefonta ::+               Ptr RawTH1I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_getTitleOffsetA"-               c_th1i_gettitleoffseta :: Ptr RawTH1I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getTitleOffsetA" c_th1i_gettitleoffseta ::+               Ptr RawTH1I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_getTitleSizeA"-               c_th1i_gettitlesizea :: Ptr RawTH1I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getTitleSizeA" c_th1i_gettitlesizea ::+               Ptr RawTH1I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_getTickLengthA"-               c_th1i_getticklengtha :: Ptr RawTH1I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getTickLengthA" c_th1i_getticklengtha ::+               Ptr RawTH1I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBarOffset"-               c_th1i_getbaroffset :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBarOffset" c_th1i_getbaroffset ::+               Ptr RawTH1I -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBarWidth"-               c_th1i_getbarwidth :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBarWidth" c_th1i_getbarwidth ::+               Ptr RawTH1I -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetContour"-               c_th1i_getcontour :: Ptr RawTH1I -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetContour" c_th1i_getcontour ::+               Ptr RawTH1I -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetContourLevel"-               c_th1i_getcontourlevel :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetContourLevel" c_th1i_getcontourlevel ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetContourLevelPad"-               c_th1i_getcontourlevelpad :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetContourLevelPad" c_th1i_getcontourlevelpad+               :: Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBin"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetBin"                c_th1i_getbin :: Ptr RawTH1I -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinCenter"-               c_th1i_getbincenter :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinCenter" c_th1i_getbincenter ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinContent1"-               c_th1i_getbincontent1 :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinContent1" c_th1i_getbincontent1 ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinContent2"-               c_th1i_getbincontent2 :: Ptr RawTH1I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinContent2" c_th1i_getbincontent2 ::+               Ptr RawTH1I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinContent3"-               c_th1i_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinContent3" c_th1i_getbincontent3 ::                Ptr RawTH1I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinError1"-               c_th1i_getbinerror1 :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinError1" c_th1i_getbinerror1 ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinError2"-               c_th1i_getbinerror2 :: Ptr RawTH1I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinError2" c_th1i_getbinerror2 ::+               Ptr RawTH1I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinError3"-               c_th1i_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinError3" c_th1i_getbinerror3 ::                Ptr RawTH1I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinLowEdge"-               c_th1i_getbinlowedge :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinLowEdge" c_th1i_getbinlowedge ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetBinWidth"-               c_th1i_getbinwidth :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetBinWidth" c_th1i_getbinwidth ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetCellContent"-               c_th1i_getcellcontent :: Ptr RawTH1I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetCellContent" c_th1i_getcellcontent ::+               Ptr RawTH1I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetCellError"-               c_th1i_getcellerror :: Ptr RawTH1I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetCellError" c_th1i_getcellerror ::+               Ptr RawTH1I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetEntries"-               c_th1i_getentries :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetEntries" c_th1i_getentries ::+               Ptr RawTH1I -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1I.h TH1I_GetEffectiveEntries"                c_th1i_geteffectiveentries :: Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetFunction"-               c_th1i_getfunction :: Ptr RawTH1I -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetFunction" c_th1i_getfunction ::+               Ptr RawTH1I -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetDimension"-               c_th1i_getdimension :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetDimension" c_th1i_getdimension ::+               Ptr RawTH1I -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetKurtosis"-               c_th1i_getkurtosis :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetKurtosis" c_th1i_getkurtosis ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetLowEdge"-               c_th1i_getlowedge :: Ptr RawTH1I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetLowEdge" c_th1i_getlowedge ::+               Ptr RawTH1I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_getMaximumTH1"-               c_th1i_getmaximumth1 :: Ptr RawTH1I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getMaximumTH1" c_th1i_getmaximumth1 ::+               Ptr RawTH1I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMaximumBin"-               c_th1i_getmaximumbin :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMaximumBin" c_th1i_getmaximumbin ::+               Ptr RawTH1I -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMaximumStored"-               c_th1i_getmaximumstored :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMaximumStored" c_th1i_getmaximumstored ::+               Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_getMinimumTH1"-               c_th1i_getminimumth1 :: Ptr RawTH1I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getMinimumTH1" c_th1i_getminimumth1 ::+               Ptr RawTH1I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMinimumBin"-               c_th1i_getminimumbin :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMinimumBin" c_th1i_getminimumbin ::+               Ptr RawTH1I -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMinimumStored"-               c_th1i_getminimumstored :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMinimumStored" c_th1i_getminimumstored ::+               Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMean"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetMean"                c_th1i_getmean :: Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMeanError"-               c_th1i_getmeanerror :: Ptr RawTH1I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMeanError" c_th1i_getmeanerror ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetNbinsX"                c_th1i_getnbinsx :: Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetNbinsY"                c_th1i_getnbinsy :: Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetNbinsZ"                c_th1i_getnbinsz :: Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_getQuantilesTH1"-               c_th1i_getquantilesth1 ::-               Ptr RawTH1I -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_getQuantilesTH1" c_th1i_getquantilesth1 ::+               Ptr RawTH1I -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetRandom"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetRandom"                c_th1i_getrandom :: Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetStats"-               c_th1i_getstats :: Ptr RawTH1I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetStats"+               c_th1i_getstats :: Ptr RawTH1I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetSumOfWeights"-               c_th1i_getsumofweights :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetSumOfWeights" c_th1i_getsumofweights ::+               Ptr RawTH1I -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetSumw2"                c_th1i_getsumw2 :: Ptr RawTH1I -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetSumw2N"                c_th1i_getsumw2n :: Ptr RawTH1I -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetRMS"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetRMS"                c_th1i_getrms :: Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetRMSError"-               c_th1i_getrmserror :: Ptr RawTH1I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1I.h TH1I_GetSkewness"-               c_th1i_getskewness :: Ptr RawTH1I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1I.h TH1I_integral1"-               c_th1i_integral1 ::-               Ptr RawTH1I -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1I.h TH1I_interpolate1"-               c_th1i_interpolate1 :: Ptr RawTH1I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetRMSError" c_th1i_getrmserror ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_interpolate2"-               c_th1i_interpolate2 ::-               Ptr RawTH1I -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetSkewness" c_th1i_getskewness ::+               Ptr RawTH1I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_interpolate3"-               c_th1i_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_interpolate3" c_th1i_interpolate3 ::                Ptr RawTH1I -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_KolmogorovTest"-               c_th1i_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_KolmogorovTest" c_th1i_kolmogorovtest ::                Ptr RawTH1I -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1I.h TH1I_LabelsDeflate"-               c_th1i_labelsdeflate :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_LabelsDeflate" c_th1i_labelsdeflate ::+               Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_LabelsInflate"-               c_th1i_labelsinflate :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_LabelsInflate" c_th1i_labelsinflate ::+               Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_LabelsOption"-               c_th1i_labelsoption :: Ptr RawTH1I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_LabelsOption" c_th1i_labelsoption ::+               Ptr RawTH1I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_multiflyF"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_multiflyF"                c_th1i_multiflyf :: Ptr RawTH1I -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Multiply"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Multiply"                c_th1i_multiply ::                Ptr RawTH1I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_PutStats"-               c_th1i_putstats :: Ptr RawTH1I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_PutStats"+               c_th1i_putstats :: Ptr RawTH1I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Rebin" c_th1i_rebin-               ::-               Ptr RawTH1I -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Rebin"+               c_th1i_rebin ::+               Ptr RawTH1I -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1I.h TH1I_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_RebinAxis"                c_th1i_rebinaxis :: Ptr RawTH1I -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Rebuild"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Rebuild"                c_th1i_rebuild :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_RecursiveRemove"-               c_th1i_recursiveremove :: Ptr RawTH1I -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_RecursiveRemove" c_th1i_recursiveremove ::+               Ptr RawTH1I -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Reset" c_th1i_reset-               :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Reset"+               c_th1i_reset :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_ResetStats"-               c_th1i_resetstats :: Ptr RawTH1I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_ResetStats" c_th1i_resetstats ::+               Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Scale" c_th1i_scale-               :: Ptr RawTH1I -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Scale"+               c_th1i_scale :: Ptr RawTH1I -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setAxisColorA"-               c_th1i_setaxiscolora :: Ptr RawTH1I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setAxisColorA" c_th1i_setaxiscolora ::+               Ptr RawTH1I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetAxisRange"-               c_th1i_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetAxisRange" c_th1i_setaxisrange ::                Ptr RawTH1I -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetBarOffset"-               c_th1i_setbaroffset :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetBarOffset" c_th1i_setbaroffset ::+               Ptr RawTH1I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetBarWidth"-               c_th1i_setbarwidth :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetBarWidth" c_th1i_setbarwidth ::+               Ptr RawTH1I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinContent1"-               c_th1i_setbincontent1 :: Ptr RawTH1I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinContent1" c_th1i_setbincontent1 ::+               Ptr RawTH1I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinContent2"-               c_th1i_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinContent2" c_th1i_setbincontent2 ::                Ptr RawTH1I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinContent3"-               c_th1i_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinContent3" c_th1i_setbincontent3 ::                Ptr RawTH1I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinError1"-               c_th1i_setbinerror1 :: Ptr RawTH1I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinError1" c_th1i_setbinerror1 ::+               Ptr RawTH1I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinError2"-               c_th1i_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinError2" c_th1i_setbinerror2 ::                Ptr RawTH1I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBinError3"-               c_th1i_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setBinError3" c_th1i_setbinerror3 ::                Ptr RawTH1I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBins1"-               c_th1i_setbins1 :: Ptr RawTH1I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_setBins1"+               c_th1i_setbins1 :: Ptr RawTH1I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBins2"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_setBins2"                c_th1i_setbins2 ::-               Ptr RawTH1I ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1I -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setBins3"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_setBins3"                c_th1i_setbins3 ::                Ptr RawTH1I ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetBinsLength"-               c_th1i_setbinslength :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetBinsLength" c_th1i_setbinslength ::+               Ptr RawTH1I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetBuffer"                c_th1i_setbuffer :: Ptr RawTH1I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetCellContent"-               c_th1i_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetCellContent" c_th1i_setcellcontent ::                Ptr RawTH1I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetContent"-               c_th1i_setcontent :: Ptr RawTH1I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetContent" c_th1i_setcontent ::+               Ptr RawTH1I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetContour"-               c_th1i_setcontour :: Ptr RawTH1I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetContour" c_th1i_setcontour ::+               Ptr RawTH1I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetContourLevel"-               c_th1i_setcontourlevel :: Ptr RawTH1I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetContourLevel" c_th1i_setcontourlevel ::+               Ptr RawTH1I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetDirectory"-               c_th1i_setdirectory :: Ptr RawTH1I -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetDirectory" c_th1i_setdirectory ::+               Ptr RawTH1I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetEntries"-               c_th1i_setentries :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetEntries" c_th1i_setentries ::+               Ptr RawTH1I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetError"-               c_th1i_seterror :: Ptr RawTH1I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetError"+               c_th1i_seterror :: Ptr RawTH1I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setLabelColorA"-               c_th1i_setlabelcolora :: Ptr RawTH1I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setLabelColorA" c_th1i_setlabelcolora ::+               Ptr RawTH1I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setLabelSizeA"-               c_th1i_setlabelsizea :: Ptr RawTH1I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setLabelSizeA" c_th1i_setlabelsizea ::+               Ptr RawTH1I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setLabelFontA"-               c_th1i_setlabelfonta :: Ptr RawTH1I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setLabelFontA" c_th1i_setlabelfonta ::+               Ptr RawTH1I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_setLabelOffsetA"-               c_th1i_setlabeloffseta ::-               Ptr RawTH1I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_setLabelOffsetA" c_th1i_setlabeloffseta ::+               Ptr RawTH1I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetMaximum"-               c_th1i_setmaximum :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetMaximum" c_th1i_setmaximum ::+               Ptr RawTH1I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetMinimum"-               c_th1i_setminimum :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetMinimum" c_th1i_setminimum ::+               Ptr RawTH1I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetNormFactor"-               c_th1i_setnormfactor :: Ptr RawTH1I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetNormFactor" c_th1i_setnormfactor ::+               Ptr RawTH1I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetStats"-               c_th1i_setstats :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetStats"+               c_th1i_setstats :: Ptr RawTH1I -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetOption"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetOption"                c_th1i_setoption :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetXTitle"                c_th1i_setxtitle :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetYTitle"                c_th1i_setytitle :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetZTitle"                c_th1i_setztitle :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_ShowBackground"-               c_th1i_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_ShowBackground" c_th1i_showbackground ::                Ptr RawTH1I -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1I.h TH1I_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_ShowPeaks"                c_th1i_showpeaks ::                Ptr RawTH1I -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_Smooth"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Smooth"                c_th1i_smooth :: Ptr RawTH1I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Sumw2" c_th1i_sumw2-               :: Ptr RawTH1I -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Sumw2"+               c_th1i_sumw2 :: Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetName"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetName"                c_th1i_setname :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetNameTitle"-               c_th1i_setnametitle :: Ptr RawTH1I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetNameTitle" c_th1i_setnametitle ::+               Ptr RawTH1I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetTitle"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetTitle"                c_th1i_settitle :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetLineColor"-               c_th1i_getlinecolor :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetLineColor" c_th1i_getlinecolor ::+               Ptr RawTH1I -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetLineStyle"-               c_th1i_getlinestyle :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetLineStyle" c_th1i_getlinestyle ::+               Ptr RawTH1I -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetLineWidth"-               c_th1i_getlinewidth :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetLineWidth" c_th1i_getlinewidth ::+               Ptr RawTH1I -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_ResetAttLine"-               c_th1i_resetattline :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_ResetAttLine" c_th1i_resetattline ::+               Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetLineAttributes"-               c_th1i_setlineattributes :: Ptr RawTH1I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetLineAttributes" c_th1i_setlineattributes+               :: Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetLineColor"-               c_th1i_setlinecolor :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetLineColor" c_th1i_setlinecolor ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetLineStyle"-               c_th1i_setlinestyle :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetLineStyle" c_th1i_setlinestyle ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetLineWidth"-               c_th1i_setlinewidth :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetLineWidth" c_th1i_setlinewidth ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetFillColor"-               c_th1i_setfillcolor :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetFillColor" c_th1i_setfillcolor ::+               Ptr RawTH1I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetFillStyle"-               c_th1i_setfillstyle :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetFillStyle" c_th1i_setfillstyle ::+               Ptr RawTH1I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMarkerColor"-               c_th1i_getmarkercolor :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMarkerColor" c_th1i_getmarkercolor ::+               Ptr RawTH1I -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMarkerStyle"-               c_th1i_getmarkerstyle :: Ptr RawTH1I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMarkerStyle" c_th1i_getmarkerstyle ::+               Ptr RawTH1I -> IO CShort -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetMarkerSize"-               c_th1i_getmarkersize :: Ptr RawTH1I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_GetMarkerSize" c_th1i_getmarkersize ::+               Ptr RawTH1I -> IO CFloat -foreign import ccall safe "HROOTHistTH1I.h TH1I_ResetAttMarker"-               c_th1i_resetattmarker :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_ResetAttMarker" c_th1i_resetattmarker ::+               Ptr RawTH1I -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1I.h TH1I_SetMarkerAttributes"                c_th1i_setmarkerattributes :: Ptr RawTH1I -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetMarkerColor"-               c_th1i_setmarkercolor :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetMarkerColor" c_th1i_setmarkercolor ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetMarkerStyle"-               c_th1i_setmarkerstyle :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetMarkerStyle" c_th1i_setmarkerstyle ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SetMarkerSize"-               c_th1i_setmarkersize :: Ptr RawTH1I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_SetMarkerSize" c_th1i_setmarkersize ::+               Ptr RawTH1I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Draw" c_th1i_draw-               :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Clear"+               c_th1i_clear :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_FindObject"-               c_th1i_findobject :: Ptr RawTH1I -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Draw"+               c_th1i_draw :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_GetName"+foreign import ccall interruptible+               "HROOTHistTH1I.h TH1I_FindObject" c_th1i_findobject ::+               Ptr RawTH1I -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetName"                c_th1i_getname :: Ptr RawTH1I -> IO CString -foreign import ccall safe "HROOTHistTH1I.h TH1I_IsA" c_th1i_isa ::-               Ptr RawTH1I -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_IsA"+               c_th1i_isa :: Ptr RawTH1I -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1I.h TH1I_Paint" c_th1i_paint-               :: Ptr RawTH1I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Paint"+               c_th1i_paint :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_printObj"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_printObj"                c_th1i_printobj :: Ptr RawTH1I -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_SaveAs"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SaveAs"                c_th1i_saveas :: Ptr RawTH1I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1I.h TH1I_Write" c_th1i_write-               :: Ptr RawTH1I -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Write"+               c_th1i_write :: Ptr RawTH1I -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1I.h TH1I_delete"+foreign import ccall interruptible "HROOTHistTH1I.h TH1I_Write_"+               c_th1i_write_ :: Ptr RawTH1I -> IO CInt++foreign import ccall interruptible "HROOTHistTH1I.h TH1I_delete"                c_th1i_delete :: Ptr RawTH1I -> IO ()++foreign import ccall interruptible "HROOTHistTH1I.h TH1I_GetAt"+               c_th1i_getat :: Ptr RawTH1I -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetArray"+               c_th1i_setarray :: Ptr RawTH1I -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1I.h TH1I_SetAt"+               c_th1i_setat :: Ptr RawTH1I -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH1I/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1I.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1I.RawType import HROOT.Hist.TH1I.FFI import HROOT.Hist.TH1I.Interface import HROOT.Hist.TH1I.Cast+import HROOT.Hist.TH1I.RawType+import HROOT.Hist.TH1I.Cast+import HROOT.Hist.TH1I.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -48,20 +57,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1I TH1I+instance () => ITH1I (TH1I) where -instance ITH1 TH1I where+instance () => ITH1 (TH1I) where         add = xform2 c_th1i_add         addBinContent = xform2 c_th1i_addbincontent         chi2Test = xform3 c_th1i_chi2test-        computeIntegral = xform0 c_th1i_computeintegral         directoryAutoAdd = xform1 c_th1i_directoryautoadd         divide = xform5 c_th1i_divide         drawCopyTH1 = xform1 c_th1i_drawcopyth1@@ -133,9 +141,6 @@         getRMS = xform1 c_th1i_getrms         getRMSError = xform1 c_th1i_getrmserror         getSkewness = xform1 c_th1i_getskewness-        integral1 = xform3 c_th1i_integral1-        interpolate1 = xform1 c_th1i_interpolate1-        interpolate2 = xform2 c_th1i_interpolate2         interpolate3 = xform3 c_th1i_interpolate3         kolmogorovTest = xform2 c_th1i_kolmogorovtest         labelsDeflate = xform1 c_th1i_labelsdeflate@@ -190,14 +195,14 @@         smooth = xform2 c_th1i_smooth         sumw2 = xform0 c_th1i_sumw2 -instance ITArrayI TH1I+instance () => ITArrayI (TH1I) where -instance ITNamed TH1I where+instance () => ITNamed (TH1I) where         setName = xform1 c_th1i_setname         setNameTitle = xform2 c_th1i_setnametitle         setTitle = xform1 c_th1i_settitle -instance ITAttLine TH1I where+instance () => ITAttLine (TH1I) where         getLineColor = xform0 c_th1i_getlinecolor         getLineStyle = xform0 c_th1i_getlinestyle         getLineWidth = xform0 c_th1i_getlinewidth@@ -207,11 +212,11 @@         setLineStyle = xform1 c_th1i_setlinestyle         setLineWidth = xform1 c_th1i_setlinewidth -instance ITAttFill TH1I where+instance () => ITAttFill (TH1I) where         setFillColor = xform1 c_th1i_setfillcolor         setFillStyle = xform1 c_th1i_setfillstyle -instance ITAttMarker TH1I where+instance () => ITAttMarker (TH1I) where         getMarkerColor = xform0 c_th1i_getmarkercolor         getMarkerStyle = xform0 c_th1i_getmarkerstyle         getMarkerSize = xform0 c_th1i_getmarkersize@@ -221,7 +226,8 @@         setMarkerStyle = xform1 c_th1i_setmarkerstyle         setMarkerSize = xform1 c_th1i_setmarkersize -instance ITObject TH1I where+instance () => ITObject (TH1I) where+        clear = xform1 c_th1i_clear         draw = xform1 c_th1i_draw         findObject = xform1 c_th1i_findobject         getName = xform0 c_th1i_getname@@ -230,8 +236,12 @@         printObj = xform1 c_th1i_printobj         saveAs = xform2 c_th1i_saveas         write = xform3 c_th1i_write+        write_ = xform0 c_th1i_write_ -instance IDeletable TH1I where+instance () => IDeletable (TH1I) where         delete = xform0 c_th1i_delete -instance ITArray TH1I+instance () => ITArray (TH1I) where+        getAt = xform1 c_th1i_getat+        setArray = xform1 c_th1i_setarray+        setAt = xform2 c_th1i_setat
src/HROOT/Hist/TH1I/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1I.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayI.Interface -class (ITH1 a, ITArrayI a) => ITH1I a+class (ITH1 a, ITArrayI a) => ITH1I a where  upcastTH1I :: forall a . (FPtr a, ITH1I a) => a -> TH1I upcastTH1I h
src/HROOT/Hist/TH1I/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1I  newtype TH1I = TH1I (Ptr RawTH1I)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1I where+instance () => FPtr (TH1I) where         type Raw TH1I = RawTH1I         get_fptr (TH1I ptr) = ptr         cast_fptr_to_obj = TH1I
src/HROOT/Hist/TH1K/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1K.RawType import HROOT.Hist.TH1K.Interface -instance (ITH1K a, FPtr a) => Castable a (Ptr RawTH1K) where+instance (ITH1K a, FPtr a) => Castable (a) (Ptr RawTH1K) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1K (Ptr RawTH1K) where+instance () => Castable (TH1K) (Ptr RawTH1K) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1K/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1K.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1K.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,524 +14,610 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1K.h TH1K_Add" c_th1k_add ::-               Ptr RawTH1K -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Add"+               c_th1k_add :: Ptr RawTH1K -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_AddBinContent"-               c_th1k_addbincontent :: Ptr RawTH1K -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_AddBinContent" c_th1k_addbincontent ::+               Ptr RawTH1K -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Chi2Test"                c_th1k_chi2test ::-               Ptr RawTH1K -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1K.h TH1K_ComputeIntegral"-               c_th1k_computeintegral :: Ptr RawTH1K -> IO CDouble+               Ptr RawTH1K -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_DirectoryAutoAdd"-               c_th1k_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_DirectoryAutoAdd" c_th1k_directoryautoadd ::                Ptr RawTH1K -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Divide"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Divide"                c_th1k_divide ::                Ptr RawTH1K ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_drawCopyTH1"-               c_th1k_drawcopyth1 :: Ptr RawTH1K -> CString -> IO (Ptr RawTH1K)+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_drawCopyTH1" c_th1k_drawcopyth1 ::+               Ptr RawTH1K -> CString -> IO (Ptr RawTH1K) -foreign import ccall safe "HROOTHistTH1K.h TH1K_DrawNormalized"-               c_th1k_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_DrawNormalized" c_th1k_drawnormalized ::                Ptr RawTH1K -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1K.h TH1K_drawPanelTH1"-               c_th1k_drawpanelth1 :: Ptr RawTH1K -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_drawPanelTH1" c_th1k_drawpanelth1 ::+               Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_BufferEmpty"-               c_th1k_bufferempty :: Ptr RawTH1K -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_BufferEmpty" c_th1k_bufferempty ::+               Ptr RawTH1K -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_evalF" c_th1k_evalf-               :: Ptr RawTH1K -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_evalF"+               c_th1k_evalf :: Ptr RawTH1K -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_FFT" c_th1k_fft ::+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_FFT"+               c_th1k_fft ::                Ptr RawTH1K -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1K.h TH1K_fill1" c_th1k_fill1-               :: Ptr RawTH1K -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_fill1"+               c_th1k_fill1 :: Ptr RawTH1K -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_fill1w"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_fill1w"                c_th1k_fill1w :: Ptr RawTH1K -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_fillN1"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_fillN1"                c_th1k_filln1 ::-               Ptr RawTH1K ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1K -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_FillRandom"-               c_th1k_fillrandom :: Ptr RawTH1K -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FillRandom" c_th1k_fillrandom ::+               Ptr RawTH1K -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_FindBin"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_FindBin"                c_th1k_findbin ::                Ptr RawTH1K -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_FindFixBin"-               c_th1k_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FindFixBin" c_th1k_findfixbin ::                Ptr RawTH1K -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_FindFirstBinAbove"-               c_th1k_findfirstbinabove ::-               Ptr RawTH1K -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FindFirstBinAbove" c_th1k_findfirstbinabove+               :: Ptr RawTH1K -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_FindLastBinAbove"-               c_th1k_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FindLastBinAbove" c_th1k_findlastbinabove ::                Ptr RawTH1K -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_Fit" c_th1k_fit ::+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Fit"+               c_th1k_fit ::                Ptr RawTH1K ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_FitPanelTH1"-               c_th1k_fitpanelth1 :: Ptr RawTH1K -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FitPanelTH1" c_th1k_fitpanelth1 ::+               Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_getNdivisionA"-               c_th1k_getndivisiona :: Ptr RawTH1K -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getNdivisionA" c_th1k_getndivisiona ::+               Ptr RawTH1K -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_getAxisColorA"-               c_th1k_getaxiscolora :: Ptr RawTH1K -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getAxisColorA" c_th1k_getaxiscolora ::+               Ptr RawTH1K -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_getLabelColorA"-               c_th1k_getlabelcolora :: Ptr RawTH1K -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getLabelColorA" c_th1k_getlabelcolora ::+               Ptr RawTH1K -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_getLabelFontA"-               c_th1k_getlabelfonta :: Ptr RawTH1K -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getLabelFontA" c_th1k_getlabelfonta ::+               Ptr RawTH1K -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_getLabelOffsetA"-               c_th1k_getlabeloffseta :: Ptr RawTH1K -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getLabelOffsetA" c_th1k_getlabeloffseta ::+               Ptr RawTH1K -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_getLabelSizeA"-               c_th1k_getlabelsizea :: Ptr RawTH1K -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getLabelSizeA" c_th1k_getlabelsizea ::+               Ptr RawTH1K -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_getTitleFontA"-               c_th1k_gettitlefonta :: Ptr RawTH1K -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getTitleFontA" c_th1k_gettitlefonta ::+               Ptr RawTH1K -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_getTitleOffsetA"-               c_th1k_gettitleoffseta :: Ptr RawTH1K -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getTitleOffsetA" c_th1k_gettitleoffseta ::+               Ptr RawTH1K -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_getTitleSizeA"-               c_th1k_gettitlesizea :: Ptr RawTH1K -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getTitleSizeA" c_th1k_gettitlesizea ::+               Ptr RawTH1K -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_getTickLengthA"-               c_th1k_getticklengtha :: Ptr RawTH1K -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getTickLengthA" c_th1k_getticklengtha ::+               Ptr RawTH1K -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBarOffset"-               c_th1k_getbaroffset :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBarOffset" c_th1k_getbaroffset ::+               Ptr RawTH1K -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBarWidth"-               c_th1k_getbarwidth :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBarWidth" c_th1k_getbarwidth ::+               Ptr RawTH1K -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetContour"-               c_th1k_getcontour :: Ptr RawTH1K -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetContour" c_th1k_getcontour ::+               Ptr RawTH1K -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetContourLevel"-               c_th1k_getcontourlevel :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetContourLevel" c_th1k_getcontourlevel ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetContourLevelPad"-               c_th1k_getcontourlevelpad :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetContourLevelPad" c_th1k_getcontourlevelpad+               :: Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBin"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetBin"                c_th1k_getbin :: Ptr RawTH1K -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinCenter"-               c_th1k_getbincenter :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinCenter" c_th1k_getbincenter ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinContent1"-               c_th1k_getbincontent1 :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinContent1" c_th1k_getbincontent1 ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinContent2"-               c_th1k_getbincontent2 :: Ptr RawTH1K -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinContent2" c_th1k_getbincontent2 ::+               Ptr RawTH1K -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinContent3"-               c_th1k_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinContent3" c_th1k_getbincontent3 ::                Ptr RawTH1K -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinError1"-               c_th1k_getbinerror1 :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinError1" c_th1k_getbinerror1 ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinError2"-               c_th1k_getbinerror2 :: Ptr RawTH1K -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinError2" c_th1k_getbinerror2 ::+               Ptr RawTH1K -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinError3"-               c_th1k_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinError3" c_th1k_getbinerror3 ::                Ptr RawTH1K -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinLowEdge"-               c_th1k_getbinlowedge :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinLowEdge" c_th1k_getbinlowedge ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetBinWidth"-               c_th1k_getbinwidth :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetBinWidth" c_th1k_getbinwidth ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetCellContent"-               c_th1k_getcellcontent :: Ptr RawTH1K -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetCellContent" c_th1k_getcellcontent ::+               Ptr RawTH1K -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetCellError"-               c_th1k_getcellerror :: Ptr RawTH1K -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetCellError" c_th1k_getcellerror ::+               Ptr RawTH1K -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetEntries"-               c_th1k_getentries :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetEntries" c_th1k_getentries ::+               Ptr RawTH1K -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1K.h TH1K_GetEffectiveEntries"                c_th1k_geteffectiveentries :: Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetFunction"-               c_th1k_getfunction :: Ptr RawTH1K -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetFunction" c_th1k_getfunction ::+               Ptr RawTH1K -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetDimension"-               c_th1k_getdimension :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetDimension" c_th1k_getdimension ::+               Ptr RawTH1K -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetKurtosis"-               c_th1k_getkurtosis :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetKurtosis" c_th1k_getkurtosis ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetLowEdge"-               c_th1k_getlowedge :: Ptr RawTH1K -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetLowEdge" c_th1k_getlowedge ::+               Ptr RawTH1K -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_getMaximumTH1"-               c_th1k_getmaximumth1 :: Ptr RawTH1K -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getMaximumTH1" c_th1k_getmaximumth1 ::+               Ptr RawTH1K -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMaximumBin"-               c_th1k_getmaximumbin :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMaximumBin" c_th1k_getmaximumbin ::+               Ptr RawTH1K -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMaximumStored"-               c_th1k_getmaximumstored :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMaximumStored" c_th1k_getmaximumstored ::+               Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_getMinimumTH1"-               c_th1k_getminimumth1 :: Ptr RawTH1K -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getMinimumTH1" c_th1k_getminimumth1 ::+               Ptr RawTH1K -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMinimumBin"-               c_th1k_getminimumbin :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMinimumBin" c_th1k_getminimumbin ::+               Ptr RawTH1K -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMinimumStored"-               c_th1k_getminimumstored :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMinimumStored" c_th1k_getminimumstored ::+               Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMean"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetMean"                c_th1k_getmean :: Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMeanError"-               c_th1k_getmeanerror :: Ptr RawTH1K -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMeanError" c_th1k_getmeanerror ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetNbinsX"                c_th1k_getnbinsx :: Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetNbinsY"                c_th1k_getnbinsy :: Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetNbinsZ"                c_th1k_getnbinsz :: Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_getQuantilesTH1"-               c_th1k_getquantilesth1 ::-               Ptr RawTH1K -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_getQuantilesTH1" c_th1k_getquantilesth1 ::+               Ptr RawTH1K -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetRandom"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetRandom"                c_th1k_getrandom :: Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetStats"-               c_th1k_getstats :: Ptr RawTH1K -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetStats"+               c_th1k_getstats :: Ptr RawTH1K -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetSumOfWeights"-               c_th1k_getsumofweights :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetSumOfWeights" c_th1k_getsumofweights ::+               Ptr RawTH1K -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetSumw2"                c_th1k_getsumw2 :: Ptr RawTH1K -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetSumw2N"                c_th1k_getsumw2n :: Ptr RawTH1K -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetRMS"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetRMS"                c_th1k_getrms :: Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetRMSError"-               c_th1k_getrmserror :: Ptr RawTH1K -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1K.h TH1K_GetSkewness"-               c_th1k_getskewness :: Ptr RawTH1K -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1K.h TH1K_integral1"-               c_th1k_integral1 ::-               Ptr RawTH1K -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1K.h TH1K_interpolate1"-               c_th1k_interpolate1 :: Ptr RawTH1K -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetRMSError" c_th1k_getrmserror ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_interpolate2"-               c_th1k_interpolate2 ::-               Ptr RawTH1K -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetSkewness" c_th1k_getskewness ::+               Ptr RawTH1K -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_interpolate3"-               c_th1k_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_interpolate3" c_th1k_interpolate3 ::                Ptr RawTH1K -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_KolmogorovTest"-               c_th1k_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_KolmogorovTest" c_th1k_kolmogorovtest ::                Ptr RawTH1K -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1K.h TH1K_LabelsDeflate"-               c_th1k_labelsdeflate :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_LabelsDeflate" c_th1k_labelsdeflate ::+               Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_LabelsInflate"-               c_th1k_labelsinflate :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_LabelsInflate" c_th1k_labelsinflate ::+               Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_LabelsOption"-               c_th1k_labelsoption :: Ptr RawTH1K -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_LabelsOption" c_th1k_labelsoption ::+               Ptr RawTH1K -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_multiflyF"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_multiflyF"                c_th1k_multiflyf :: Ptr RawTH1K -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Multiply"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Multiply"                c_th1k_multiply ::                Ptr RawTH1K ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_PutStats"-               c_th1k_putstats :: Ptr RawTH1K -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_PutStats"+               c_th1k_putstats :: Ptr RawTH1K -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Rebin" c_th1k_rebin-               ::-               Ptr RawTH1K -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Rebin"+               c_th1k_rebin ::+               Ptr RawTH1K -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1K.h TH1K_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_RebinAxis"                c_th1k_rebinaxis :: Ptr RawTH1K -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Rebuild"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Rebuild"                c_th1k_rebuild :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_RecursiveRemove"-               c_th1k_recursiveremove :: Ptr RawTH1K -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_RecursiveRemove" c_th1k_recursiveremove ::+               Ptr RawTH1K -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Reset" c_th1k_reset-               :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Reset"+               c_th1k_reset :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_ResetStats"-               c_th1k_resetstats :: Ptr RawTH1K -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_ResetStats" c_th1k_resetstats ::+               Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Scale" c_th1k_scale-               :: Ptr RawTH1K -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Scale"+               c_th1k_scale :: Ptr RawTH1K -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setAxisColorA"-               c_th1k_setaxiscolora :: Ptr RawTH1K -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setAxisColorA" c_th1k_setaxiscolora ::+               Ptr RawTH1K -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetAxisRange"-               c_th1k_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetAxisRange" c_th1k_setaxisrange ::                Ptr RawTH1K -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetBarOffset"-               c_th1k_setbaroffset :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetBarOffset" c_th1k_setbaroffset ::+               Ptr RawTH1K -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetBarWidth"-               c_th1k_setbarwidth :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetBarWidth" c_th1k_setbarwidth ::+               Ptr RawTH1K -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinContent1"-               c_th1k_setbincontent1 :: Ptr RawTH1K -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinContent1" c_th1k_setbincontent1 ::+               Ptr RawTH1K -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinContent2"-               c_th1k_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinContent2" c_th1k_setbincontent2 ::                Ptr RawTH1K -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinContent3"-               c_th1k_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinContent3" c_th1k_setbincontent3 ::                Ptr RawTH1K -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinError1"-               c_th1k_setbinerror1 :: Ptr RawTH1K -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinError1" c_th1k_setbinerror1 ::+               Ptr RawTH1K -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinError2"-               c_th1k_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinError2" c_th1k_setbinerror2 ::                Ptr RawTH1K -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBinError3"-               c_th1k_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setBinError3" c_th1k_setbinerror3 ::                Ptr RawTH1K -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBins1"-               c_th1k_setbins1 :: Ptr RawTH1K -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_setBins1"+               c_th1k_setbins1 :: Ptr RawTH1K -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBins2"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_setBins2"                c_th1k_setbins2 ::-               Ptr RawTH1K ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1K -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setBins3"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_setBins3"                c_th1k_setbins3 ::                Ptr RawTH1K ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetBinsLength"-               c_th1k_setbinslength :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetBinsLength" c_th1k_setbinslength ::+               Ptr RawTH1K -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetBuffer"                c_th1k_setbuffer :: Ptr RawTH1K -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetCellContent"-               c_th1k_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetCellContent" c_th1k_setcellcontent ::                Ptr RawTH1K -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetContent"-               c_th1k_setcontent :: Ptr RawTH1K -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetContent" c_th1k_setcontent ::+               Ptr RawTH1K -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetContour"-               c_th1k_setcontour :: Ptr RawTH1K -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetContour" c_th1k_setcontour ::+               Ptr RawTH1K -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetContourLevel"-               c_th1k_setcontourlevel :: Ptr RawTH1K -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetContourLevel" c_th1k_setcontourlevel ::+               Ptr RawTH1K -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetDirectory"-               c_th1k_setdirectory :: Ptr RawTH1K -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetDirectory" c_th1k_setdirectory ::+               Ptr RawTH1K -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetEntries"-               c_th1k_setentries :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetEntries" c_th1k_setentries ::+               Ptr RawTH1K -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetError"-               c_th1k_seterror :: Ptr RawTH1K -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetError"+               c_th1k_seterror :: Ptr RawTH1K -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setLabelColorA"-               c_th1k_setlabelcolora :: Ptr RawTH1K -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setLabelColorA" c_th1k_setlabelcolora ::+               Ptr RawTH1K -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setLabelSizeA"-               c_th1k_setlabelsizea :: Ptr RawTH1K -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setLabelSizeA" c_th1k_setlabelsizea ::+               Ptr RawTH1K -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setLabelFontA"-               c_th1k_setlabelfonta :: Ptr RawTH1K -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setLabelFontA" c_th1k_setlabelfonta ::+               Ptr RawTH1K -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_setLabelOffsetA"-               c_th1k_setlabeloffseta ::-               Ptr RawTH1K -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_setLabelOffsetA" c_th1k_setlabeloffseta ::+               Ptr RawTH1K -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetMaximum"-               c_th1k_setmaximum :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetMaximum" c_th1k_setmaximum ::+               Ptr RawTH1K -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetMinimum"-               c_th1k_setminimum :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetMinimum" c_th1k_setminimum ::+               Ptr RawTH1K -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetNormFactor"-               c_th1k_setnormfactor :: Ptr RawTH1K -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetNormFactor" c_th1k_setnormfactor ::+               Ptr RawTH1K -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetStats"-               c_th1k_setstats :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetStats"+               c_th1k_setstats :: Ptr RawTH1K -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetOption"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetOption"                c_th1k_setoption :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetXTitle"                c_th1k_setxtitle :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetYTitle"                c_th1k_setytitle :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetZTitle"                c_th1k_setztitle :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_ShowBackground"-               c_th1k_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_ShowBackground" c_th1k_showbackground ::                Ptr RawTH1K -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1K.h TH1K_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_ShowPeaks"                c_th1k_showpeaks ::                Ptr RawTH1K -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_Smooth"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Smooth"                c_th1k_smooth :: Ptr RawTH1K -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Sumw2" c_th1k_sumw2-               :: Ptr RawTH1K -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Sumw2"+               c_th1k_sumw2 :: Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetName"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetName"                c_th1k_setname :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetNameTitle"-               c_th1k_setnametitle :: Ptr RawTH1K -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetNameTitle" c_th1k_setnametitle ::+               Ptr RawTH1K -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetTitle"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetTitle"                c_th1k_settitle :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetLineColor"-               c_th1k_getlinecolor :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetLineColor" c_th1k_getlinecolor ::+               Ptr RawTH1K -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetLineStyle"-               c_th1k_getlinestyle :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetLineStyle" c_th1k_getlinestyle ::+               Ptr RawTH1K -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetLineWidth"-               c_th1k_getlinewidth :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetLineWidth" c_th1k_getlinewidth ::+               Ptr RawTH1K -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_ResetAttLine"-               c_th1k_resetattline :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_ResetAttLine" c_th1k_resetattline ::+               Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetLineAttributes"-               c_th1k_setlineattributes :: Ptr RawTH1K -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetLineAttributes" c_th1k_setlineattributes+               :: Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetLineColor"-               c_th1k_setlinecolor :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetLineColor" c_th1k_setlinecolor ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetLineStyle"-               c_th1k_setlinestyle :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetLineStyle" c_th1k_setlinestyle ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetLineWidth"-               c_th1k_setlinewidth :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetLineWidth" c_th1k_setlinewidth ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetFillColor"-               c_th1k_setfillcolor :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetFillColor" c_th1k_setfillcolor ::+               Ptr RawTH1K -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetFillStyle"-               c_th1k_setfillstyle :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetFillStyle" c_th1k_setfillstyle ::+               Ptr RawTH1K -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMarkerColor"-               c_th1k_getmarkercolor :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMarkerColor" c_th1k_getmarkercolor ::+               Ptr RawTH1K -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMarkerStyle"-               c_th1k_getmarkerstyle :: Ptr RawTH1K -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMarkerStyle" c_th1k_getmarkerstyle ::+               Ptr RawTH1K -> IO CShort -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetMarkerSize"-               c_th1k_getmarkersize :: Ptr RawTH1K -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_GetMarkerSize" c_th1k_getmarkersize ::+               Ptr RawTH1K -> IO CFloat -foreign import ccall safe "HROOTHistTH1K.h TH1K_ResetAttMarker"-               c_th1k_resetattmarker :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_ResetAttMarker" c_th1k_resetattmarker ::+               Ptr RawTH1K -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1K.h TH1K_SetMarkerAttributes"                c_th1k_setmarkerattributes :: Ptr RawTH1K -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetMarkerColor"-               c_th1k_setmarkercolor :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetMarkerColor" c_th1k_setmarkercolor ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetMarkerStyle"-               c_th1k_setmarkerstyle :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetMarkerStyle" c_th1k_setmarkerstyle ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SetMarkerSize"-               c_th1k_setmarkersize :: Ptr RawTH1K -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_SetMarkerSize" c_th1k_setmarkersize ::+               Ptr RawTH1K -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Draw" c_th1k_draw-               :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Clear"+               c_th1k_clear :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_FindObject"-               c_th1k_findobject :: Ptr RawTH1K -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Draw"+               c_th1k_draw :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_GetName"+foreign import ccall interruptible+               "HROOTHistTH1K.h TH1K_FindObject" c_th1k_findobject ::+               Ptr RawTH1K -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetName"                c_th1k_getname :: Ptr RawTH1K -> IO CString -foreign import ccall safe "HROOTHistTH1K.h TH1K_IsA" c_th1k_isa ::-               Ptr RawTH1K -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_IsA"+               c_th1k_isa :: Ptr RawTH1K -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1K.h TH1K_Paint" c_th1k_paint-               :: Ptr RawTH1K -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Paint"+               c_th1k_paint :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_printObj"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_printObj"                c_th1k_printobj :: Ptr RawTH1K -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_SaveAs"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SaveAs"                c_th1k_saveas :: Ptr RawTH1K -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1K.h TH1K_Write" c_th1k_write-               :: Ptr RawTH1K -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Write"+               c_th1k_write :: Ptr RawTH1K -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1K.h TH1K_delete"+foreign import ccall interruptible "HROOTHistTH1K.h TH1K_Write_"+               c_th1k_write_ :: Ptr RawTH1K -> IO CInt++foreign import ccall interruptible "HROOTHistTH1K.h TH1K_delete"                c_th1k_delete :: Ptr RawTH1K -> IO ()++foreign import ccall interruptible "HROOTHistTH1K.h TH1K_GetAt"+               c_th1k_getat :: Ptr RawTH1K -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetArray"+               c_th1k_setarray :: Ptr RawTH1K -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1K.h TH1K_SetAt"+               c_th1k_setat :: Ptr RawTH1K -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH1K/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1K.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1K.RawType import HROOT.Hist.TH1K.FFI import HROOT.Hist.TH1K.Interface import HROOT.Hist.TH1K.Cast+import HROOT.Hist.TH1K.RawType+import HROOT.Hist.TH1K.Cast+import HROOT.Hist.TH1K.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -48,20 +57,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1K TH1K+instance () => ITH1K (TH1K) where -instance ITH1 TH1K where+instance () => ITH1 (TH1K) where         add = xform2 c_th1k_add         addBinContent = xform2 c_th1k_addbincontent         chi2Test = xform3 c_th1k_chi2test-        computeIntegral = xform0 c_th1k_computeintegral         directoryAutoAdd = xform1 c_th1k_directoryautoadd         divide = xform5 c_th1k_divide         drawCopyTH1 = xform1 c_th1k_drawcopyth1@@ -133,9 +141,6 @@         getRMS = xform1 c_th1k_getrms         getRMSError = xform1 c_th1k_getrmserror         getSkewness = xform1 c_th1k_getskewness-        integral1 = xform3 c_th1k_integral1-        interpolate1 = xform1 c_th1k_interpolate1-        interpolate2 = xform2 c_th1k_interpolate2         interpolate3 = xform3 c_th1k_interpolate3         kolmogorovTest = xform2 c_th1k_kolmogorovtest         labelsDeflate = xform1 c_th1k_labelsdeflate@@ -190,14 +195,14 @@         smooth = xform2 c_th1k_smooth         sumw2 = xform0 c_th1k_sumw2 -instance ITArrayF TH1K+instance () => ITArrayF (TH1K) where -instance ITNamed TH1K where+instance () => ITNamed (TH1K) where         setName = xform1 c_th1k_setname         setNameTitle = xform2 c_th1k_setnametitle         setTitle = xform1 c_th1k_settitle -instance ITAttLine TH1K where+instance () => ITAttLine (TH1K) where         getLineColor = xform0 c_th1k_getlinecolor         getLineStyle = xform0 c_th1k_getlinestyle         getLineWidth = xform0 c_th1k_getlinewidth@@ -207,11 +212,11 @@         setLineStyle = xform1 c_th1k_setlinestyle         setLineWidth = xform1 c_th1k_setlinewidth -instance ITAttFill TH1K where+instance () => ITAttFill (TH1K) where         setFillColor = xform1 c_th1k_setfillcolor         setFillStyle = xform1 c_th1k_setfillstyle -instance ITAttMarker TH1K where+instance () => ITAttMarker (TH1K) where         getMarkerColor = xform0 c_th1k_getmarkercolor         getMarkerStyle = xform0 c_th1k_getmarkerstyle         getMarkerSize = xform0 c_th1k_getmarkersize@@ -221,7 +226,8 @@         setMarkerStyle = xform1 c_th1k_setmarkerstyle         setMarkerSize = xform1 c_th1k_setmarkersize -instance ITObject TH1K where+instance () => ITObject (TH1K) where+        clear = xform1 c_th1k_clear         draw = xform1 c_th1k_draw         findObject = xform1 c_th1k_findobject         getName = xform0 c_th1k_getname@@ -230,8 +236,12 @@         printObj = xform1 c_th1k_printobj         saveAs = xform2 c_th1k_saveas         write = xform3 c_th1k_write+        write_ = xform0 c_th1k_write_ -instance IDeletable TH1K where+instance () => IDeletable (TH1K) where         delete = xform0 c_th1k_delete -instance ITArray TH1K+instance () => ITArray (TH1K) where+        getAt = xform1 c_th1k_getat+        setArray = xform1 c_th1k_setarray+        setAt = xform2 c_th1k_setat
src/HROOT/Hist/TH1K/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1K.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayF.Interface -class (ITH1 a, ITArrayF a) => ITH1K a+class (ITH1 a, ITArrayF a) => ITH1K a where  upcastTH1K :: forall a . (FPtr a, ITH1K a) => a -> TH1K upcastTH1K h
src/HROOT/Hist/TH1K/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1K  newtype TH1K = TH1K (Ptr RawTH1K)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1K where+instance () => FPtr (TH1K) where         type Raw TH1K = RawTH1K         get_fptr (TH1K ptr) = ptr         cast_fptr_to_obj = TH1K
src/HROOT/Hist/TH1S/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH1S.RawType import HROOT.Hist.TH1S.Interface -instance (ITH1S a, FPtr a) => Castable a (Ptr RawTH1S) where+instance (ITH1S a, FPtr a) => Castable (a) (Ptr RawTH1S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH1S (Ptr RawTH1S) where+instance () => Castable (TH1S) (Ptr RawTH1S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH1S/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH1S.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1S.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -11,524 +14,610 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH1S.h TH1S_Add" c_th1s_add ::-               Ptr RawTH1S -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Add"+               c_th1s_add :: Ptr RawTH1S -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_AddBinContent"-               c_th1s_addbincontent :: Ptr RawTH1S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_AddBinContent" c_th1s_addbincontent ::+               Ptr RawTH1S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Chi2Test"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Chi2Test"                c_th1s_chi2test ::-               Ptr RawTH1S -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH1S.h TH1S_ComputeIntegral"-               c_th1s_computeintegral :: Ptr RawTH1S -> IO CDouble+               Ptr RawTH1S -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_DirectoryAutoAdd"-               c_th1s_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_DirectoryAutoAdd" c_th1s_directoryautoadd ::                Ptr RawTH1S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Divide"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Divide"                c_th1s_divide ::                Ptr RawTH1S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_drawCopyTH1"-               c_th1s_drawcopyth1 :: Ptr RawTH1S -> CString -> IO (Ptr RawTH1S)+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_drawCopyTH1" c_th1s_drawcopyth1 ::+               Ptr RawTH1S -> CString -> IO (Ptr RawTH1S) -foreign import ccall safe "HROOTHistTH1S.h TH1S_DrawNormalized"-               c_th1s_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_DrawNormalized" c_th1s_drawnormalized ::                Ptr RawTH1S -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1S.h TH1S_drawPanelTH1"-               c_th1s_drawpanelth1 :: Ptr RawTH1S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_drawPanelTH1" c_th1s_drawpanelth1 ::+               Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_BufferEmpty"-               c_th1s_bufferempty :: Ptr RawTH1S -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_BufferEmpty" c_th1s_bufferempty ::+               Ptr RawTH1S -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_evalF" c_th1s_evalf-               :: Ptr RawTH1S -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_evalF"+               c_th1s_evalf :: Ptr RawTH1S -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_FFT" c_th1s_fft ::+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_FFT"+               c_th1s_fft ::                Ptr RawTH1S -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1S.h TH1S_fill1" c_th1s_fill1-               :: Ptr RawTH1S -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_fill1"+               c_th1s_fill1 :: Ptr RawTH1S -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_fill1w"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_fill1w"                c_th1s_fill1w :: Ptr RawTH1S -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_fillN1"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_fillN1"                c_th1s_filln1 ::-               Ptr RawTH1S ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH1S -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_FillRandom"-               c_th1s_fillrandom :: Ptr RawTH1S -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FillRandom" c_th1s_fillrandom ::+               Ptr RawTH1S -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_FindBin"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_FindBin"                c_th1s_findbin ::                Ptr RawTH1S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_FindFixBin"-               c_th1s_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FindFixBin" c_th1s_findfixbin ::                Ptr RawTH1S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_FindFirstBinAbove"-               c_th1s_findfirstbinabove ::-               Ptr RawTH1S -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FindFirstBinAbove" c_th1s_findfirstbinabove+               :: Ptr RawTH1S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_FindLastBinAbove"-               c_th1s_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FindLastBinAbove" c_th1s_findlastbinabove ::                Ptr RawTH1S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_Fit" c_th1s_fit ::+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Fit"+               c_th1s_fit ::                Ptr RawTH1S ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_FitPanelTH1"-               c_th1s_fitpanelth1 :: Ptr RawTH1S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FitPanelTH1" c_th1s_fitpanelth1 ::+               Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_getNdivisionA"-               c_th1s_getndivisiona :: Ptr RawTH1S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getNdivisionA" c_th1s_getndivisiona ::+               Ptr RawTH1S -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_getAxisColorA"-               c_th1s_getaxiscolora :: Ptr RawTH1S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getAxisColorA" c_th1s_getaxiscolora ::+               Ptr RawTH1S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_getLabelColorA"-               c_th1s_getlabelcolora :: Ptr RawTH1S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getLabelColorA" c_th1s_getlabelcolora ::+               Ptr RawTH1S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_getLabelFontA"-               c_th1s_getlabelfonta :: Ptr RawTH1S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getLabelFontA" c_th1s_getlabelfonta ::+               Ptr RawTH1S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_getLabelOffsetA"-               c_th1s_getlabeloffseta :: Ptr RawTH1S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getLabelOffsetA" c_th1s_getlabeloffseta ::+               Ptr RawTH1S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_getLabelSizeA"-               c_th1s_getlabelsizea :: Ptr RawTH1S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getLabelSizeA" c_th1s_getlabelsizea ::+               Ptr RawTH1S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_getTitleFontA"-               c_th1s_gettitlefonta :: Ptr RawTH1S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getTitleFontA" c_th1s_gettitlefonta ::+               Ptr RawTH1S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_getTitleOffsetA"-               c_th1s_gettitleoffseta :: Ptr RawTH1S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getTitleOffsetA" c_th1s_gettitleoffseta ::+               Ptr RawTH1S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_getTitleSizeA"-               c_th1s_gettitlesizea :: Ptr RawTH1S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getTitleSizeA" c_th1s_gettitlesizea ::+               Ptr RawTH1S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_getTickLengthA"-               c_th1s_getticklengtha :: Ptr RawTH1S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getTickLengthA" c_th1s_getticklengtha ::+               Ptr RawTH1S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBarOffset"-               c_th1s_getbaroffset :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBarOffset" c_th1s_getbaroffset ::+               Ptr RawTH1S -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBarWidth"-               c_th1s_getbarwidth :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBarWidth" c_th1s_getbarwidth ::+               Ptr RawTH1S -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetContour"-               c_th1s_getcontour :: Ptr RawTH1S -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetContour" c_th1s_getcontour ::+               Ptr RawTH1S -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetContourLevel"-               c_th1s_getcontourlevel :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetContourLevel" c_th1s_getcontourlevel ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetContourLevelPad"-               c_th1s_getcontourlevelpad :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetContourLevelPad" c_th1s_getcontourlevelpad+               :: Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBin"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetBin"                c_th1s_getbin :: Ptr RawTH1S -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinCenter"-               c_th1s_getbincenter :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinCenter" c_th1s_getbincenter ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinContent1"-               c_th1s_getbincontent1 :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinContent1" c_th1s_getbincontent1 ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinContent2"-               c_th1s_getbincontent2 :: Ptr RawTH1S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinContent2" c_th1s_getbincontent2 ::+               Ptr RawTH1S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinContent3"-               c_th1s_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinContent3" c_th1s_getbincontent3 ::                Ptr RawTH1S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinError1"-               c_th1s_getbinerror1 :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinError1" c_th1s_getbinerror1 ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinError2"-               c_th1s_getbinerror2 :: Ptr RawTH1S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinError2" c_th1s_getbinerror2 ::+               Ptr RawTH1S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinError3"-               c_th1s_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinError3" c_th1s_getbinerror3 ::                Ptr RawTH1S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinLowEdge"-               c_th1s_getbinlowedge :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinLowEdge" c_th1s_getbinlowedge ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetBinWidth"-               c_th1s_getbinwidth :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetBinWidth" c_th1s_getbinwidth ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetCellContent"-               c_th1s_getcellcontent :: Ptr RawTH1S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetCellContent" c_th1s_getcellcontent ::+               Ptr RawTH1S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetCellError"-               c_th1s_getcellerror :: Ptr RawTH1S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetCellError" c_th1s_getcellerror ::+               Ptr RawTH1S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetEntries"-               c_th1s_getentries :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetEntries" c_th1s_getentries ::+               Ptr RawTH1S -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1S.h TH1S_GetEffectiveEntries"                c_th1s_geteffectiveentries :: Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetFunction"-               c_th1s_getfunction :: Ptr RawTH1S -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetFunction" c_th1s_getfunction ::+               Ptr RawTH1S -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetDimension"-               c_th1s_getdimension :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetDimension" c_th1s_getdimension ::+               Ptr RawTH1S -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetKurtosis"-               c_th1s_getkurtosis :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetKurtosis" c_th1s_getkurtosis ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetLowEdge"-               c_th1s_getlowedge :: Ptr RawTH1S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetLowEdge" c_th1s_getlowedge ::+               Ptr RawTH1S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_getMaximumTH1"-               c_th1s_getmaximumth1 :: Ptr RawTH1S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getMaximumTH1" c_th1s_getmaximumth1 ::+               Ptr RawTH1S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMaximumBin"-               c_th1s_getmaximumbin :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMaximumBin" c_th1s_getmaximumbin ::+               Ptr RawTH1S -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMaximumStored"-               c_th1s_getmaximumstored :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMaximumStored" c_th1s_getmaximumstored ::+               Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_getMinimumTH1"-               c_th1s_getminimumth1 :: Ptr RawTH1S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getMinimumTH1" c_th1s_getminimumth1 ::+               Ptr RawTH1S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMinimumBin"-               c_th1s_getminimumbin :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMinimumBin" c_th1s_getminimumbin ::+               Ptr RawTH1S -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMinimumStored"-               c_th1s_getminimumstored :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMinimumStored" c_th1s_getminimumstored ::+               Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMean"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetMean"                c_th1s_getmean :: Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMeanError"-               c_th1s_getmeanerror :: Ptr RawTH1S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMeanError" c_th1s_getmeanerror ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetNbinsX"                c_th1s_getnbinsx :: Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetNbinsY"                c_th1s_getnbinsy :: Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetNbinsZ"                c_th1s_getnbinsz :: Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_getQuantilesTH1"-               c_th1s_getquantilesth1 ::-               Ptr RawTH1S -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_getQuantilesTH1" c_th1s_getquantilesth1 ::+               Ptr RawTH1S -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetRandom"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetRandom"                c_th1s_getrandom :: Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetStats"-               c_th1s_getstats :: Ptr RawTH1S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetStats"+               c_th1s_getstats :: Ptr RawTH1S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetSumOfWeights"-               c_th1s_getsumofweights :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetSumOfWeights" c_th1s_getsumofweights ::+               Ptr RawTH1S -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetSumw2"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetSumw2"                c_th1s_getsumw2 :: Ptr RawTH1S -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetSumw2N"                c_th1s_getsumw2n :: Ptr RawTH1S -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetRMS"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetRMS"                c_th1s_getrms :: Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetRMSError"-               c_th1s_getrmserror :: Ptr RawTH1S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1S.h TH1S_GetSkewness"-               c_th1s_getskewness :: Ptr RawTH1S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH1S.h TH1S_integral1"-               c_th1s_integral1 ::-               Ptr RawTH1S -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH1S.h TH1S_interpolate1"-               c_th1s_interpolate1 :: Ptr RawTH1S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetRMSError" c_th1s_getrmserror ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_interpolate2"-               c_th1s_interpolate2 ::-               Ptr RawTH1S -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetSkewness" c_th1s_getskewness ::+               Ptr RawTH1S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_interpolate3"-               c_th1s_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_interpolate3" c_th1s_interpolate3 ::                Ptr RawTH1S -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_KolmogorovTest"-               c_th1s_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_KolmogorovTest" c_th1s_kolmogorovtest ::                Ptr RawTH1S -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH1S.h TH1S_LabelsDeflate"-               c_th1s_labelsdeflate :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_LabelsDeflate" c_th1s_labelsdeflate ::+               Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_LabelsInflate"-               c_th1s_labelsinflate :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_LabelsInflate" c_th1s_labelsinflate ::+               Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_LabelsOption"-               c_th1s_labelsoption :: Ptr RawTH1S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_LabelsOption" c_th1s_labelsoption ::+               Ptr RawTH1S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_multiflyF"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_multiflyF"                c_th1s_multiflyf :: Ptr RawTH1S -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Multiply"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Multiply"                c_th1s_multiply ::                Ptr RawTH1S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_PutStats"-               c_th1s_putstats :: Ptr RawTH1S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_PutStats"+               c_th1s_putstats :: Ptr RawTH1S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Rebin" c_th1s_rebin-               ::-               Ptr RawTH1S -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Rebin"+               c_th1s_rebin ::+               Ptr RawTH1S -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1S.h TH1S_RebinAxis"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_RebinAxis"                c_th1s_rebinaxis :: Ptr RawTH1S -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Rebuild"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Rebuild"                c_th1s_rebuild :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_RecursiveRemove"-               c_th1s_recursiveremove :: Ptr RawTH1S -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_RecursiveRemove" c_th1s_recursiveremove ::+               Ptr RawTH1S -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Reset" c_th1s_reset-               :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Reset"+               c_th1s_reset :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_ResetStats"-               c_th1s_resetstats :: Ptr RawTH1S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_ResetStats" c_th1s_resetstats ::+               Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Scale" c_th1s_scale-               :: Ptr RawTH1S -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Scale"+               c_th1s_scale :: Ptr RawTH1S -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setAxisColorA"-               c_th1s_setaxiscolora :: Ptr RawTH1S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setAxisColorA" c_th1s_setaxiscolora ::+               Ptr RawTH1S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetAxisRange"-               c_th1s_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetAxisRange" c_th1s_setaxisrange ::                Ptr RawTH1S -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetBarOffset"-               c_th1s_setbaroffset :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetBarOffset" c_th1s_setbaroffset ::+               Ptr RawTH1S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetBarWidth"-               c_th1s_setbarwidth :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetBarWidth" c_th1s_setbarwidth ::+               Ptr RawTH1S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinContent1"-               c_th1s_setbincontent1 :: Ptr RawTH1S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinContent1" c_th1s_setbincontent1 ::+               Ptr RawTH1S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinContent2"-               c_th1s_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinContent2" c_th1s_setbincontent2 ::                Ptr RawTH1S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinContent3"-               c_th1s_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinContent3" c_th1s_setbincontent3 ::                Ptr RawTH1S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinError1"-               c_th1s_setbinerror1 :: Ptr RawTH1S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinError1" c_th1s_setbinerror1 ::+               Ptr RawTH1S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinError2"-               c_th1s_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinError2" c_th1s_setbinerror2 ::                Ptr RawTH1S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBinError3"-               c_th1s_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setBinError3" c_th1s_setbinerror3 ::                Ptr RawTH1S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBins1"-               c_th1s_setbins1 :: Ptr RawTH1S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_setBins1"+               c_th1s_setbins1 :: Ptr RawTH1S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBins2"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_setBins2"                c_th1s_setbins2 ::-               Ptr RawTH1S ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH1S -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setBins3"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_setBins3"                c_th1s_setbins3 ::                Ptr RawTH1S ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetBinsLength"-               c_th1s_setbinslength :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetBinsLength" c_th1s_setbinslength ::+               Ptr RawTH1S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetBuffer"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetBuffer"                c_th1s_setbuffer :: Ptr RawTH1S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetCellContent"-               c_th1s_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetCellContent" c_th1s_setcellcontent ::                Ptr RawTH1S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetContent"-               c_th1s_setcontent :: Ptr RawTH1S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetContent" c_th1s_setcontent ::+               Ptr RawTH1S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetContour"-               c_th1s_setcontour :: Ptr RawTH1S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetContour" c_th1s_setcontour ::+               Ptr RawTH1S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetContourLevel"-               c_th1s_setcontourlevel :: Ptr RawTH1S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetContourLevel" c_th1s_setcontourlevel ::+               Ptr RawTH1S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetDirectory"-               c_th1s_setdirectory :: Ptr RawTH1S -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetDirectory" c_th1s_setdirectory ::+               Ptr RawTH1S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetEntries"-               c_th1s_setentries :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetEntries" c_th1s_setentries ::+               Ptr RawTH1S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetError"-               c_th1s_seterror :: Ptr RawTH1S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetError"+               c_th1s_seterror :: Ptr RawTH1S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setLabelColorA"-               c_th1s_setlabelcolora :: Ptr RawTH1S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setLabelColorA" c_th1s_setlabelcolora ::+               Ptr RawTH1S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setLabelSizeA"-               c_th1s_setlabelsizea :: Ptr RawTH1S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setLabelSizeA" c_th1s_setlabelsizea ::+               Ptr RawTH1S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setLabelFontA"-               c_th1s_setlabelfonta :: Ptr RawTH1S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setLabelFontA" c_th1s_setlabelfonta ::+               Ptr RawTH1S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_setLabelOffsetA"-               c_th1s_setlabeloffseta ::-               Ptr RawTH1S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_setLabelOffsetA" c_th1s_setlabeloffseta ::+               Ptr RawTH1S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetMaximum"-               c_th1s_setmaximum :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetMaximum" c_th1s_setmaximum ::+               Ptr RawTH1S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetMinimum"-               c_th1s_setminimum :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetMinimum" c_th1s_setminimum ::+               Ptr RawTH1S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetNormFactor"-               c_th1s_setnormfactor :: Ptr RawTH1S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetNormFactor" c_th1s_setnormfactor ::+               Ptr RawTH1S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetStats"-               c_th1s_setstats :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetStats"+               c_th1s_setstats :: Ptr RawTH1S -> CBool -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetOption"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetOption"                c_th1s_setoption :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetXTitle"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetXTitle"                c_th1s_setxtitle :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetYTitle"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetYTitle"                c_th1s_setytitle :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetZTitle"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetZTitle"                c_th1s_setztitle :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_ShowBackground"-               c_th1s_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_ShowBackground" c_th1s_showbackground ::                Ptr RawTH1S -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH1S.h TH1S_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_ShowPeaks"                c_th1s_showpeaks ::                Ptr RawTH1S -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_Smooth"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Smooth"                c_th1s_smooth :: Ptr RawTH1S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Sumw2" c_th1s_sumw2-               :: Ptr RawTH1S -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Sumw2"+               c_th1s_sumw2 :: Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetName"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetName"                c_th1s_setname :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetNameTitle"-               c_th1s_setnametitle :: Ptr RawTH1S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetNameTitle" c_th1s_setnametitle ::+               Ptr RawTH1S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetTitle"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetTitle"                c_th1s_settitle :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetLineColor"-               c_th1s_getlinecolor :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetLineColor" c_th1s_getlinecolor ::+               Ptr RawTH1S -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetLineStyle"-               c_th1s_getlinestyle :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetLineStyle" c_th1s_getlinestyle ::+               Ptr RawTH1S -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetLineWidth"-               c_th1s_getlinewidth :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetLineWidth" c_th1s_getlinewidth ::+               Ptr RawTH1S -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_ResetAttLine"-               c_th1s_resetattline :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_ResetAttLine" c_th1s_resetattline ::+               Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetLineAttributes"-               c_th1s_setlineattributes :: Ptr RawTH1S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetLineAttributes" c_th1s_setlineattributes+               :: Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetLineColor"-               c_th1s_setlinecolor :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetLineColor" c_th1s_setlinecolor ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetLineStyle"-               c_th1s_setlinestyle :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetLineStyle" c_th1s_setlinestyle ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetLineWidth"-               c_th1s_setlinewidth :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetLineWidth" c_th1s_setlinewidth ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetFillColor"-               c_th1s_setfillcolor :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetFillColor" c_th1s_setfillcolor ::+               Ptr RawTH1S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetFillStyle"-               c_th1s_setfillstyle :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetFillStyle" c_th1s_setfillstyle ::+               Ptr RawTH1S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMarkerColor"-               c_th1s_getmarkercolor :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMarkerColor" c_th1s_getmarkercolor ::+               Ptr RawTH1S -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMarkerStyle"-               c_th1s_getmarkerstyle :: Ptr RawTH1S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMarkerStyle" c_th1s_getmarkerstyle ::+               Ptr RawTH1S -> IO CShort -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetMarkerSize"-               c_th1s_getmarkersize :: Ptr RawTH1S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_GetMarkerSize" c_th1s_getmarkersize ::+               Ptr RawTH1S -> IO CFloat -foreign import ccall safe "HROOTHistTH1S.h TH1S_ResetAttMarker"-               c_th1s_resetattmarker :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_ResetAttMarker" c_th1s_resetattmarker ::+               Ptr RawTH1S -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH1S.h TH1S_SetMarkerAttributes"                c_th1s_setmarkerattributes :: Ptr RawTH1S -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetMarkerColor"-               c_th1s_setmarkercolor :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetMarkerColor" c_th1s_setmarkercolor ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetMarkerStyle"-               c_th1s_setmarkerstyle :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetMarkerStyle" c_th1s_setmarkerstyle ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SetMarkerSize"-               c_th1s_setmarkersize :: Ptr RawTH1S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_SetMarkerSize" c_th1s_setmarkersize ::+               Ptr RawTH1S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Draw" c_th1s_draw-               :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Clear"+               c_th1s_clear :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_FindObject"-               c_th1s_findobject :: Ptr RawTH1S -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Draw"+               c_th1s_draw :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_GetName"+foreign import ccall interruptible+               "HROOTHistTH1S.h TH1S_FindObject" c_th1s_findobject ::+               Ptr RawTH1S -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetName"                c_th1s_getname :: Ptr RawTH1S -> IO CString -foreign import ccall safe "HROOTHistTH1S.h TH1S_IsA" c_th1s_isa ::-               Ptr RawTH1S -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_IsA"+               c_th1s_isa :: Ptr RawTH1S -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH1S.h TH1S_Paint" c_th1s_paint-               :: Ptr RawTH1S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Paint"+               c_th1s_paint :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_printObj"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_printObj"                c_th1s_printobj :: Ptr RawTH1S -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_SaveAs"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SaveAs"                c_th1s_saveas :: Ptr RawTH1S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH1S.h TH1S_Write" c_th1s_write-               :: Ptr RawTH1S -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Write"+               c_th1s_write :: Ptr RawTH1S -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH1S.h TH1S_delete"+foreign import ccall interruptible "HROOTHistTH1S.h TH1S_Write_"+               c_th1s_write_ :: Ptr RawTH1S -> IO CInt++foreign import ccall interruptible "HROOTHistTH1S.h TH1S_delete"                c_th1s_delete :: Ptr RawTH1S -> IO ()++foreign import ccall interruptible "HROOTHistTH1S.h TH1S_GetAt"+               c_th1s_getat :: Ptr RawTH1S -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetArray"+               c_th1s_setarray :: Ptr RawTH1S -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH1S.h TH1S_SetAt"+               c_th1s_setat :: Ptr RawTH1S -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH1S/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH1S.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH1S.RawType import HROOT.Hist.TH1S.FFI import HROOT.Hist.TH1S.Interface import HROOT.Hist.TH1S.Cast+import HROOT.Hist.TH1S.RawType+import HROOT.Hist.TH1S.Cast+import HROOT.Hist.TH1S.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -48,20 +57,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH1S TH1S+instance () => ITH1S (TH1S) where -instance ITH1 TH1S where+instance () => ITH1 (TH1S) where         add = xform2 c_th1s_add         addBinContent = xform2 c_th1s_addbincontent         chi2Test = xform3 c_th1s_chi2test-        computeIntegral = xform0 c_th1s_computeintegral         directoryAutoAdd = xform1 c_th1s_directoryautoadd         divide = xform5 c_th1s_divide         drawCopyTH1 = xform1 c_th1s_drawcopyth1@@ -133,9 +141,6 @@         getRMS = xform1 c_th1s_getrms         getRMSError = xform1 c_th1s_getrmserror         getSkewness = xform1 c_th1s_getskewness-        integral1 = xform3 c_th1s_integral1-        interpolate1 = xform1 c_th1s_interpolate1-        interpolate2 = xform2 c_th1s_interpolate2         interpolate3 = xform3 c_th1s_interpolate3         kolmogorovTest = xform2 c_th1s_kolmogorovtest         labelsDeflate = xform1 c_th1s_labelsdeflate@@ -190,14 +195,14 @@         smooth = xform2 c_th1s_smooth         sumw2 = xform0 c_th1s_sumw2 -instance ITArrayS TH1S+instance () => ITArrayS (TH1S) where -instance ITNamed TH1S where+instance () => ITNamed (TH1S) where         setName = xform1 c_th1s_setname         setNameTitle = xform2 c_th1s_setnametitle         setTitle = xform1 c_th1s_settitle -instance ITAttLine TH1S where+instance () => ITAttLine (TH1S) where         getLineColor = xform0 c_th1s_getlinecolor         getLineStyle = xform0 c_th1s_getlinestyle         getLineWidth = xform0 c_th1s_getlinewidth@@ -207,11 +212,11 @@         setLineStyle = xform1 c_th1s_setlinestyle         setLineWidth = xform1 c_th1s_setlinewidth -instance ITAttFill TH1S where+instance () => ITAttFill (TH1S) where         setFillColor = xform1 c_th1s_setfillcolor         setFillStyle = xform1 c_th1s_setfillstyle -instance ITAttMarker TH1S where+instance () => ITAttMarker (TH1S) where         getMarkerColor = xform0 c_th1s_getmarkercolor         getMarkerStyle = xform0 c_th1s_getmarkerstyle         getMarkerSize = xform0 c_th1s_getmarkersize@@ -221,7 +226,8 @@         setMarkerStyle = xform1 c_th1s_setmarkerstyle         setMarkerSize = xform1 c_th1s_setmarkersize -instance ITObject TH1S where+instance () => ITObject (TH1S) where+        clear = xform1 c_th1s_clear         draw = xform1 c_th1s_draw         findObject = xform1 c_th1s_findobject         getName = xform0 c_th1s_getname@@ -230,8 +236,12 @@         printObj = xform1 c_th1s_printobj         saveAs = xform2 c_th1s_saveas         write = xform3 c_th1s_write+        write_ = xform0 c_th1s_write_ -instance IDeletable TH1S where+instance () => IDeletable (TH1S) where         delete = xform0 c_th1s_delete -instance ITArray TH1S+instance () => ITArray (TH1S) where+        getAt = xform1 c_th1s_getat+        setArray = xform1 c_th1s_setarray+        setAt = xform2 c_th1s_setat
src/HROOT/Hist/TH1S/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH1S.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH1.Interface import HROOT.Core.TArrayS.Interface -class (ITH1 a, ITArrayS a) => ITH1S a+class (ITH1 a, ITArrayS a) => ITH1S a where  upcastTH1S :: forall a . (FPtr a, ITH1S a) => a -> TH1S upcastTH1S h
src/HROOT/Hist/TH1S/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH1S  newtype TH1S = TH1S (Ptr RawTH1S)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH1S where+instance () => FPtr (TH1S) where         type Raw TH1S = RawTH1S         get_fptr (TH1S ptr) = ptr         cast_fptr_to_obj = TH1S
src/HROOT/Hist/TH2.hs view
@@ -1,6 +1,6 @@ module HROOT.Hist.TH2-       (TH2(..), ITH2(..), upcastTH2, downcastTH2, tH2ProjectionX,-        tH2ProjectionY)+       (TH2(..), ITH2(..), upcastTH2, downcastTH2, tH2_ProjectionX,+        tH2_ProjectionY)        where import HROOT.Hist.TH2.RawType import HROOT.Hist.TH2.Interface
src/HROOT/Hist/TH2/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2.RawType import HROOT.Hist.TH2.Interface -instance (ITH2 a, FPtr a) => Castable a (Ptr RawTH2) where+instance (ITH2 a, FPtr a) => Castable (a) (Ptr RawTH2) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2 (Ptr RawTH2) where+instance () => Castable (TH2) (Ptr RawTH2) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -13,589 +16,655 @@ import HROOT.Hist.TH1D.RawType import HROOT.Core.TObjArray.RawType -foreign import ccall safe "HROOTHistTH2.h TH2_Add" c_th2_add ::-               Ptr RawTH2 -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Add"+               c_th2_add :: Ptr RawTH2 -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_AddBinContent"-               c_th2_addbincontent :: Ptr RawTH2 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_AddBinContent" c_th2_addbincontent ::+               Ptr RawTH2 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2.h TH2_Chi2Test"                c_th2_chi2test ::-               Ptr RawTH2 -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2.h TH2_ComputeIntegral"-               c_th2_computeintegral :: Ptr RawTH2 -> IO CDouble+               Ptr RawTH2 -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_DirectoryAutoAdd"-               c_th2_directoryautoadd :: Ptr RawTH2 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_DirectoryAutoAdd" c_th2_directoryautoadd ::+               Ptr RawTH2 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Divide" c_th2_divide-               ::+foreign import ccall interruptible "HROOTHistTH2.h TH2_Divide"+               c_th2_divide ::                Ptr RawTH2 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_drawCopyTH1"+foreign import ccall interruptible "HROOTHistTH2.h TH2_drawCopyTH1"                c_th2_drawcopyth1 :: Ptr RawTH2 -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2.h TH2_DrawNormalized"-               c_th2_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_DrawNormalized" c_th2_drawnormalized ::                Ptr RawTH2 -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2.h TH2_drawPanelTH1"-               c_th2_drawpanelth1 :: Ptr RawTH2 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_drawPanelTH1" c_th2_drawpanelth1 ::+               Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_BufferEmpty"+foreign import ccall interruptible "HROOTHistTH2.h TH2_BufferEmpty"                c_th2_bufferempty :: Ptr RawTH2 -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_evalF" c_th2_evalf ::-               Ptr RawTH2 -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_evalF"+               c_th2_evalf :: Ptr RawTH2 -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FFT" c_th2_fft ::-               Ptr RawTH2 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2.h TH2_FFT"+               c_th2_fft :: Ptr RawTH2 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2.h TH2_fill1" c_th2_fill1 ::-               Ptr RawTH2 -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_fill1"+               c_th2_fill1 :: Ptr RawTH2 -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_fill1w" c_th2_fill1w-               :: Ptr RawTH2 -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_fill1w"+               c_th2_fill1w :: Ptr RawTH2 -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_fillN1" c_th2_filln1-               ::-               Ptr RawTH2 ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_fillN1"+               c_th2_filln1 ::+               Ptr RawTH2 -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FillRandom"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FillRandom"                c_th2_fillrandom :: Ptr RawTH2 -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FindBin"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FindBin"                c_th2_findbin ::                Ptr RawTH2 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_FindFixBin"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FindFixBin"                c_th2_findfixbin ::                Ptr RawTH2 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_FindFirstBinAbove"-               c_th2_findfirstbinabove :: Ptr RawTH2 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_FindFirstBinAbove" c_th2_findfirstbinabove ::+               Ptr RawTH2 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_FindLastBinAbove"-               c_th2_findlastbinabove :: Ptr RawTH2 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_FindLastBinAbove" c_th2_findlastbinabove ::+               Ptr RawTH2 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_Fit" c_th2_fit ::+foreign import ccall interruptible "HROOTHistTH2.h TH2_Fit"+               c_th2_fit ::                Ptr RawTH2 ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FitPanelTH1"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FitPanelTH1"                c_th2_fitpanelth1 :: Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_getNdivisionA"-               c_th2_getndivisiona :: Ptr RawTH2 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getNdivisionA" c_th2_getndivisiona ::+               Ptr RawTH2 -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_getAxisColorA"-               c_th2_getaxiscolora :: Ptr RawTH2 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getAxisColorA" c_th2_getaxiscolora ::+               Ptr RawTH2 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_getLabelColorA"-               c_th2_getlabelcolora :: Ptr RawTH2 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getLabelColorA" c_th2_getlabelcolora ::+               Ptr RawTH2 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_getLabelFontA"-               c_th2_getlabelfonta :: Ptr RawTH2 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getLabelFontA" c_th2_getlabelfonta ::+               Ptr RawTH2 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_getLabelOffsetA"-               c_th2_getlabeloffseta :: Ptr RawTH2 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getLabelOffsetA" c_th2_getlabeloffseta ::+               Ptr RawTH2 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_getLabelSizeA"-               c_th2_getlabelsizea :: Ptr RawTH2 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getLabelSizeA" c_th2_getlabelsizea ::+               Ptr RawTH2 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_getTitleFontA"-               c_th2_gettitlefonta :: Ptr RawTH2 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getTitleFontA" c_th2_gettitlefonta ::+               Ptr RawTH2 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_getTitleOffsetA"-               c_th2_gettitleoffseta :: Ptr RawTH2 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getTitleOffsetA" c_th2_gettitleoffseta ::+               Ptr RawTH2 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_getTitleSizeA"-               c_th2_gettitlesizea :: Ptr RawTH2 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getTitleSizeA" c_th2_gettitlesizea ::+               Ptr RawTH2 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_getTickLengthA"-               c_th2_getticklengtha :: Ptr RawTH2 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getTickLengthA" c_th2_getticklengtha ::+               Ptr RawTH2 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_GetBarOffset"-               c_th2_getbaroffset :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBarOffset" c_th2_getbaroffset ::+               Ptr RawTH2 -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_GetBarWidth"-               c_th2_getbarwidth :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetBarWidth"+               c_th2_getbarwidth :: Ptr RawTH2 -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_GetContour"-               c_th2_getcontour :: Ptr RawTH2 -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetContour"+               c_th2_getcontour :: Ptr RawTH2 -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetContourLevel"-               c_th2_getcontourlevel :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetContourLevel" c_th2_getcontourlevel ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetContourLevelPad"-               c_th2_getcontourlevelpad :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetContourLevelPad" c_th2_getcontourlevelpad ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBin" c_th2_getbin-               :: Ptr RawTH2 -> CInt -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetBin"+               c_th2_getbin :: Ptr RawTH2 -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinCenter"-               c_th2_getbincenter :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinCenter" c_th2_getbincenter ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinContent1"-               c_th2_getbincontent1 :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinContent1" c_th2_getbincontent1 ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinContent2"-               c_th2_getbincontent2 :: Ptr RawTH2 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinContent2" c_th2_getbincontent2 ::+               Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinContent3"-               c_th2_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinContent3" c_th2_getbincontent3 ::                Ptr RawTH2 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinError1"-               c_th2_getbinerror1 :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinError1" c_th2_getbinerror1 ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinError2"-               c_th2_getbinerror2 :: Ptr RawTH2 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinError2" c_th2_getbinerror2 ::+               Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinError3"-               c_th2_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinError3" c_th2_getbinerror3 ::                Ptr RawTH2 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinLowEdge"-               c_th2_getbinlowedge :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetBinLowEdge" c_th2_getbinlowedge ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetBinWidth"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetBinWidth"                c_th2_getbinwidth :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetCellContent"-               c_th2_getcellcontent :: Ptr RawTH2 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetCellContent" c_th2_getcellcontent ::+               Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetCellError"-               c_th2_getcellerror :: Ptr RawTH2 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetCellError" c_th2_getcellerror ::+               Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetEntries"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetEntries"                c_th2_getentries :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetEffectiveEntries"-               c_th2_geteffectiveentries :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetEffectiveEntries" c_th2_geteffectiveentries+               :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetFunction"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetFunction"                c_th2_getfunction :: Ptr RawTH2 -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2.h TH2_GetDimension"-               c_th2_getdimension :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetDimension" c_th2_getdimension ::+               Ptr RawTH2 -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetKurtosis"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetKurtosis"                c_th2_getkurtosis :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetLowEdge"-               c_th2_getlowedge :: Ptr RawTH2 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetLowEdge"+               c_th2_getlowedge :: Ptr RawTH2 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_getMaximumTH1"-               c_th2_getmaximumth1 :: Ptr RawTH2 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getMaximumTH1" c_th2_getmaximumth1 ::+               Ptr RawTH2 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetMaximumBin"-               c_th2_getmaximumbin :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMaximumBin" c_th2_getmaximumbin ::+               Ptr RawTH2 -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetMaximumStored"-               c_th2_getmaximumstored :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMaximumStored" c_th2_getmaximumstored ::+               Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_getMinimumTH1"-               c_th2_getminimumth1 :: Ptr RawTH2 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getMinimumTH1" c_th2_getminimumth1 ::+               Ptr RawTH2 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetMinimumBin"-               c_th2_getminimumbin :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMinimumBin" c_th2_getminimumbin ::+               Ptr RawTH2 -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetMinimumStored"-               c_th2_getminimumstored :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMinimumStored" c_th2_getminimumstored ::+               Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetMean"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetMean"                c_th2_getmean :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetMeanError"-               c_th2_getmeanerror :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMeanError" c_th2_getmeanerror ::+               Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetNbinsX"                c_th2_getnbinsx :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetNbinsY"                c_th2_getnbinsy :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetNbinsZ"                c_th2_getnbinsz :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_getQuantilesTH1"-               c_th2_getquantilesth1 ::-               Ptr RawTH2 -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getQuantilesTH1" c_th2_getquantilesth1 ::+               Ptr RawTH2 -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetRandom"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetRandom"                c_th2_getrandom :: Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetStats"-               c_th2_getstats :: Ptr RawTH2 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetStats"+               c_th2_getstats :: Ptr RawTH2 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_GetSumOfWeights"-               c_th2_getsumofweights :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetSumOfWeights" c_th2_getsumofweights ::+               Ptr RawTH2 -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetSumw2"                c_th2_getsumw2 :: Ptr RawTH2 -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2.h TH2_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetSumw2N"                c_th2_getsumw2n :: Ptr RawTH2 -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_GetRMS" c_th2_getrms-               :: Ptr RawTH2 -> CInt -> IO CDouble+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetRMS"+               c_th2_getrms :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetRMSError"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetRMSError"                c_th2_getrmserror :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_GetSkewness"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetSkewness"                c_th2_getskewness :: Ptr RawTH2 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_integral1"-               c_th2_integral1 ::-               Ptr RawTH2 -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2.h TH2_interpolate1"-               c_th2_interpolate1 :: Ptr RawTH2 -> CDouble -> IO CDouble--foreign import ccall safe "HROOTHistTH2.h TH2_interpolate2"-               c_th2_interpolate2 ::-               Ptr RawTH2 -> CDouble -> CDouble -> IO CDouble--foreign import ccall safe "HROOTHistTH2.h TH2_interpolate3"-               c_th2_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_interpolate3" c_th2_interpolate3 ::                Ptr RawTH2 -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_KolmogorovTest"-               c_th2_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_KolmogorovTest" c_th2_kolmogorovtest ::                Ptr RawTH2 -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_LabelsDeflate"-               c_th2_labelsdeflate :: Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_LabelsDeflate" c_th2_labelsdeflate ::+               Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_LabelsInflate"-               c_th2_labelsinflate :: Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_LabelsInflate" c_th2_labelsinflate ::+               Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_LabelsOption"-               c_th2_labelsoption :: Ptr RawTH2 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_LabelsOption" c_th2_labelsoption ::+               Ptr RawTH2 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_multiflyF"+foreign import ccall interruptible "HROOTHistTH2.h TH2_multiflyF"                c_th2_multiflyf :: Ptr RawTH2 -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Multiply"+foreign import ccall interruptible "HROOTHistTH2.h TH2_Multiply"                c_th2_multiply ::                Ptr RawTH2 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_PutStats"-               c_th2_putstats :: Ptr RawTH2 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_PutStats"+               c_th2_putstats :: Ptr RawTH2 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Rebin" c_th2_rebin ::-               Ptr RawTH2 -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2.h TH2_Rebin"+               c_th2_rebin ::+               Ptr RawTH2 -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2.h TH2_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2.h TH2_RebinAxis"                c_th2_rebinaxis :: Ptr RawTH2 -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Rebuild"+foreign import ccall interruptible "HROOTHistTH2.h TH2_Rebuild"                c_th2_rebuild :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_RecursiveRemove"-               c_th2_recursiveremove :: Ptr RawTH2 -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_RecursiveRemove" c_th2_recursiveremove ::+               Ptr RawTH2 -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Reset" c_th2_reset ::-               Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Reset"+               c_th2_reset :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_ResetStats"+foreign import ccall interruptible "HROOTHistTH2.h TH2_ResetStats"                c_th2_resetstats :: Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Scale" c_th2_scale ::-               Ptr RawTH2 -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Scale"+               c_th2_scale :: Ptr RawTH2 -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setAxisColorA"-               c_th2_setaxiscolora :: Ptr RawTH2 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setAxisColorA" c_th2_setaxiscolora ::+               Ptr RawTH2 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetAxisRange"-               c_th2_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetAxisRange" c_th2_setaxisrange ::                Ptr RawTH2 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetBarOffset"-               c_th2_setbaroffset :: Ptr RawTH2 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetBarOffset" c_th2_setbaroffset ::+               Ptr RawTH2 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetBarWidth"-               c_th2_setbarwidth :: Ptr RawTH2 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetBarWidth"+               c_th2_setbarwidth :: Ptr RawTH2 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinContent1"-               c_th2_setbincontent1 :: Ptr RawTH2 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinContent1" c_th2_setbincontent1 ::+               Ptr RawTH2 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinContent2"-               c_th2_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinContent2" c_th2_setbincontent2 ::                Ptr RawTH2 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinContent3"-               c_th2_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinContent3" c_th2_setbincontent3 ::                Ptr RawTH2 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinError1"-               c_th2_setbinerror1 :: Ptr RawTH2 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinError1" c_th2_setbinerror1 ::+               Ptr RawTH2 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinError2"-               c_th2_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinError2" c_th2_setbinerror2 ::                Ptr RawTH2 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBinError3"-               c_th2_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setBinError3" c_th2_setbinerror3 ::                Ptr RawTH2 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBins1"-               c_th2_setbins1 :: Ptr RawTH2 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_setBins1"+               c_th2_setbins1 :: Ptr RawTH2 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBins2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_setBins2"                c_th2_setbins2 ::-               Ptr RawTH2 ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2 -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setBins3"+foreign import ccall interruptible "HROOTHistTH2.h TH2_setBins3"                c_th2_setbins3 ::                Ptr RawTH2 ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetBinsLength"-               c_th2_setbinslength :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetBinsLength" c_th2_setbinslength ::+               Ptr RawTH2 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetBuffer"                c_th2_setbuffer :: Ptr RawTH2 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetCellContent"-               c_th2_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetCellContent" c_th2_setcellcontent ::                Ptr RawTH2 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetContent"-               c_th2_setcontent :: Ptr RawTH2 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetContent"+               c_th2_setcontent :: Ptr RawTH2 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetContour"-               c_th2_setcontour :: Ptr RawTH2 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetContour"+               c_th2_setcontour :: Ptr RawTH2 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetContourLevel"-               c_th2_setcontourlevel :: Ptr RawTH2 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetContourLevel" c_th2_setcontourlevel ::+               Ptr RawTH2 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetDirectory"-               c_th2_setdirectory :: Ptr RawTH2 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetDirectory" c_th2_setdirectory ::+               Ptr RawTH2 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetEntries"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetEntries"                c_th2_setentries :: Ptr RawTH2 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetError"-               c_th2_seterror :: Ptr RawTH2 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetError"+               c_th2_seterror :: Ptr RawTH2 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setLabelColorA"-               c_th2_setlabelcolora :: Ptr RawTH2 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setLabelColorA" c_th2_setlabelcolora ::+               Ptr RawTH2 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setLabelSizeA"-               c_th2_setlabelsizea :: Ptr RawTH2 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setLabelSizeA" c_th2_setlabelsizea ::+               Ptr RawTH2 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setLabelFontA"-               c_th2_setlabelfonta :: Ptr RawTH2 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setLabelFontA" c_th2_setlabelfonta ::+               Ptr RawTH2 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_setLabelOffsetA"-               c_th2_setlabeloffseta :: Ptr RawTH2 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_setLabelOffsetA" c_th2_setlabeloffseta ::+               Ptr RawTH2 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMaximum"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetMaximum"                c_th2_setmaximum :: Ptr RawTH2 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMinimum"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetMinimum"                c_th2_setminimum :: Ptr RawTH2 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetNormFactor"-               c_th2_setnormfactor :: Ptr RawTH2 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetNormFactor" c_th2_setnormfactor ::+               Ptr RawTH2 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetStats"-               c_th2_setstats :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetStats"+               c_th2_setstats :: Ptr RawTH2 -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetOption"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetOption"                c_th2_setoption :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetXTitle"                c_th2_setxtitle :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetYTitle"                c_th2_setytitle :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetZTitle"                c_th2_setztitle :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_ShowBackground"-               c_th2_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_ShowBackground" c_th2_showbackground ::                Ptr RawTH2 -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2.h TH2_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2.h TH2_ShowPeaks"                c_th2_showpeaks ::                Ptr RawTH2 -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_Smooth" c_th2_smooth-               :: Ptr RawTH2 -> CInt -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Smooth"+               c_th2_smooth :: Ptr RawTH2 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Sumw2" c_th2_sumw2 ::-               Ptr RawTH2 -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Sumw2"+               c_th2_sumw2 :: Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetName"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetName"                c_th2_setname :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetNameTitle"-               c_th2_setnametitle :: Ptr RawTH2 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetNameTitle" c_th2_setnametitle ::+               Ptr RawTH2 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetTitle"+foreign import ccall interruptible "HROOTHistTH2.h TH2_SetTitle"                c_th2_settitle :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_GetLineColor"-               c_th2_getlinecolor :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetLineColor" c_th2_getlinecolor ::+               Ptr RawTH2 -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_GetLineStyle"-               c_th2_getlinestyle :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetLineStyle" c_th2_getlinestyle ::+               Ptr RawTH2 -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_GetLineWidth"-               c_th2_getlinewidth :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetLineWidth" c_th2_getlinewidth ::+               Ptr RawTH2 -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_ResetAttLine"-               c_th2_resetattline :: Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_ResetAttLine" c_th2_resetattline ::+               Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetLineAttributes"-               c_th2_setlineattributes :: Ptr RawTH2 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetLineAttributes" c_th2_setlineattributes ::+               Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetLineColor"-               c_th2_setlinecolor :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetLineColor" c_th2_setlinecolor ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetLineStyle"-               c_th2_setlinestyle :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetLineStyle" c_th2_setlinestyle ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetLineWidth"-               c_th2_setlinewidth :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetLineWidth" c_th2_setlinewidth ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetFillColor"-               c_th2_setfillcolor :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetFillColor" c_th2_setfillcolor ::+               Ptr RawTH2 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetFillStyle"-               c_th2_setfillstyle :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetFillStyle" c_th2_setfillstyle ::+               Ptr RawTH2 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_GetMarkerColor"-               c_th2_getmarkercolor :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMarkerColor" c_th2_getmarkercolor ::+               Ptr RawTH2 -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_GetMarkerStyle"-               c_th2_getmarkerstyle :: Ptr RawTH2 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMarkerStyle" c_th2_getmarkerstyle ::+               Ptr RawTH2 -> IO CShort -foreign import ccall safe "HROOTHistTH2.h TH2_GetMarkerSize"-               c_th2_getmarkersize :: Ptr RawTH2 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_GetMarkerSize" c_th2_getmarkersize ::+               Ptr RawTH2 -> IO CFloat -foreign import ccall safe "HROOTHistTH2.h TH2_ResetAttMarker"-               c_th2_resetattmarker :: Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_ResetAttMarker" c_th2_resetattmarker ::+               Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMarkerAttributes"-               c_th2_setmarkerattributes :: Ptr RawTH2 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetMarkerAttributes" c_th2_setmarkerattributes+               :: Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMarkerColor"-               c_th2_setmarkercolor :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetMarkerColor" c_th2_setmarkercolor ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMarkerStyle"-               c_th2_setmarkerstyle :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetMarkerStyle" c_th2_setmarkerstyle ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetMarkerSize"-               c_th2_setmarkersize :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetMarkerSize" c_th2_setmarkersize ::+               Ptr RawTH2 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Draw" c_th2_draw ::-               Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Clear"+               c_th2_clear :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FindObject"+foreign import ccall interruptible "HROOTHistTH2.h TH2_Draw"+               c_th2_draw :: Ptr RawTH2 -> CString -> IO ()++foreign import ccall interruptible "HROOTHistTH2.h TH2_FindObject"                c_th2_findobject :: Ptr RawTH2 -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTH2.h TH2_GetName"+foreign import ccall interruptible "HROOTHistTH2.h TH2_GetName"                c_th2_getname :: Ptr RawTH2 -> IO CString -foreign import ccall safe "HROOTHistTH2.h TH2_IsA" c_th2_isa ::-               Ptr RawTH2 -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2.h TH2_IsA"+               c_th2_isa :: Ptr RawTH2 -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2.h TH2_Paint" c_th2_paint ::-               Ptr RawTH2 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Paint"+               c_th2_paint :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_printObj"+foreign import ccall interruptible "HROOTHistTH2.h TH2_printObj"                c_th2_printobj :: Ptr RawTH2 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SaveAs" c_th2_saveas-               :: Ptr RawTH2 -> CString -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_SaveAs"+               c_th2_saveas :: Ptr RawTH2 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_Write" c_th2_write ::-               Ptr RawTH2 -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_Write"+               c_th2_write :: Ptr RawTH2 -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_delete" c_th2_delete-               :: Ptr RawTH2 -> IO ()+foreign import ccall interruptible "HROOTHistTH2.h TH2_Write_"+               c_th2_write_ :: Ptr RawTH2 -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_fill2" c_th2_fill2 ::-               Ptr RawTH2 -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_delete"+               c_th2_delete :: Ptr RawTH2 -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_fill2w" c_th2_fill2w-               :: Ptr RawTH2 -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2.h TH2_fill2"+               c_th2_fill2 :: Ptr RawTH2 -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_fillN2" c_th2_filln2-               ::+foreign import ccall interruptible "HROOTHistTH2.h TH2_fill2w"+               c_th2_fill2w ::+               Ptr RawTH2 -> CDouble -> CDouble -> CDouble -> IO CInt++foreign import ccall interruptible "HROOTHistTH2.h TH2_fillN2"+               c_th2_filln2 ::                Ptr RawTH2 ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_fillRandom2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_fillRandom2"                c_th2_fillrandom2 :: Ptr RawTH2 -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_findFirstBinAbove2"-               c_th2_findfirstbinabove2 ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_findFirstBinAbove2" c_th2_findfirstbinabove2 ::                Ptr RawTH2 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_findLastBinAbove2"-               c_th2_findlastbinabove2 :: Ptr RawTH2 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_findLastBinAbove2" c_th2_findlastbinabove2 ::+               Ptr RawTH2 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2.h TH2_FitSlicesX"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FitSlicesX"                c_th2_fitslicesx ::                Ptr RawTH2 ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_FitSlicesY"+foreign import ccall interruptible "HROOTHistTH2.h TH2_FitSlicesY"                c_th2_fitslicesy ::                Ptr RawTH2 ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2.h TH2_getCorrelationFactor2"                c_th2_getcorrelationfactor2 ::                Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_getCovariance2"-               c_th2_getcovariance2 :: Ptr RawTH2 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_getCovariance2" c_th2_getcovariance2 ::+               Ptr RawTH2 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_integral2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_integral2"                c_th2_integral2 ::                Ptr RawTH2 -> CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2.h TH2_tH2ProjectionX"-               c_th2_th2projectionx ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_tH2_ProjectionX" c_th2_th2_projectionx ::                Ptr RawTH2 ->                  CString -> CInt -> CInt -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH2.h TH2_tH2ProjectionY"-               c_th2_th2projectiony ::+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_tH2_ProjectionY" c_th2_th2_projectiony ::                Ptr RawTH2 ->                  CString -> CInt -> CInt -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH2.h TH2_rebinX2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_rebinX2"                c_th2_rebinx2 :: Ptr RawTH2 -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2.h TH2_rebinY2"+foreign import ccall interruptible "HROOTHistTH2.h TH2_rebinY2"                c_th2_rebiny2 :: Ptr RawTH2 -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2.h TH2_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2.h TH2_Rebin2D"                c_th2_rebin2d ::                Ptr RawTH2 -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2.h TH2_SetShowProjectionX"-               c_th2_setshowprojectionx :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetShowProjectionX" c_th2_setshowprojectionx ::+               Ptr RawTH2 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2.h TH2_SetShowProjectionY"-               c_th2_setshowprojectiony :: Ptr RawTH2 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2.h TH2_SetShowProjectionY" c_th2_setshowprojectiony ::+               Ptr RawTH2 -> CInt -> IO ()
src/HROOT/Hist/TH2/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2.RawType import HROOT.Hist.TH2.FFI import HROOT.Hist.TH2.Interface import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.RawType+import HROOT.Hist.TH2.Cast+import HROOT.Hist.TH2.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -51,11 +60,11 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITH2 TH2 where+instance () => ITH2 (TH2) where         fill2 = xform2 c_th2_fill2         fill2w = xform3 c_th2_fill2w         fillN2 = xform5 c_th2_filln2@@ -73,11 +82,10 @@         setShowProjectionX = xform1 c_th2_setshowprojectionx         setShowProjectionY = xform1 c_th2_setshowprojectiony -instance ITH1 TH2 where+instance () => ITH1 (TH2) where         add = xform2 c_th2_add         addBinContent = xform2 c_th2_addbincontent         chi2Test = xform3 c_th2_chi2test-        computeIntegral = xform0 c_th2_computeintegral         directoryAutoAdd = xform1 c_th2_directoryautoadd         divide = xform5 c_th2_divide         drawCopyTH1 = xform1 c_th2_drawcopyth1@@ -149,9 +157,6 @@         getRMS = xform1 c_th2_getrms         getRMSError = xform1 c_th2_getrmserror         getSkewness = xform1 c_th2_getskewness-        integral1 = xform3 c_th2_integral1-        interpolate1 = xform1 c_th2_interpolate1-        interpolate2 = xform2 c_th2_interpolate2         interpolate3 = xform3 c_th2_interpolate3         kolmogorovTest = xform2 c_th2_kolmogorovtest         labelsDeflate = xform1 c_th2_labelsdeflate@@ -206,12 +211,12 @@         smooth = xform2 c_th2_smooth         sumw2 = xform0 c_th2_sumw2 -instance ITNamed TH2 where+instance () => ITNamed (TH2) where         setName = xform1 c_th2_setname         setNameTitle = xform2 c_th2_setnametitle         setTitle = xform1 c_th2_settitle -instance ITAttLine TH2 where+instance () => ITAttLine (TH2) where         getLineColor = xform0 c_th2_getlinecolor         getLineStyle = xform0 c_th2_getlinestyle         getLineWidth = xform0 c_th2_getlinewidth@@ -221,11 +226,11 @@         setLineStyle = xform1 c_th2_setlinestyle         setLineWidth = xform1 c_th2_setlinewidth -instance ITAttFill TH2 where+instance () => ITAttFill (TH2) where         setFillColor = xform1 c_th2_setfillcolor         setFillStyle = xform1 c_th2_setfillstyle -instance ITAttMarker TH2 where+instance () => ITAttMarker (TH2) where         getMarkerColor = xform0 c_th2_getmarkercolor         getMarkerStyle = xform0 c_th2_getmarkerstyle         getMarkerSize = xform0 c_th2_getmarkersize@@ -235,7 +240,8 @@         setMarkerStyle = xform1 c_th2_setmarkerstyle         setMarkerSize = xform1 c_th2_setmarkersize -instance ITObject TH2 where+instance () => ITObject (TH2) where+        clear = xform1 c_th2_clear         draw = xform1 c_th2_draw         findObject = xform1 c_th2_findobject         getName = xform0 c_th2_getname@@ -244,16 +250,17 @@         printObj = xform1 c_th2_printobj         saveAs = xform2 c_th2_saveas         write = xform3 c_th2_write+        write_ = xform0 c_th2_write_ -instance IDeletable TH2 where+instance () => IDeletable (TH2) where         delete = xform0 c_th2_delete -tH2ProjectionX ::-                 (Castable c1 CString, Castable c0 CString) =>-                 TH2 -> c0 -> CInt -> CInt -> c1 -> IO TH1D-tH2ProjectionX = xform4 c_th2_th2projectionx+tH2_ProjectionX ::+                  (Castable c1 CString, Castable c0 CString) =>+                  TH2 -> c0 -> CInt -> CInt -> c1 -> IO TH1D+tH2_ProjectionX = xform4 c_th2_th2_projectionx -tH2ProjectionY ::-                 (Castable c1 CString, Castable c0 CString) =>-                 TH2 -> c0 -> CInt -> CInt -> c1 -> IO TH1D-tH2ProjectionY = xform4 c_th2_th2projectiony+tH2_ProjectionY ::+                  (Castable c1 CString, Castable c0 CString) =>+                  TH2 -> c0 -> CInt -> CInt -> c1 -> IO TH1D+tH2_ProjectionY = xform4 c_th2_th2_projectiony
src/HROOT/Hist/TH2/Interface.hs view
@@ -4,30 +4,30 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TH2.RawType-import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.Interface import HROOT.Core.TObjArray.Interface-import {-# SOURCE #-} HROOT.Hist.TF1.Interface+import HROOT.Hist.TF1.Interface -class ITH1 a => ITH2 a where-        fill2 :: a -> CDouble -> CDouble -> IO CInt+class (ITH1 a) => ITH2 a where+        fill2 :: () => a -> CDouble -> CDouble -> IO CInt         -        fill2w :: a -> CDouble -> CDouble -> CDouble -> IO CInt+        fill2w :: () => a -> CDouble -> CDouble -> CDouble -> IO CInt                  fillN2 ::+                 () =>                  a ->-                   CInt ->-                     (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                   CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO ()                  fillRandom2 :: (ITH1 c0, FPtr c0) => a -> c0 -> CInt -> IO ()         -        findFirstBinAbove2 :: a -> CDouble -> CInt -> IO CInt+        findFirstBinAbove2 :: () => a -> CDouble -> CInt -> IO CInt         -        findLastBinAbove2 :: a -> CDouble -> CInt -> IO CInt+        findLastBinAbove2 :: () => a -> CDouble -> CInt -> IO CInt                  fitSlicesX ::                      (ITObjArray c2, FPtr c2, Castable c1 CString, ITF1 c0, FPtr c0) =>@@ -37,23 +37,24 @@                      (ITObjArray c2, FPtr c2, Castable c1 CString, ITF1 c0, FPtr c0) =>                      a -> c0 -> CInt -> CInt -> CInt -> c1 -> c2 -> IO ()         -        getCorrelationFactor2 :: a -> CInt -> CInt -> IO CDouble+        getCorrelationFactor2 :: () => a -> CInt -> CInt -> IO CDouble         -        getCovariance2 :: a -> CInt -> CInt -> IO CDouble+        getCovariance2 :: () => a -> CInt -> CInt -> IO CDouble                  integral2 ::-                    Castable c0 CString =>+                    (Castable c0 CString) =>                     a -> CInt -> CInt -> CInt -> CInt -> c0 -> IO CDouble         -        rebinX2 :: Castable c0 CString => a -> CInt -> c0 -> IO TH2+        rebinX2 :: (Castable c0 CString) => a -> CInt -> c0 -> IO TH2         -        rebinY2 :: Castable c0 CString => a -> CInt -> c0 -> IO TH2+        rebinY2 :: (Castable c0 CString) => a -> CInt -> c0 -> IO TH2         -        rebin2D :: Castable c0 CString => a -> CInt -> CInt -> c0 -> IO TH2+        rebin2D ::+                  (Castable c0 CString) => a -> CInt -> CInt -> c0 -> IO TH2         -        setShowProjectionX :: a -> CInt -> IO ()+        setShowProjectionX :: () => a -> CInt -> IO ()         -        setShowProjectionY :: a -> CInt -> IO ()+        setShowProjectionY :: () => a -> CInt -> IO ()  upcastTH2 :: forall a . (FPtr a, ITH2 a) => a -> TH2 upcastTH2 h
src/HROOT/Hist/TH2/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2  newtype TH2 = TH2 (Ptr RawTH2)-            deriving (Eq, Ord, Show)+                deriving (Eq, Ord, Show) -instance FPtr TH2 where+instance () => FPtr (TH2) where         type Raw TH2 = RawTH2         get_fptr (TH2 ptr) = ptr         cast_fptr_to_obj = TH2
src/HROOT/Hist/TH2C/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2C.RawType import HROOT.Hist.TH2C.Interface -instance (ITH2C a, FPtr a) => Castable a (Ptr RawTH2C) where+instance (ITH2C a, FPtr a) => Castable (a) (Ptr RawTH2C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2C (Ptr RawTH2C) where+instance () => Castable (TH2C) (Ptr RawTH2C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2C/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2C.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH2C.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,589 +17,678 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2C.h TH2C_fill2" c_th2c_fill2-               :: Ptr RawTH2C -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fill2"+               c_th2c_fill2 :: Ptr RawTH2C -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_fill2w"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fill2w"                c_th2c_fill2w ::                Ptr RawTH2C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_fillN2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fillN2"                c_th2c_filln2 ::                Ptr RawTH2C ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_fillRandom2"-               c_th2c_fillrandom2 :: Ptr RawTH2C -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_fillRandom2" c_th2c_fillrandom2 ::+               Ptr RawTH2C -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_findFirstBinAbove2"-               c_th2c_findfirstbinabove2 ::-               Ptr RawTH2C -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_findFirstBinAbove2" c_th2c_findfirstbinabove2+               :: Ptr RawTH2C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_findLastBinAbove2"-               c_th2c_findlastbinabove2 ::-               Ptr RawTH2C -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_findLastBinAbove2" c_th2c_findlastbinabove2+               :: Ptr RawTH2C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_FitSlicesX"-               c_th2c_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FitSlicesX" c_th2c_fitslicesx ::                Ptr RawTH2C ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FitSlicesY"-               c_th2c_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FitSlicesY" c_th2c_fitslicesy ::                Ptr RawTH2C ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2C.h TH2C_getCorrelationFactor2"                c_th2c_getcorrelationfactor2 ::                Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_getCovariance2"-               c_th2c_getcovariance2 :: Ptr RawTH2C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getCovariance2" c_th2c_getcovariance2 ::+               Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_integral2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_integral2"                c_th2c_integral2 ::                Ptr RawTH2C ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_rebinX2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_rebinX2"                c_th2c_rebinx2 :: Ptr RawTH2C -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2C.h TH2C_rebinY2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_rebinY2"                c_th2c_rebiny2 :: Ptr RawTH2C -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2C.h TH2C_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Rebin2D"                c_th2c_rebin2d ::                Ptr RawTH2C -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetShowProjectionX"-               c_th2c_setshowprojectionx :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetShowProjectionX" c_th2c_setshowprojectionx+               :: Ptr RawTH2C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetShowProjectionY"-               c_th2c_setshowprojectiony :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetShowProjectionY" c_th2c_setshowprojectiony+               :: Ptr RawTH2C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Add" c_th2c_add ::-               Ptr RawTH2C -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Add"+               c_th2c_add :: Ptr RawTH2C -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_AddBinContent"-               c_th2c_addbincontent :: Ptr RawTH2C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_AddBinContent" c_th2c_addbincontent ::+               Ptr RawTH2C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Chi2Test"                c_th2c_chi2test ::-               Ptr RawTH2C -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2C.h TH2C_ComputeIntegral"-               c_th2c_computeintegral :: Ptr RawTH2C -> IO CDouble+               Ptr RawTH2C -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_DirectoryAutoAdd"-               c_th2c_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_DirectoryAutoAdd" c_th2c_directoryautoadd ::                Ptr RawTH2C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Divide"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Divide"                c_th2c_divide ::                Ptr RawTH2C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_drawCopyTH1"-               c_th2c_drawcopyth1 :: Ptr RawTH2C -> CString -> IO (Ptr RawTH2C)+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_drawCopyTH1" c_th2c_drawcopyth1 ::+               Ptr RawTH2C -> CString -> IO (Ptr RawTH2C) -foreign import ccall safe "HROOTHistTH2C.h TH2C_DrawNormalized"-               c_th2c_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_DrawNormalized" c_th2c_drawnormalized ::                Ptr RawTH2C -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2C.h TH2C_drawPanelTH1"-               c_th2c_drawpanelth1 :: Ptr RawTH2C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_drawPanelTH1" c_th2c_drawpanelth1 ::+               Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_BufferEmpty"-               c_th2c_bufferempty :: Ptr RawTH2C -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_BufferEmpty" c_th2c_bufferempty ::+               Ptr RawTH2C -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_evalF" c_th2c_evalf-               :: Ptr RawTH2C -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_evalF"+               c_th2c_evalf :: Ptr RawTH2C -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FFT" c_th2c_fft ::+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_FFT"+               c_th2c_fft ::                Ptr RawTH2C -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2C.h TH2C_fill1" c_th2c_fill1-               :: Ptr RawTH2C -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fill1"+               c_th2c_fill1 :: Ptr RawTH2C -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_fill1w"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fill1w"                c_th2c_fill1w :: Ptr RawTH2C -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_fillN1"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_fillN1"                c_th2c_filln1 ::-               Ptr RawTH2C ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH2C -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FillRandom"-               c_th2c_fillrandom :: Ptr RawTH2C -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FillRandom" c_th2c_fillrandom ::+               Ptr RawTH2C -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FindBin"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_FindBin"                c_th2c_findbin ::                Ptr RawTH2C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_FindFixBin"-               c_th2c_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FindFixBin" c_th2c_findfixbin ::                Ptr RawTH2C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_FindFirstBinAbove"-               c_th2c_findfirstbinabove ::-               Ptr RawTH2C -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FindFirstBinAbove" c_th2c_findfirstbinabove+               :: Ptr RawTH2C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_FindLastBinAbove"-               c_th2c_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FindLastBinAbove" c_th2c_findlastbinabove ::                Ptr RawTH2C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_Fit" c_th2c_fit ::+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Fit"+               c_th2c_fit ::                Ptr RawTH2C ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FitPanelTH1"-               c_th2c_fitpanelth1 :: Ptr RawTH2C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FitPanelTH1" c_th2c_fitpanelth1 ::+               Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_getNdivisionA"-               c_th2c_getndivisiona :: Ptr RawTH2C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getNdivisionA" c_th2c_getndivisiona ::+               Ptr RawTH2C -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_getAxisColorA"-               c_th2c_getaxiscolora :: Ptr RawTH2C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getAxisColorA" c_th2c_getaxiscolora ::+               Ptr RawTH2C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_getLabelColorA"-               c_th2c_getlabelcolora :: Ptr RawTH2C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getLabelColorA" c_th2c_getlabelcolora ::+               Ptr RawTH2C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_getLabelFontA"-               c_th2c_getlabelfonta :: Ptr RawTH2C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getLabelFontA" c_th2c_getlabelfonta ::+               Ptr RawTH2C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_getLabelOffsetA"-               c_th2c_getlabeloffseta :: Ptr RawTH2C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getLabelOffsetA" c_th2c_getlabeloffseta ::+               Ptr RawTH2C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_getLabelSizeA"-               c_th2c_getlabelsizea :: Ptr RawTH2C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getLabelSizeA" c_th2c_getlabelsizea ::+               Ptr RawTH2C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_getTitleFontA"-               c_th2c_gettitlefonta :: Ptr RawTH2C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getTitleFontA" c_th2c_gettitlefonta ::+               Ptr RawTH2C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_getTitleOffsetA"-               c_th2c_gettitleoffseta :: Ptr RawTH2C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getTitleOffsetA" c_th2c_gettitleoffseta ::+               Ptr RawTH2C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_getTitleSizeA"-               c_th2c_gettitlesizea :: Ptr RawTH2C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getTitleSizeA" c_th2c_gettitlesizea ::+               Ptr RawTH2C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_getTickLengthA"-               c_th2c_getticklengtha :: Ptr RawTH2C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getTickLengthA" c_th2c_getticklengtha ::+               Ptr RawTH2C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBarOffset"-               c_th2c_getbaroffset :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBarOffset" c_th2c_getbaroffset ::+               Ptr RawTH2C -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBarWidth"-               c_th2c_getbarwidth :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBarWidth" c_th2c_getbarwidth ::+               Ptr RawTH2C -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetContour"-               c_th2c_getcontour :: Ptr RawTH2C -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetContour" c_th2c_getcontour ::+               Ptr RawTH2C -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetContourLevel"-               c_th2c_getcontourlevel :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetContourLevel" c_th2c_getcontourlevel ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetContourLevelPad"-               c_th2c_getcontourlevelpad :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetContourLevelPad" c_th2c_getcontourlevelpad+               :: Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBin"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetBin"                c_th2c_getbin :: Ptr RawTH2C -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinCenter"-               c_th2c_getbincenter :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinCenter" c_th2c_getbincenter ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinContent1"-               c_th2c_getbincontent1 :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinContent1" c_th2c_getbincontent1 ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinContent2"-               c_th2c_getbincontent2 :: Ptr RawTH2C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinContent2" c_th2c_getbincontent2 ::+               Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinContent3"-               c_th2c_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinContent3" c_th2c_getbincontent3 ::                Ptr RawTH2C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinError1"-               c_th2c_getbinerror1 :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinError1" c_th2c_getbinerror1 ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinError2"-               c_th2c_getbinerror2 :: Ptr RawTH2C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinError2" c_th2c_getbinerror2 ::+               Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinError3"-               c_th2c_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinError3" c_th2c_getbinerror3 ::                Ptr RawTH2C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinLowEdge"-               c_th2c_getbinlowedge :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinLowEdge" c_th2c_getbinlowedge ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetBinWidth"-               c_th2c_getbinwidth :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetBinWidth" c_th2c_getbinwidth ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetCellContent"-               c_th2c_getcellcontent :: Ptr RawTH2C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetCellContent" c_th2c_getcellcontent ::+               Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetCellError"-               c_th2c_getcellerror :: Ptr RawTH2C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetCellError" c_th2c_getcellerror ::+               Ptr RawTH2C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetEntries"-               c_th2c_getentries :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetEntries" c_th2c_getentries ::+               Ptr RawTH2C -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2C.h TH2C_GetEffectiveEntries"                c_th2c_geteffectiveentries :: Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetFunction"-               c_th2c_getfunction :: Ptr RawTH2C -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetFunction" c_th2c_getfunction ::+               Ptr RawTH2C -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetDimension"-               c_th2c_getdimension :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetDimension" c_th2c_getdimension ::+               Ptr RawTH2C -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetKurtosis"-               c_th2c_getkurtosis :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetKurtosis" c_th2c_getkurtosis ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetLowEdge"-               c_th2c_getlowedge :: Ptr RawTH2C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetLowEdge" c_th2c_getlowedge ::+               Ptr RawTH2C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_getMaximumTH1"-               c_th2c_getmaximumth1 :: Ptr RawTH2C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getMaximumTH1" c_th2c_getmaximumth1 ::+               Ptr RawTH2C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMaximumBin"-               c_th2c_getmaximumbin :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMaximumBin" c_th2c_getmaximumbin ::+               Ptr RawTH2C -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMaximumStored"-               c_th2c_getmaximumstored :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMaximumStored" c_th2c_getmaximumstored ::+               Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_getMinimumTH1"-               c_th2c_getminimumth1 :: Ptr RawTH2C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getMinimumTH1" c_th2c_getminimumth1 ::+               Ptr RawTH2C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMinimumBin"-               c_th2c_getminimumbin :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMinimumBin" c_th2c_getminimumbin ::+               Ptr RawTH2C -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMinimumStored"-               c_th2c_getminimumstored :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMinimumStored" c_th2c_getminimumstored ::+               Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMean"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetMean"                c_th2c_getmean :: Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMeanError"-               c_th2c_getmeanerror :: Ptr RawTH2C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMeanError" c_th2c_getmeanerror ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetNbinsX"                c_th2c_getnbinsx :: Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetNbinsY"                c_th2c_getnbinsy :: Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetNbinsZ"                c_th2c_getnbinsz :: Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_getQuantilesTH1"-               c_th2c_getquantilesth1 ::-               Ptr RawTH2C -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_getQuantilesTH1" c_th2c_getquantilesth1 ::+               Ptr RawTH2C -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetRandom"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetRandom"                c_th2c_getrandom :: Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetStats"-               c_th2c_getstats :: Ptr RawTH2C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetStats"+               c_th2c_getstats :: Ptr RawTH2C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetSumOfWeights"-               c_th2c_getsumofweights :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetSumOfWeights" c_th2c_getsumofweights ::+               Ptr RawTH2C -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetSumw2"                c_th2c_getsumw2 :: Ptr RawTH2C -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetSumw2N"                c_th2c_getsumw2n :: Ptr RawTH2C -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetRMS"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetRMS"                c_th2c_getrms :: Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetRMSError"-               c_th2c_getrmserror :: Ptr RawTH2C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2C.h TH2C_GetSkewness"-               c_th2c_getskewness :: Ptr RawTH2C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2C.h TH2C_integral1"-               c_th2c_integral1 ::-               Ptr RawTH2C -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2C.h TH2C_interpolate1"-               c_th2c_interpolate1 :: Ptr RawTH2C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetRMSError" c_th2c_getrmserror ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_interpolate2"-               c_th2c_interpolate2 ::-               Ptr RawTH2C -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetSkewness" c_th2c_getskewness ::+               Ptr RawTH2C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_interpolate3"-               c_th2c_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_interpolate3" c_th2c_interpolate3 ::                Ptr RawTH2C -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_KolmogorovTest"-               c_th2c_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_KolmogorovTest" c_th2c_kolmogorovtest ::                Ptr RawTH2C -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2C.h TH2C_LabelsDeflate"-               c_th2c_labelsdeflate :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_LabelsDeflate" c_th2c_labelsdeflate ::+               Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_LabelsInflate"-               c_th2c_labelsinflate :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_LabelsInflate" c_th2c_labelsinflate ::+               Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_LabelsOption"-               c_th2c_labelsoption :: Ptr RawTH2C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_LabelsOption" c_th2c_labelsoption ::+               Ptr RawTH2C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_multiflyF"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_multiflyF"                c_th2c_multiflyf :: Ptr RawTH2C -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Multiply"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Multiply"                c_th2c_multiply ::                Ptr RawTH2C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_PutStats"-               c_th2c_putstats :: Ptr RawTH2C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_PutStats"+               c_th2c_putstats :: Ptr RawTH2C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Rebin" c_th2c_rebin-               ::-               Ptr RawTH2C -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Rebin"+               c_th2c_rebin ::+               Ptr RawTH2C -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2C.h TH2C_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_RebinAxis"                c_th2c_rebinaxis :: Ptr RawTH2C -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Rebuild"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Rebuild"                c_th2c_rebuild :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_RecursiveRemove"-               c_th2c_recursiveremove :: Ptr RawTH2C -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_RecursiveRemove" c_th2c_recursiveremove ::+               Ptr RawTH2C -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Reset" c_th2c_reset-               :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Reset"+               c_th2c_reset :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_ResetStats"-               c_th2c_resetstats :: Ptr RawTH2C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_ResetStats" c_th2c_resetstats ::+               Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Scale" c_th2c_scale-               :: Ptr RawTH2C -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Scale"+               c_th2c_scale :: Ptr RawTH2C -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setAxisColorA"-               c_th2c_setaxiscolora :: Ptr RawTH2C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setAxisColorA" c_th2c_setaxiscolora ::+               Ptr RawTH2C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetAxisRange"-               c_th2c_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetAxisRange" c_th2c_setaxisrange ::                Ptr RawTH2C -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetBarOffset"-               c_th2c_setbaroffset :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetBarOffset" c_th2c_setbaroffset ::+               Ptr RawTH2C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetBarWidth"-               c_th2c_setbarwidth :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetBarWidth" c_th2c_setbarwidth ::+               Ptr RawTH2C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinContent1"-               c_th2c_setbincontent1 :: Ptr RawTH2C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinContent1" c_th2c_setbincontent1 ::+               Ptr RawTH2C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinContent2"-               c_th2c_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinContent2" c_th2c_setbincontent2 ::                Ptr RawTH2C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinContent3"-               c_th2c_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinContent3" c_th2c_setbincontent3 ::                Ptr RawTH2C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinError1"-               c_th2c_setbinerror1 :: Ptr RawTH2C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinError1" c_th2c_setbinerror1 ::+               Ptr RawTH2C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinError2"-               c_th2c_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinError2" c_th2c_setbinerror2 ::                Ptr RawTH2C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBinError3"-               c_th2c_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setBinError3" c_th2c_setbinerror3 ::                Ptr RawTH2C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBins1"-               c_th2c_setbins1 :: Ptr RawTH2C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_setBins1"+               c_th2c_setbins1 :: Ptr RawTH2C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBins2"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_setBins2"                c_th2c_setbins2 ::-               Ptr RawTH2C ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2C -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setBins3"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_setBins3"                c_th2c_setbins3 ::                Ptr RawTH2C ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetBinsLength"-               c_th2c_setbinslength :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetBinsLength" c_th2c_setbinslength ::+               Ptr RawTH2C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetBuffer"                c_th2c_setbuffer :: Ptr RawTH2C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetCellContent"-               c_th2c_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetCellContent" c_th2c_setcellcontent ::                Ptr RawTH2C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetContent"-               c_th2c_setcontent :: Ptr RawTH2C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetContent" c_th2c_setcontent ::+               Ptr RawTH2C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetContour"-               c_th2c_setcontour :: Ptr RawTH2C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetContour" c_th2c_setcontour ::+               Ptr RawTH2C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetContourLevel"-               c_th2c_setcontourlevel :: Ptr RawTH2C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetContourLevel" c_th2c_setcontourlevel ::+               Ptr RawTH2C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetDirectory"-               c_th2c_setdirectory :: Ptr RawTH2C -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetDirectory" c_th2c_setdirectory ::+               Ptr RawTH2C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetEntries"-               c_th2c_setentries :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetEntries" c_th2c_setentries ::+               Ptr RawTH2C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetError"-               c_th2c_seterror :: Ptr RawTH2C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetError"+               c_th2c_seterror :: Ptr RawTH2C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setLabelColorA"-               c_th2c_setlabelcolora :: Ptr RawTH2C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setLabelColorA" c_th2c_setlabelcolora ::+               Ptr RawTH2C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setLabelSizeA"-               c_th2c_setlabelsizea :: Ptr RawTH2C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setLabelSizeA" c_th2c_setlabelsizea ::+               Ptr RawTH2C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setLabelFontA"-               c_th2c_setlabelfonta :: Ptr RawTH2C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setLabelFontA" c_th2c_setlabelfonta ::+               Ptr RawTH2C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_setLabelOffsetA"-               c_th2c_setlabeloffseta ::-               Ptr RawTH2C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_setLabelOffsetA" c_th2c_setlabeloffseta ::+               Ptr RawTH2C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetMaximum"-               c_th2c_setmaximum :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetMaximum" c_th2c_setmaximum ::+               Ptr RawTH2C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetMinimum"-               c_th2c_setminimum :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetMinimum" c_th2c_setminimum ::+               Ptr RawTH2C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetNormFactor"-               c_th2c_setnormfactor :: Ptr RawTH2C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetNormFactor" c_th2c_setnormfactor ::+               Ptr RawTH2C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetStats"-               c_th2c_setstats :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetStats"+               c_th2c_setstats :: Ptr RawTH2C -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetOption"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetOption"                c_th2c_setoption :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetXTitle"                c_th2c_setxtitle :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetYTitle"                c_th2c_setytitle :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetZTitle"                c_th2c_setztitle :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_ShowBackground"-               c_th2c_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_ShowBackground" c_th2c_showbackground ::                Ptr RawTH2C -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2C.h TH2C_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_ShowPeaks"                c_th2c_showpeaks ::                Ptr RawTH2C -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_Smooth"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Smooth"                c_th2c_smooth :: Ptr RawTH2C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Sumw2" c_th2c_sumw2-               :: Ptr RawTH2C -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Sumw2"+               c_th2c_sumw2 :: Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetName"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetName"                c_th2c_setname :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetNameTitle"-               c_th2c_setnametitle :: Ptr RawTH2C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetNameTitle" c_th2c_setnametitle ::+               Ptr RawTH2C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetTitle"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetTitle"                c_th2c_settitle :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetLineColor"-               c_th2c_getlinecolor :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetLineColor" c_th2c_getlinecolor ::+               Ptr RawTH2C -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetLineStyle"-               c_th2c_getlinestyle :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetLineStyle" c_th2c_getlinestyle ::+               Ptr RawTH2C -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetLineWidth"-               c_th2c_getlinewidth :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetLineWidth" c_th2c_getlinewidth ::+               Ptr RawTH2C -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_ResetAttLine"-               c_th2c_resetattline :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_ResetAttLine" c_th2c_resetattline ::+               Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetLineAttributes"-               c_th2c_setlineattributes :: Ptr RawTH2C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetLineAttributes" c_th2c_setlineattributes+               :: Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetLineColor"-               c_th2c_setlinecolor :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetLineColor" c_th2c_setlinecolor ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetLineStyle"-               c_th2c_setlinestyle :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetLineStyle" c_th2c_setlinestyle ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetLineWidth"-               c_th2c_setlinewidth :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetLineWidth" c_th2c_setlinewidth ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetFillColor"-               c_th2c_setfillcolor :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetFillColor" c_th2c_setfillcolor ::+               Ptr RawTH2C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetFillStyle"-               c_th2c_setfillstyle :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetFillStyle" c_th2c_setfillstyle ::+               Ptr RawTH2C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMarkerColor"-               c_th2c_getmarkercolor :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMarkerColor" c_th2c_getmarkercolor ::+               Ptr RawTH2C -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMarkerStyle"-               c_th2c_getmarkerstyle :: Ptr RawTH2C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMarkerStyle" c_th2c_getmarkerstyle ::+               Ptr RawTH2C -> IO CShort -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetMarkerSize"-               c_th2c_getmarkersize :: Ptr RawTH2C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_GetMarkerSize" c_th2c_getmarkersize ::+               Ptr RawTH2C -> IO CFloat -foreign import ccall safe "HROOTHistTH2C.h TH2C_ResetAttMarker"-               c_th2c_resetattmarker :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_ResetAttMarker" c_th2c_resetattmarker ::+               Ptr RawTH2C -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2C.h TH2C_SetMarkerAttributes"                c_th2c_setmarkerattributes :: Ptr RawTH2C -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetMarkerColor"-               c_th2c_setmarkercolor :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetMarkerColor" c_th2c_setmarkercolor ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetMarkerStyle"-               c_th2c_setmarkerstyle :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetMarkerStyle" c_th2c_setmarkerstyle ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SetMarkerSize"-               c_th2c_setmarkersize :: Ptr RawTH2C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_SetMarkerSize" c_th2c_setmarkersize ::+               Ptr RawTH2C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Draw" c_th2c_draw-               :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Clear"+               c_th2c_clear :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_FindObject"-               c_th2c_findobject :: Ptr RawTH2C -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Draw"+               c_th2c_draw :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_GetName"+foreign import ccall interruptible+               "HROOTHistTH2C.h TH2C_FindObject" c_th2c_findobject ::+               Ptr RawTH2C -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetName"                c_th2c_getname :: Ptr RawTH2C -> IO CString -foreign import ccall safe "HROOTHistTH2C.h TH2C_IsA" c_th2c_isa ::-               Ptr RawTH2C -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_IsA"+               c_th2c_isa :: Ptr RawTH2C -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2C.h TH2C_Paint" c_th2c_paint-               :: Ptr RawTH2C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Paint"+               c_th2c_paint :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_printObj"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_printObj"                c_th2c_printobj :: Ptr RawTH2C -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_SaveAs"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SaveAs"                c_th2c_saveas :: Ptr RawTH2C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2C.h TH2C_Write" c_th2c_write-               :: Ptr RawTH2C -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Write"+               c_th2c_write :: Ptr RawTH2C -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2C.h TH2C_delete"+foreign import ccall interruptible "HROOTHistTH2C.h TH2C_Write_"+               c_th2c_write_ :: Ptr RawTH2C -> IO CInt++foreign import ccall interruptible "HROOTHistTH2C.h TH2C_delete"                c_th2c_delete :: Ptr RawTH2C -> IO ()++foreign import ccall interruptible "HROOTHistTH2C.h TH2C_GetAt"+               c_th2c_getat :: Ptr RawTH2C -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetArray"+               c_th2c_setarray :: Ptr RawTH2C -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2C.h TH2C_SetAt"+               c_th2c_setat :: Ptr RawTH2C -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH2C/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2C.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2C.RawType import HROOT.Hist.TH2C.FFI import HROOT.Hist.TH2C.Interface import HROOT.Hist.TH2C.Cast+import HROOT.Hist.TH2C.RawType+import HROOT.Hist.TH2C.Cast+import HROOT.Hist.TH2C.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH2C TH2C+instance () => ITH2C (TH2C) where -instance ITH2 TH2C where+instance () => ITH2 (TH2C) where         fill2 = xform2 c_th2c_fill2         fill2w = xform3 c_th2c_fill2w         fillN2 = xform5 c_th2c_filln2@@ -84,13 +93,12 @@         setShowProjectionX = xform1 c_th2c_setshowprojectionx         setShowProjectionY = xform1 c_th2c_setshowprojectiony -instance ITArrayC TH2C+instance () => ITArrayC (TH2C) where -instance ITH1 TH2C where+instance () => ITH1 (TH2C) where         add = xform2 c_th2c_add         addBinContent = xform2 c_th2c_addbincontent         chi2Test = xform3 c_th2c_chi2test-        computeIntegral = xform0 c_th2c_computeintegral         directoryAutoAdd = xform1 c_th2c_directoryautoadd         divide = xform5 c_th2c_divide         drawCopyTH1 = xform1 c_th2c_drawcopyth1@@ -162,9 +170,6 @@         getRMS = xform1 c_th2c_getrms         getRMSError = xform1 c_th2c_getrmserror         getSkewness = xform1 c_th2c_getskewness-        integral1 = xform3 c_th2c_integral1-        interpolate1 = xform1 c_th2c_interpolate1-        interpolate2 = xform2 c_th2c_interpolate2         interpolate3 = xform3 c_th2c_interpolate3         kolmogorovTest = xform2 c_th2c_kolmogorovtest         labelsDeflate = xform1 c_th2c_labelsdeflate@@ -219,12 +224,12 @@         smooth = xform2 c_th2c_smooth         sumw2 = xform0 c_th2c_sumw2 -instance ITNamed TH2C where+instance () => ITNamed (TH2C) where         setName = xform1 c_th2c_setname         setNameTitle = xform2 c_th2c_setnametitle         setTitle = xform1 c_th2c_settitle -instance ITAttLine TH2C where+instance () => ITAttLine (TH2C) where         getLineColor = xform0 c_th2c_getlinecolor         getLineStyle = xform0 c_th2c_getlinestyle         getLineWidth = xform0 c_th2c_getlinewidth@@ -234,11 +239,11 @@         setLineStyle = xform1 c_th2c_setlinestyle         setLineWidth = xform1 c_th2c_setlinewidth -instance ITAttFill TH2C where+instance () => ITAttFill (TH2C) where         setFillColor = xform1 c_th2c_setfillcolor         setFillStyle = xform1 c_th2c_setfillstyle -instance ITAttMarker TH2C where+instance () => ITAttMarker (TH2C) where         getMarkerColor = xform0 c_th2c_getmarkercolor         getMarkerStyle = xform0 c_th2c_getmarkerstyle         getMarkerSize = xform0 c_th2c_getmarkersize@@ -248,7 +253,8 @@         setMarkerStyle = xform1 c_th2c_setmarkerstyle         setMarkerSize = xform1 c_th2c_setmarkersize -instance ITObject TH2C where+instance () => ITObject (TH2C) where+        clear = xform1 c_th2c_clear         draw = xform1 c_th2c_draw         findObject = xform1 c_th2c_findobject         getName = xform0 c_th2c_getname@@ -257,8 +263,12 @@         printObj = xform1 c_th2c_printobj         saveAs = xform2 c_th2c_saveas         write = xform3 c_th2c_write+        write_ = xform0 c_th2c_write_ -instance IDeletable TH2C where+instance () => IDeletable (TH2C) where         delete = xform0 c_th2c_delete -instance ITArray TH2C+instance () => ITArray (TH2C) where+        getAt = xform1 c_th2c_getat+        setArray = xform1 c_th2c_setarray+        setAt = xform2 c_th2c_setat
src/HROOT/Hist/TH2C/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2C.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH2.Interface import HROOT.Core.TArrayC.Interface -class (ITH2 a, ITArrayC a) => ITH2C a+class (ITH2 a, ITArrayC a) => ITH2C a where  upcastTH2C :: forall a . (FPtr a, ITH2C a) => a -> TH2C upcastTH2C h
src/HROOT/Hist/TH2C/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2C  newtype TH2C = TH2C (Ptr RawTH2C)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH2C where+instance () => FPtr (TH2C) where         type Raw TH2C = RawTH2C         get_fptr (TH2C ptr) = ptr         cast_fptr_to_obj = TH2C
src/HROOT/Hist/TH2D/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2D.RawType import HROOT.Hist.TH2D.Interface -instance (ITH2D a, FPtr a) => Castable a (Ptr RawTH2D) where+instance (ITH2D a, FPtr a) => Castable (a) (Ptr RawTH2D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2D (Ptr RawTH2D) where+instance () => Castable (TH2D) (Ptr RawTH2D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2D/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2D.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH2D.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,594 +17,683 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2D.h TH2D_fill2" c_th2d_fill2-               :: Ptr RawTH2D -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fill2"+               c_th2d_fill2 :: Ptr RawTH2D -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_fill2w"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fill2w"                c_th2d_fill2w ::                Ptr RawTH2D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_fillN2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fillN2"                c_th2d_filln2 ::                Ptr RawTH2D ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_fillRandom2"-               c_th2d_fillrandom2 :: Ptr RawTH2D -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_fillRandom2" c_th2d_fillrandom2 ::+               Ptr RawTH2D -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_findFirstBinAbove2"-               c_th2d_findfirstbinabove2 ::-               Ptr RawTH2D -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_findFirstBinAbove2" c_th2d_findfirstbinabove2+               :: Ptr RawTH2D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_findLastBinAbove2"-               c_th2d_findlastbinabove2 ::-               Ptr RawTH2D -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_findLastBinAbove2" c_th2d_findlastbinabove2+               :: Ptr RawTH2D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_FitSlicesX"-               c_th2d_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FitSlicesX" c_th2d_fitslicesx ::                Ptr RawTH2D ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FitSlicesY"-               c_th2d_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FitSlicesY" c_th2d_fitslicesy ::                Ptr RawTH2D ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2D.h TH2D_getCorrelationFactor2"                c_th2d_getcorrelationfactor2 ::                Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_getCovariance2"-               c_th2d_getcovariance2 :: Ptr RawTH2D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getCovariance2" c_th2d_getcovariance2 ::+               Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_integral2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_integral2"                c_th2d_integral2 ::                Ptr RawTH2D ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_rebinX2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_rebinX2"                c_th2d_rebinx2 :: Ptr RawTH2D -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2D.h TH2D_rebinY2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_rebinY2"                c_th2d_rebiny2 :: Ptr RawTH2D -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2D.h TH2D_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Rebin2D"                c_th2d_rebin2d ::                Ptr RawTH2D -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetShowProjectionX"-               c_th2d_setshowprojectionx :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetShowProjectionX" c_th2d_setshowprojectionx+               :: Ptr RawTH2D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetShowProjectionY"-               c_th2d_setshowprojectiony :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetShowProjectionY" c_th2d_setshowprojectiony+               :: Ptr RawTH2D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Add" c_th2d_add ::-               Ptr RawTH2D -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Add"+               c_th2d_add :: Ptr RawTH2D -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_AddBinContent"-               c_th2d_addbincontent :: Ptr RawTH2D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_AddBinContent" c_th2d_addbincontent ::+               Ptr RawTH2D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Chi2Test"                c_th2d_chi2test ::-               Ptr RawTH2D -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2D.h TH2D_ComputeIntegral"-               c_th2d_computeintegral :: Ptr RawTH2D -> IO CDouble+               Ptr RawTH2D -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_DirectoryAutoAdd"-               c_th2d_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_DirectoryAutoAdd" c_th2d_directoryautoadd ::                Ptr RawTH2D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Divide"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Divide"                c_th2d_divide ::                Ptr RawTH2D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_drawCopyTH1"-               c_th2d_drawcopyth1 :: Ptr RawTH2D -> CString -> IO (Ptr RawTH2D)+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_drawCopyTH1" c_th2d_drawcopyth1 ::+               Ptr RawTH2D -> CString -> IO (Ptr RawTH2D) -foreign import ccall safe "HROOTHistTH2D.h TH2D_DrawNormalized"-               c_th2d_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_DrawNormalized" c_th2d_drawnormalized ::                Ptr RawTH2D -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2D.h TH2D_drawPanelTH1"-               c_th2d_drawpanelth1 :: Ptr RawTH2D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_drawPanelTH1" c_th2d_drawpanelth1 ::+               Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_BufferEmpty"-               c_th2d_bufferempty :: Ptr RawTH2D -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_BufferEmpty" c_th2d_bufferempty ::+               Ptr RawTH2D -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_evalF" c_th2d_evalf-               :: Ptr RawTH2D -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_evalF"+               c_th2d_evalf :: Ptr RawTH2D -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FFT" c_th2d_fft ::+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_FFT"+               c_th2d_fft ::                Ptr RawTH2D -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2D.h TH2D_fill1" c_th2d_fill1-               :: Ptr RawTH2D -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fill1"+               c_th2d_fill1 :: Ptr RawTH2D -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_fill1w"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fill1w"                c_th2d_fill1w :: Ptr RawTH2D -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_fillN1"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_fillN1"                c_th2d_filln1 ::-               Ptr RawTH2D ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH2D -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FillRandom"-               c_th2d_fillrandom :: Ptr RawTH2D -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FillRandom" c_th2d_fillrandom ::+               Ptr RawTH2D -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FindBin"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_FindBin"                c_th2d_findbin ::                Ptr RawTH2D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_FindFixBin"-               c_th2d_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FindFixBin" c_th2d_findfixbin ::                Ptr RawTH2D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_FindFirstBinAbove"-               c_th2d_findfirstbinabove ::-               Ptr RawTH2D -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FindFirstBinAbove" c_th2d_findfirstbinabove+               :: Ptr RawTH2D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_FindLastBinAbove"-               c_th2d_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FindLastBinAbove" c_th2d_findlastbinabove ::                Ptr RawTH2D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_Fit" c_th2d_fit ::+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Fit"+               c_th2d_fit ::                Ptr RawTH2D ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FitPanelTH1"-               c_th2d_fitpanelth1 :: Ptr RawTH2D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FitPanelTH1" c_th2d_fitpanelth1 ::+               Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_getNdivisionA"-               c_th2d_getndivisiona :: Ptr RawTH2D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getNdivisionA" c_th2d_getndivisiona ::+               Ptr RawTH2D -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_getAxisColorA"-               c_th2d_getaxiscolora :: Ptr RawTH2D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getAxisColorA" c_th2d_getaxiscolora ::+               Ptr RawTH2D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_getLabelColorA"-               c_th2d_getlabelcolora :: Ptr RawTH2D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getLabelColorA" c_th2d_getlabelcolora ::+               Ptr RawTH2D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_getLabelFontA"-               c_th2d_getlabelfonta :: Ptr RawTH2D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getLabelFontA" c_th2d_getlabelfonta ::+               Ptr RawTH2D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_getLabelOffsetA"-               c_th2d_getlabeloffseta :: Ptr RawTH2D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getLabelOffsetA" c_th2d_getlabeloffseta ::+               Ptr RawTH2D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_getLabelSizeA"-               c_th2d_getlabelsizea :: Ptr RawTH2D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getLabelSizeA" c_th2d_getlabelsizea ::+               Ptr RawTH2D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_getTitleFontA"-               c_th2d_gettitlefonta :: Ptr RawTH2D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getTitleFontA" c_th2d_gettitlefonta ::+               Ptr RawTH2D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_getTitleOffsetA"-               c_th2d_gettitleoffseta :: Ptr RawTH2D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getTitleOffsetA" c_th2d_gettitleoffseta ::+               Ptr RawTH2D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_getTitleSizeA"-               c_th2d_gettitlesizea :: Ptr RawTH2D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getTitleSizeA" c_th2d_gettitlesizea ::+               Ptr RawTH2D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_getTickLengthA"-               c_th2d_getticklengtha :: Ptr RawTH2D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getTickLengthA" c_th2d_getticklengtha ::+               Ptr RawTH2D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBarOffset"-               c_th2d_getbaroffset :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBarOffset" c_th2d_getbaroffset ::+               Ptr RawTH2D -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBarWidth"-               c_th2d_getbarwidth :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBarWidth" c_th2d_getbarwidth ::+               Ptr RawTH2D -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetContour"-               c_th2d_getcontour :: Ptr RawTH2D -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetContour" c_th2d_getcontour ::+               Ptr RawTH2D -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetContourLevel"-               c_th2d_getcontourlevel :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetContourLevel" c_th2d_getcontourlevel ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetContourLevelPad"-               c_th2d_getcontourlevelpad :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetContourLevelPad" c_th2d_getcontourlevelpad+               :: Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBin"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetBin"                c_th2d_getbin :: Ptr RawTH2D -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinCenter"-               c_th2d_getbincenter :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinCenter" c_th2d_getbincenter ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinContent1"-               c_th2d_getbincontent1 :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinContent1" c_th2d_getbincontent1 ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinContent2"-               c_th2d_getbincontent2 :: Ptr RawTH2D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinContent2" c_th2d_getbincontent2 ::+               Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinContent3"-               c_th2d_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinContent3" c_th2d_getbincontent3 ::                Ptr RawTH2D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinError1"-               c_th2d_getbinerror1 :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinError1" c_th2d_getbinerror1 ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinError2"-               c_th2d_getbinerror2 :: Ptr RawTH2D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinError2" c_th2d_getbinerror2 ::+               Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinError3"-               c_th2d_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinError3" c_th2d_getbinerror3 ::                Ptr RawTH2D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinLowEdge"-               c_th2d_getbinlowedge :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinLowEdge" c_th2d_getbinlowedge ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetBinWidth"-               c_th2d_getbinwidth :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetBinWidth" c_th2d_getbinwidth ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetCellContent"-               c_th2d_getcellcontent :: Ptr RawTH2D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetCellContent" c_th2d_getcellcontent ::+               Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetCellError"-               c_th2d_getcellerror :: Ptr RawTH2D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetCellError" c_th2d_getcellerror ::+               Ptr RawTH2D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetEntries"-               c_th2d_getentries :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetEntries" c_th2d_getentries ::+               Ptr RawTH2D -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2D.h TH2D_GetEffectiveEntries"                c_th2d_geteffectiveentries :: Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetFunction"-               c_th2d_getfunction :: Ptr RawTH2D -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetFunction" c_th2d_getfunction ::+               Ptr RawTH2D -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetDimension"-               c_th2d_getdimension :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetDimension" c_th2d_getdimension ::+               Ptr RawTH2D -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetKurtosis"-               c_th2d_getkurtosis :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetKurtosis" c_th2d_getkurtosis ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetLowEdge"-               c_th2d_getlowedge :: Ptr RawTH2D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetLowEdge" c_th2d_getlowedge ::+               Ptr RawTH2D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_getMaximumTH1"-               c_th2d_getmaximumth1 :: Ptr RawTH2D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getMaximumTH1" c_th2d_getmaximumth1 ::+               Ptr RawTH2D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMaximumBin"-               c_th2d_getmaximumbin :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMaximumBin" c_th2d_getmaximumbin ::+               Ptr RawTH2D -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMaximumStored"-               c_th2d_getmaximumstored :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMaximumStored" c_th2d_getmaximumstored ::+               Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_getMinimumTH1"-               c_th2d_getminimumth1 :: Ptr RawTH2D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getMinimumTH1" c_th2d_getminimumth1 ::+               Ptr RawTH2D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMinimumBin"-               c_th2d_getminimumbin :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMinimumBin" c_th2d_getminimumbin ::+               Ptr RawTH2D -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMinimumStored"-               c_th2d_getminimumstored :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMinimumStored" c_th2d_getminimumstored ::+               Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMean"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetMean"                c_th2d_getmean :: Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMeanError"-               c_th2d_getmeanerror :: Ptr RawTH2D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMeanError" c_th2d_getmeanerror ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetNbinsX"                c_th2d_getnbinsx :: Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetNbinsY"                c_th2d_getnbinsy :: Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetNbinsZ"                c_th2d_getnbinsz :: Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_getQuantilesTH1"-               c_th2d_getquantilesth1 ::-               Ptr RawTH2D -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_getQuantilesTH1" c_th2d_getquantilesth1 ::+               Ptr RawTH2D -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetRandom"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetRandom"                c_th2d_getrandom :: Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetStats"-               c_th2d_getstats :: Ptr RawTH2D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetStats"+               c_th2d_getstats :: Ptr RawTH2D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetSumOfWeights"-               c_th2d_getsumofweights :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetSumOfWeights" c_th2d_getsumofweights ::+               Ptr RawTH2D -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetSumw2"                c_th2d_getsumw2 :: Ptr RawTH2D -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetSumw2N"                c_th2d_getsumw2n :: Ptr RawTH2D -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetRMS"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetRMS"                c_th2d_getrms :: Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetRMSError"-               c_th2d_getrmserror :: Ptr RawTH2D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2D.h TH2D_GetSkewness"-               c_th2d_getskewness :: Ptr RawTH2D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2D.h TH2D_integral1"-               c_th2d_integral1 ::-               Ptr RawTH2D -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2D.h TH2D_interpolate1"-               c_th2d_interpolate1 :: Ptr RawTH2D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetRMSError" c_th2d_getrmserror ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_interpolate2"-               c_th2d_interpolate2 ::-               Ptr RawTH2D -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetSkewness" c_th2d_getskewness ::+               Ptr RawTH2D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_interpolate3"-               c_th2d_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_interpolate3" c_th2d_interpolate3 ::                Ptr RawTH2D -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_KolmogorovTest"-               c_th2d_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_KolmogorovTest" c_th2d_kolmogorovtest ::                Ptr RawTH2D -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2D.h TH2D_LabelsDeflate"-               c_th2d_labelsdeflate :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_LabelsDeflate" c_th2d_labelsdeflate ::+               Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_LabelsInflate"-               c_th2d_labelsinflate :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_LabelsInflate" c_th2d_labelsinflate ::+               Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_LabelsOption"-               c_th2d_labelsoption :: Ptr RawTH2D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_LabelsOption" c_th2d_labelsoption ::+               Ptr RawTH2D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_multiflyF"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_multiflyF"                c_th2d_multiflyf :: Ptr RawTH2D -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Multiply"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Multiply"                c_th2d_multiply ::                Ptr RawTH2D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_PutStats"-               c_th2d_putstats :: Ptr RawTH2D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_PutStats"+               c_th2d_putstats :: Ptr RawTH2D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Rebin" c_th2d_rebin-               ::-               Ptr RawTH2D -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Rebin"+               c_th2d_rebin ::+               Ptr RawTH2D -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2D.h TH2D_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_RebinAxis"                c_th2d_rebinaxis :: Ptr RawTH2D -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Rebuild"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Rebuild"                c_th2d_rebuild :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_RecursiveRemove"-               c_th2d_recursiveremove :: Ptr RawTH2D -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_RecursiveRemove" c_th2d_recursiveremove ::+               Ptr RawTH2D -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Reset" c_th2d_reset-               :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Reset"+               c_th2d_reset :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_ResetStats"-               c_th2d_resetstats :: Ptr RawTH2D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_ResetStats" c_th2d_resetstats ::+               Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Scale" c_th2d_scale-               :: Ptr RawTH2D -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Scale"+               c_th2d_scale :: Ptr RawTH2D -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setAxisColorA"-               c_th2d_setaxiscolora :: Ptr RawTH2D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setAxisColorA" c_th2d_setaxiscolora ::+               Ptr RawTH2D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetAxisRange"-               c_th2d_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetAxisRange" c_th2d_setaxisrange ::                Ptr RawTH2D -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetBarOffset"-               c_th2d_setbaroffset :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetBarOffset" c_th2d_setbaroffset ::+               Ptr RawTH2D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetBarWidth"-               c_th2d_setbarwidth :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetBarWidth" c_th2d_setbarwidth ::+               Ptr RawTH2D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinContent1"-               c_th2d_setbincontent1 :: Ptr RawTH2D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinContent1" c_th2d_setbincontent1 ::+               Ptr RawTH2D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinContent2"-               c_th2d_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinContent2" c_th2d_setbincontent2 ::                Ptr RawTH2D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinContent3"-               c_th2d_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinContent3" c_th2d_setbincontent3 ::                Ptr RawTH2D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinError1"-               c_th2d_setbinerror1 :: Ptr RawTH2D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinError1" c_th2d_setbinerror1 ::+               Ptr RawTH2D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinError2"-               c_th2d_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinError2" c_th2d_setbinerror2 ::                Ptr RawTH2D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBinError3"-               c_th2d_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setBinError3" c_th2d_setbinerror3 ::                Ptr RawTH2D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBins1"-               c_th2d_setbins1 :: Ptr RawTH2D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_setBins1"+               c_th2d_setbins1 :: Ptr RawTH2D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBins2"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_setBins2"                c_th2d_setbins2 ::-               Ptr RawTH2D ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2D -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setBins3"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_setBins3"                c_th2d_setbins3 ::                Ptr RawTH2D ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetBinsLength"-               c_th2d_setbinslength :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetBinsLength" c_th2d_setbinslength ::+               Ptr RawTH2D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetBuffer"                c_th2d_setbuffer :: Ptr RawTH2D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetCellContent"-               c_th2d_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetCellContent" c_th2d_setcellcontent ::                Ptr RawTH2D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetContent"-               c_th2d_setcontent :: Ptr RawTH2D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetContent" c_th2d_setcontent ::+               Ptr RawTH2D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetContour"-               c_th2d_setcontour :: Ptr RawTH2D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetContour" c_th2d_setcontour ::+               Ptr RawTH2D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetContourLevel"-               c_th2d_setcontourlevel :: Ptr RawTH2D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetContourLevel" c_th2d_setcontourlevel ::+               Ptr RawTH2D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetDirectory"-               c_th2d_setdirectory :: Ptr RawTH2D -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetDirectory" c_th2d_setdirectory ::+               Ptr RawTH2D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetEntries"-               c_th2d_setentries :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetEntries" c_th2d_setentries ::+               Ptr RawTH2D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetError"-               c_th2d_seterror :: Ptr RawTH2D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetError"+               c_th2d_seterror :: Ptr RawTH2D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setLabelColorA"-               c_th2d_setlabelcolora :: Ptr RawTH2D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setLabelColorA" c_th2d_setlabelcolora ::+               Ptr RawTH2D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setLabelSizeA"-               c_th2d_setlabelsizea :: Ptr RawTH2D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setLabelSizeA" c_th2d_setlabelsizea ::+               Ptr RawTH2D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setLabelFontA"-               c_th2d_setlabelfonta :: Ptr RawTH2D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setLabelFontA" c_th2d_setlabelfonta ::+               Ptr RawTH2D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_setLabelOffsetA"-               c_th2d_setlabeloffseta ::-               Ptr RawTH2D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_setLabelOffsetA" c_th2d_setlabeloffseta ::+               Ptr RawTH2D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetMaximum"-               c_th2d_setmaximum :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetMaximum" c_th2d_setmaximum ::+               Ptr RawTH2D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetMinimum"-               c_th2d_setminimum :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetMinimum" c_th2d_setminimum ::+               Ptr RawTH2D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetNormFactor"-               c_th2d_setnormfactor :: Ptr RawTH2D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetNormFactor" c_th2d_setnormfactor ::+               Ptr RawTH2D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetStats"-               c_th2d_setstats :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetStats"+               c_th2d_setstats :: Ptr RawTH2D -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetOption"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetOption"                c_th2d_setoption :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetXTitle"                c_th2d_setxtitle :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetYTitle"                c_th2d_setytitle :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetZTitle"                c_th2d_setztitle :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_ShowBackground"-               c_th2d_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_ShowBackground" c_th2d_showbackground ::                Ptr RawTH2D -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2D.h TH2D_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_ShowPeaks"                c_th2d_showpeaks ::                Ptr RawTH2D -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_Smooth"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Smooth"                c_th2d_smooth :: Ptr RawTH2D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Sumw2" c_th2d_sumw2-               :: Ptr RawTH2D -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Sumw2"+               c_th2d_sumw2 :: Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetName"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetName"                c_th2d_setname :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetNameTitle"-               c_th2d_setnametitle :: Ptr RawTH2D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetNameTitle" c_th2d_setnametitle ::+               Ptr RawTH2D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetTitle"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetTitle"                c_th2d_settitle :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetLineColor"-               c_th2d_getlinecolor :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetLineColor" c_th2d_getlinecolor ::+               Ptr RawTH2D -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetLineStyle"-               c_th2d_getlinestyle :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetLineStyle" c_th2d_getlinestyle ::+               Ptr RawTH2D -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetLineWidth"-               c_th2d_getlinewidth :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetLineWidth" c_th2d_getlinewidth ::+               Ptr RawTH2D -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_ResetAttLine"-               c_th2d_resetattline :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_ResetAttLine" c_th2d_resetattline ::+               Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetLineAttributes"-               c_th2d_setlineattributes :: Ptr RawTH2D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetLineAttributes" c_th2d_setlineattributes+               :: Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetLineColor"-               c_th2d_setlinecolor :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetLineColor" c_th2d_setlinecolor ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetLineStyle"-               c_th2d_setlinestyle :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetLineStyle" c_th2d_setlinestyle ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetLineWidth"-               c_th2d_setlinewidth :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetLineWidth" c_th2d_setlinewidth ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetFillColor"-               c_th2d_setfillcolor :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetFillColor" c_th2d_setfillcolor ::+               Ptr RawTH2D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetFillStyle"-               c_th2d_setfillstyle :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetFillStyle" c_th2d_setfillstyle ::+               Ptr RawTH2D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMarkerColor"-               c_th2d_getmarkercolor :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMarkerColor" c_th2d_getmarkercolor ::+               Ptr RawTH2D -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMarkerStyle"-               c_th2d_getmarkerstyle :: Ptr RawTH2D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMarkerStyle" c_th2d_getmarkerstyle ::+               Ptr RawTH2D -> IO CShort -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetMarkerSize"-               c_th2d_getmarkersize :: Ptr RawTH2D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_GetMarkerSize" c_th2d_getmarkersize ::+               Ptr RawTH2D -> IO CFloat -foreign import ccall safe "HROOTHistTH2D.h TH2D_ResetAttMarker"-               c_th2d_resetattmarker :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_ResetAttMarker" c_th2d_resetattmarker ::+               Ptr RawTH2D -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2D.h TH2D_SetMarkerAttributes"                c_th2d_setmarkerattributes :: Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetMarkerColor"-               c_th2d_setmarkercolor :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetMarkerColor" c_th2d_setmarkercolor ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetMarkerStyle"-               c_th2d_setmarkerstyle :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetMarkerStyle" c_th2d_setmarkerstyle ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SetMarkerSize"-               c_th2d_setmarkersize :: Ptr RawTH2D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_SetMarkerSize" c_th2d_setmarkersize ::+               Ptr RawTH2D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Draw" c_th2d_draw-               :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Clear"+               c_th2d_clear :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_FindObject"-               c_th2d_findobject :: Ptr RawTH2D -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Draw"+               c_th2d_draw :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_GetName"+foreign import ccall interruptible+               "HROOTHistTH2D.h TH2D_FindObject" c_th2d_findobject ::+               Ptr RawTH2D -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetName"                c_th2d_getname :: Ptr RawTH2D -> IO CString -foreign import ccall safe "HROOTHistTH2D.h TH2D_IsA" c_th2d_isa ::-               Ptr RawTH2D -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_IsA"+               c_th2d_isa :: Ptr RawTH2D -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2D.h TH2D_Paint" c_th2d_paint-               :: Ptr RawTH2D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Paint"+               c_th2d_paint :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_printObj"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_printObj"                c_th2d_printobj :: Ptr RawTH2D -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_SaveAs"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SaveAs"                c_th2d_saveas :: Ptr RawTH2D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_Write" c_th2d_write-               :: Ptr RawTH2D -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Write"+               c_th2d_write :: Ptr RawTH2D -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2D.h TH2D_delete"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_Write_"+               c_th2d_write_ :: Ptr RawTH2D -> IO CInt++foreign import ccall interruptible "HROOTHistTH2D.h TH2D_delete"                c_th2d_delete :: Ptr RawTH2D -> IO () -foreign import ccall safe "HROOTHistTH2D.h TH2D_newTH2D"+foreign import ccall interruptible "HROOTHistTH2D.h TH2D_GetAt"+               c_th2d_getat :: Ptr RawTH2D -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetArray"+               c_th2d_setarray :: Ptr RawTH2D -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2D.h TH2D_SetAt"+               c_th2d_setat :: Ptr RawTH2D -> CDouble -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2D.h TH2D_newTH2D"                c_th2d_newth2d ::                CString ->                  CString ->
src/HROOT/Hist/TH2D/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2D.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2D.RawType import HROOT.Hist.TH2D.FFI import HROOT.Hist.TH2D.Interface import HROOT.Hist.TH2D.Cast+import HROOT.Hist.TH2D.RawType+import HROOT.Hist.TH2D.Cast+import HROOT.Hist.TH2D.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -54,16 +63,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH2D TH2D+instance () => ITH2D (TH2D) where -instance ITH2 TH2D where+instance () => ITH2 (TH2D) where         fill2 = xform2 c_th2d_fill2         fill2w = xform3 c_th2d_fill2w         fillN2 = xform5 c_th2d_filln2@@ -81,13 +90,12 @@         setShowProjectionX = xform1 c_th2d_setshowprojectionx         setShowProjectionY = xform1 c_th2d_setshowprojectiony -instance ITArrayD TH2D+instance () => ITArrayD (TH2D) where -instance ITH1 TH2D where+instance () => ITH1 (TH2D) where         add = xform2 c_th2d_add         addBinContent = xform2 c_th2d_addbincontent         chi2Test = xform3 c_th2d_chi2test-        computeIntegral = xform0 c_th2d_computeintegral         directoryAutoAdd = xform1 c_th2d_directoryautoadd         divide = xform5 c_th2d_divide         drawCopyTH1 = xform1 c_th2d_drawcopyth1@@ -159,9 +167,6 @@         getRMS = xform1 c_th2d_getrms         getRMSError = xform1 c_th2d_getrmserror         getSkewness = xform1 c_th2d_getskewness-        integral1 = xform3 c_th2d_integral1-        interpolate1 = xform1 c_th2d_interpolate1-        interpolate2 = xform2 c_th2d_interpolate2         interpolate3 = xform3 c_th2d_interpolate3         kolmogorovTest = xform2 c_th2d_kolmogorovtest         labelsDeflate = xform1 c_th2d_labelsdeflate@@ -216,12 +221,12 @@         smooth = xform2 c_th2d_smooth         sumw2 = xform0 c_th2d_sumw2 -instance ITNamed TH2D where+instance () => ITNamed (TH2D) where         setName = xform1 c_th2d_setname         setNameTitle = xform2 c_th2d_setnametitle         setTitle = xform1 c_th2d_settitle -instance ITAttLine TH2D where+instance () => ITAttLine (TH2D) where         getLineColor = xform0 c_th2d_getlinecolor         getLineStyle = xform0 c_th2d_getlinestyle         getLineWidth = xform0 c_th2d_getlinewidth@@ -231,11 +236,11 @@         setLineStyle = xform1 c_th2d_setlinestyle         setLineWidth = xform1 c_th2d_setlinewidth -instance ITAttFill TH2D where+instance () => ITAttFill (TH2D) where         setFillColor = xform1 c_th2d_setfillcolor         setFillStyle = xform1 c_th2d_setfillstyle -instance ITAttMarker TH2D where+instance () => ITAttMarker (TH2D) where         getMarkerColor = xform0 c_th2d_getmarkercolor         getMarkerStyle = xform0 c_th2d_getmarkerstyle         getMarkerSize = xform0 c_th2d_getmarkersize@@ -245,7 +250,8 @@         setMarkerStyle = xform1 c_th2d_setmarkerstyle         setMarkerSize = xform1 c_th2d_setmarkersize -instance ITObject TH2D where+instance () => ITObject (TH2D) where+        clear = xform1 c_th2d_clear         draw = xform1 c_th2d_draw         findObject = xform1 c_th2d_findobject         getName = xform0 c_th2d_getname@@ -254,11 +260,15 @@         printObj = xform1 c_th2d_printobj         saveAs = xform2 c_th2d_saveas         write = xform3 c_th2d_write+        write_ = xform0 c_th2d_write_ -instance IDeletable TH2D where+instance () => IDeletable (TH2D) where         delete = xform0 c_th2d_delete -instance ITArray TH2D+instance () => ITArray (TH2D) where+        getAt = xform1 c_th2d_getat+        setArray = xform1 c_th2d_setarray+        setAt = xform2 c_th2d_setat  newTH2D ::           (Castable c1 CString, Castable c0 CString) =>
src/HROOT/Hist/TH2D/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2D.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH2.Interface import HROOT.Core.TArrayD.Interface -class (ITH2 a, ITArrayD a) => ITH2D a+class (ITH2 a, ITArrayD a) => ITH2D a where  upcastTH2D :: forall a . (FPtr a, ITH2D a) => a -> TH2D upcastTH2D h
src/HROOT/Hist/TH2D/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2D  newtype TH2D = TH2D (Ptr RawTH2D)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH2D where+instance () => FPtr (TH2D) where         type Raw TH2D = RawTH2D         get_fptr (TH2D ptr) = ptr         cast_fptr_to_obj = TH2D
src/HROOT/Hist/TH2F/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2F.RawType import HROOT.Hist.TH2F.Interface -instance (ITH2F a, FPtr a) => Castable a (Ptr RawTH2F) where+instance (ITH2F a, FPtr a) => Castable (a) (Ptr RawTH2F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2F (Ptr RawTH2F) where+instance () => Castable (TH2F) (Ptr RawTH2F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2F/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2F.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH2F.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,594 +17,683 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2F.h TH2F_fill2" c_th2f_fill2-               :: Ptr RawTH2F -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fill2"+               c_th2f_fill2 :: Ptr RawTH2F -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_fill2w"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fill2w"                c_th2f_fill2w ::                Ptr RawTH2F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_fillN2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fillN2"                c_th2f_filln2 ::                Ptr RawTH2F ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_fillRandom2"-               c_th2f_fillrandom2 :: Ptr RawTH2F -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_fillRandom2" c_th2f_fillrandom2 ::+               Ptr RawTH2F -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_findFirstBinAbove2"-               c_th2f_findfirstbinabove2 ::-               Ptr RawTH2F -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_findFirstBinAbove2" c_th2f_findfirstbinabove2+               :: Ptr RawTH2F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_findLastBinAbove2"-               c_th2f_findlastbinabove2 ::-               Ptr RawTH2F -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_findLastBinAbove2" c_th2f_findlastbinabove2+               :: Ptr RawTH2F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_FitSlicesX"-               c_th2f_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FitSlicesX" c_th2f_fitslicesx ::                Ptr RawTH2F ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FitSlicesY"-               c_th2f_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FitSlicesY" c_th2f_fitslicesy ::                Ptr RawTH2F ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2F.h TH2F_getCorrelationFactor2"                c_th2f_getcorrelationfactor2 ::                Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_getCovariance2"-               c_th2f_getcovariance2 :: Ptr RawTH2F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getCovariance2" c_th2f_getcovariance2 ::+               Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_integral2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_integral2"                c_th2f_integral2 ::                Ptr RawTH2F ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_rebinX2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_rebinX2"                c_th2f_rebinx2 :: Ptr RawTH2F -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2F.h TH2F_rebinY2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_rebinY2"                c_th2f_rebiny2 :: Ptr RawTH2F -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2F.h TH2F_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Rebin2D"                c_th2f_rebin2d ::                Ptr RawTH2F -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetShowProjectionX"-               c_th2f_setshowprojectionx :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetShowProjectionX" c_th2f_setshowprojectionx+               :: Ptr RawTH2F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetShowProjectionY"-               c_th2f_setshowprojectiony :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetShowProjectionY" c_th2f_setshowprojectiony+               :: Ptr RawTH2F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Add" c_th2f_add ::-               Ptr RawTH2F -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Add"+               c_th2f_add :: Ptr RawTH2F -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_AddBinContent"-               c_th2f_addbincontent :: Ptr RawTH2F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_AddBinContent" c_th2f_addbincontent ::+               Ptr RawTH2F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Chi2Test"                c_th2f_chi2test ::-               Ptr RawTH2F -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2F.h TH2F_ComputeIntegral"-               c_th2f_computeintegral :: Ptr RawTH2F -> IO CDouble+               Ptr RawTH2F -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_DirectoryAutoAdd"-               c_th2f_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_DirectoryAutoAdd" c_th2f_directoryautoadd ::                Ptr RawTH2F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Divide"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Divide"                c_th2f_divide ::                Ptr RawTH2F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_drawCopyTH1"-               c_th2f_drawcopyth1 :: Ptr RawTH2F -> CString -> IO (Ptr RawTH2F)+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_drawCopyTH1" c_th2f_drawcopyth1 ::+               Ptr RawTH2F -> CString -> IO (Ptr RawTH2F) -foreign import ccall safe "HROOTHistTH2F.h TH2F_DrawNormalized"-               c_th2f_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_DrawNormalized" c_th2f_drawnormalized ::                Ptr RawTH2F -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2F.h TH2F_drawPanelTH1"-               c_th2f_drawpanelth1 :: Ptr RawTH2F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_drawPanelTH1" c_th2f_drawpanelth1 ::+               Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_BufferEmpty"-               c_th2f_bufferempty :: Ptr RawTH2F -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_BufferEmpty" c_th2f_bufferempty ::+               Ptr RawTH2F -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_evalF" c_th2f_evalf-               :: Ptr RawTH2F -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_evalF"+               c_th2f_evalf :: Ptr RawTH2F -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FFT" c_th2f_fft ::+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_FFT"+               c_th2f_fft ::                Ptr RawTH2F -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2F.h TH2F_fill1" c_th2f_fill1-               :: Ptr RawTH2F -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fill1"+               c_th2f_fill1 :: Ptr RawTH2F -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_fill1w"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fill1w"                c_th2f_fill1w :: Ptr RawTH2F -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_fillN1"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_fillN1"                c_th2f_filln1 ::-               Ptr RawTH2F ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH2F -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FillRandom"-               c_th2f_fillrandom :: Ptr RawTH2F -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FillRandom" c_th2f_fillrandom ::+               Ptr RawTH2F -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FindBin"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_FindBin"                c_th2f_findbin ::                Ptr RawTH2F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_FindFixBin"-               c_th2f_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FindFixBin" c_th2f_findfixbin ::                Ptr RawTH2F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_FindFirstBinAbove"-               c_th2f_findfirstbinabove ::-               Ptr RawTH2F -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FindFirstBinAbove" c_th2f_findfirstbinabove+               :: Ptr RawTH2F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_FindLastBinAbove"-               c_th2f_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FindLastBinAbove" c_th2f_findlastbinabove ::                Ptr RawTH2F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_Fit" c_th2f_fit ::+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Fit"+               c_th2f_fit ::                Ptr RawTH2F ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FitPanelTH1"-               c_th2f_fitpanelth1 :: Ptr RawTH2F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FitPanelTH1" c_th2f_fitpanelth1 ::+               Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_getNdivisionA"-               c_th2f_getndivisiona :: Ptr RawTH2F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getNdivisionA" c_th2f_getndivisiona ::+               Ptr RawTH2F -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_getAxisColorA"-               c_th2f_getaxiscolora :: Ptr RawTH2F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getAxisColorA" c_th2f_getaxiscolora ::+               Ptr RawTH2F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_getLabelColorA"-               c_th2f_getlabelcolora :: Ptr RawTH2F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getLabelColorA" c_th2f_getlabelcolora ::+               Ptr RawTH2F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_getLabelFontA"-               c_th2f_getlabelfonta :: Ptr RawTH2F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getLabelFontA" c_th2f_getlabelfonta ::+               Ptr RawTH2F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_getLabelOffsetA"-               c_th2f_getlabeloffseta :: Ptr RawTH2F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getLabelOffsetA" c_th2f_getlabeloffseta ::+               Ptr RawTH2F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_getLabelSizeA"-               c_th2f_getlabelsizea :: Ptr RawTH2F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getLabelSizeA" c_th2f_getlabelsizea ::+               Ptr RawTH2F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_getTitleFontA"-               c_th2f_gettitlefonta :: Ptr RawTH2F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getTitleFontA" c_th2f_gettitlefonta ::+               Ptr RawTH2F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_getTitleOffsetA"-               c_th2f_gettitleoffseta :: Ptr RawTH2F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getTitleOffsetA" c_th2f_gettitleoffseta ::+               Ptr RawTH2F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_getTitleSizeA"-               c_th2f_gettitlesizea :: Ptr RawTH2F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getTitleSizeA" c_th2f_gettitlesizea ::+               Ptr RawTH2F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_getTickLengthA"-               c_th2f_getticklengtha :: Ptr RawTH2F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getTickLengthA" c_th2f_getticklengtha ::+               Ptr RawTH2F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBarOffset"-               c_th2f_getbaroffset :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBarOffset" c_th2f_getbaroffset ::+               Ptr RawTH2F -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBarWidth"-               c_th2f_getbarwidth :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBarWidth" c_th2f_getbarwidth ::+               Ptr RawTH2F -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetContour"-               c_th2f_getcontour :: Ptr RawTH2F -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetContour" c_th2f_getcontour ::+               Ptr RawTH2F -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetContourLevel"-               c_th2f_getcontourlevel :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetContourLevel" c_th2f_getcontourlevel ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetContourLevelPad"-               c_th2f_getcontourlevelpad :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetContourLevelPad" c_th2f_getcontourlevelpad+               :: Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBin"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetBin"                c_th2f_getbin :: Ptr RawTH2F -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinCenter"-               c_th2f_getbincenter :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinCenter" c_th2f_getbincenter ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinContent1"-               c_th2f_getbincontent1 :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinContent1" c_th2f_getbincontent1 ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinContent2"-               c_th2f_getbincontent2 :: Ptr RawTH2F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinContent2" c_th2f_getbincontent2 ::+               Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinContent3"-               c_th2f_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinContent3" c_th2f_getbincontent3 ::                Ptr RawTH2F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinError1"-               c_th2f_getbinerror1 :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinError1" c_th2f_getbinerror1 ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinError2"-               c_th2f_getbinerror2 :: Ptr RawTH2F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinError2" c_th2f_getbinerror2 ::+               Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinError3"-               c_th2f_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinError3" c_th2f_getbinerror3 ::                Ptr RawTH2F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinLowEdge"-               c_th2f_getbinlowedge :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinLowEdge" c_th2f_getbinlowedge ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetBinWidth"-               c_th2f_getbinwidth :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetBinWidth" c_th2f_getbinwidth ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetCellContent"-               c_th2f_getcellcontent :: Ptr RawTH2F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetCellContent" c_th2f_getcellcontent ::+               Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetCellError"-               c_th2f_getcellerror :: Ptr RawTH2F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetCellError" c_th2f_getcellerror ::+               Ptr RawTH2F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetEntries"-               c_th2f_getentries :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetEntries" c_th2f_getentries ::+               Ptr RawTH2F -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2F.h TH2F_GetEffectiveEntries"                c_th2f_geteffectiveentries :: Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetFunction"-               c_th2f_getfunction :: Ptr RawTH2F -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetFunction" c_th2f_getfunction ::+               Ptr RawTH2F -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetDimension"-               c_th2f_getdimension :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetDimension" c_th2f_getdimension ::+               Ptr RawTH2F -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetKurtosis"-               c_th2f_getkurtosis :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetKurtosis" c_th2f_getkurtosis ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetLowEdge"-               c_th2f_getlowedge :: Ptr RawTH2F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetLowEdge" c_th2f_getlowedge ::+               Ptr RawTH2F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_getMaximumTH1"-               c_th2f_getmaximumth1 :: Ptr RawTH2F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getMaximumTH1" c_th2f_getmaximumth1 ::+               Ptr RawTH2F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMaximumBin"-               c_th2f_getmaximumbin :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMaximumBin" c_th2f_getmaximumbin ::+               Ptr RawTH2F -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMaximumStored"-               c_th2f_getmaximumstored :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMaximumStored" c_th2f_getmaximumstored ::+               Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_getMinimumTH1"-               c_th2f_getminimumth1 :: Ptr RawTH2F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getMinimumTH1" c_th2f_getminimumth1 ::+               Ptr RawTH2F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMinimumBin"-               c_th2f_getminimumbin :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMinimumBin" c_th2f_getminimumbin ::+               Ptr RawTH2F -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMinimumStored"-               c_th2f_getminimumstored :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMinimumStored" c_th2f_getminimumstored ::+               Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMean"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetMean"                c_th2f_getmean :: Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMeanError"-               c_th2f_getmeanerror :: Ptr RawTH2F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMeanError" c_th2f_getmeanerror ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetNbinsX"                c_th2f_getnbinsx :: Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetNbinsY"                c_th2f_getnbinsy :: Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetNbinsZ"                c_th2f_getnbinsz :: Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_getQuantilesTH1"-               c_th2f_getquantilesth1 ::-               Ptr RawTH2F -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_getQuantilesTH1" c_th2f_getquantilesth1 ::+               Ptr RawTH2F -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetRandom"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetRandom"                c_th2f_getrandom :: Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetStats"-               c_th2f_getstats :: Ptr RawTH2F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetStats"+               c_th2f_getstats :: Ptr RawTH2F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetSumOfWeights"-               c_th2f_getsumofweights :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetSumOfWeights" c_th2f_getsumofweights ::+               Ptr RawTH2F -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetSumw2"                c_th2f_getsumw2 :: Ptr RawTH2F -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetSumw2N"                c_th2f_getsumw2n :: Ptr RawTH2F -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetRMS"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetRMS"                c_th2f_getrms :: Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetRMSError"-               c_th2f_getrmserror :: Ptr RawTH2F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2F.h TH2F_GetSkewness"-               c_th2f_getskewness :: Ptr RawTH2F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2F.h TH2F_integral1"-               c_th2f_integral1 ::-               Ptr RawTH2F -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2F.h TH2F_interpolate1"-               c_th2f_interpolate1 :: Ptr RawTH2F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetRMSError" c_th2f_getrmserror ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_interpolate2"-               c_th2f_interpolate2 ::-               Ptr RawTH2F -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetSkewness" c_th2f_getskewness ::+               Ptr RawTH2F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_interpolate3"-               c_th2f_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_interpolate3" c_th2f_interpolate3 ::                Ptr RawTH2F -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_KolmogorovTest"-               c_th2f_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_KolmogorovTest" c_th2f_kolmogorovtest ::                Ptr RawTH2F -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2F.h TH2F_LabelsDeflate"-               c_th2f_labelsdeflate :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_LabelsDeflate" c_th2f_labelsdeflate ::+               Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_LabelsInflate"-               c_th2f_labelsinflate :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_LabelsInflate" c_th2f_labelsinflate ::+               Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_LabelsOption"-               c_th2f_labelsoption :: Ptr RawTH2F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_LabelsOption" c_th2f_labelsoption ::+               Ptr RawTH2F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_multiflyF"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_multiflyF"                c_th2f_multiflyf :: Ptr RawTH2F -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Multiply"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Multiply"                c_th2f_multiply ::                Ptr RawTH2F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_PutStats"-               c_th2f_putstats :: Ptr RawTH2F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_PutStats"+               c_th2f_putstats :: Ptr RawTH2F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Rebin" c_th2f_rebin-               ::-               Ptr RawTH2F -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Rebin"+               c_th2f_rebin ::+               Ptr RawTH2F -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2F.h TH2F_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_RebinAxis"                c_th2f_rebinaxis :: Ptr RawTH2F -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Rebuild"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Rebuild"                c_th2f_rebuild :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_RecursiveRemove"-               c_th2f_recursiveremove :: Ptr RawTH2F -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_RecursiveRemove" c_th2f_recursiveremove ::+               Ptr RawTH2F -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Reset" c_th2f_reset-               :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Reset"+               c_th2f_reset :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_ResetStats"-               c_th2f_resetstats :: Ptr RawTH2F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_ResetStats" c_th2f_resetstats ::+               Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Scale" c_th2f_scale-               :: Ptr RawTH2F -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Scale"+               c_th2f_scale :: Ptr RawTH2F -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setAxisColorA"-               c_th2f_setaxiscolora :: Ptr RawTH2F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setAxisColorA" c_th2f_setaxiscolora ::+               Ptr RawTH2F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetAxisRange"-               c_th2f_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetAxisRange" c_th2f_setaxisrange ::                Ptr RawTH2F -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetBarOffset"-               c_th2f_setbaroffset :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetBarOffset" c_th2f_setbaroffset ::+               Ptr RawTH2F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetBarWidth"-               c_th2f_setbarwidth :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetBarWidth" c_th2f_setbarwidth ::+               Ptr RawTH2F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinContent1"-               c_th2f_setbincontent1 :: Ptr RawTH2F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinContent1" c_th2f_setbincontent1 ::+               Ptr RawTH2F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinContent2"-               c_th2f_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinContent2" c_th2f_setbincontent2 ::                Ptr RawTH2F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinContent3"-               c_th2f_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinContent3" c_th2f_setbincontent3 ::                Ptr RawTH2F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinError1"-               c_th2f_setbinerror1 :: Ptr RawTH2F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinError1" c_th2f_setbinerror1 ::+               Ptr RawTH2F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinError2"-               c_th2f_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinError2" c_th2f_setbinerror2 ::                Ptr RawTH2F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBinError3"-               c_th2f_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setBinError3" c_th2f_setbinerror3 ::                Ptr RawTH2F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBins1"-               c_th2f_setbins1 :: Ptr RawTH2F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_setBins1"+               c_th2f_setbins1 :: Ptr RawTH2F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBins2"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_setBins2"                c_th2f_setbins2 ::-               Ptr RawTH2F ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2F -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setBins3"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_setBins3"                c_th2f_setbins3 ::                Ptr RawTH2F ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetBinsLength"-               c_th2f_setbinslength :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetBinsLength" c_th2f_setbinslength ::+               Ptr RawTH2F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetBuffer"                c_th2f_setbuffer :: Ptr RawTH2F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetCellContent"-               c_th2f_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetCellContent" c_th2f_setcellcontent ::                Ptr RawTH2F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetContent"-               c_th2f_setcontent :: Ptr RawTH2F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetContent" c_th2f_setcontent ::+               Ptr RawTH2F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetContour"-               c_th2f_setcontour :: Ptr RawTH2F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetContour" c_th2f_setcontour ::+               Ptr RawTH2F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetContourLevel"-               c_th2f_setcontourlevel :: Ptr RawTH2F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetContourLevel" c_th2f_setcontourlevel ::+               Ptr RawTH2F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetDirectory"-               c_th2f_setdirectory :: Ptr RawTH2F -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetDirectory" c_th2f_setdirectory ::+               Ptr RawTH2F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetEntries"-               c_th2f_setentries :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetEntries" c_th2f_setentries ::+               Ptr RawTH2F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetError"-               c_th2f_seterror :: Ptr RawTH2F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetError"+               c_th2f_seterror :: Ptr RawTH2F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setLabelColorA"-               c_th2f_setlabelcolora :: Ptr RawTH2F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setLabelColorA" c_th2f_setlabelcolora ::+               Ptr RawTH2F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setLabelSizeA"-               c_th2f_setlabelsizea :: Ptr RawTH2F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setLabelSizeA" c_th2f_setlabelsizea ::+               Ptr RawTH2F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setLabelFontA"-               c_th2f_setlabelfonta :: Ptr RawTH2F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setLabelFontA" c_th2f_setlabelfonta ::+               Ptr RawTH2F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_setLabelOffsetA"-               c_th2f_setlabeloffseta ::-               Ptr RawTH2F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_setLabelOffsetA" c_th2f_setlabeloffseta ::+               Ptr RawTH2F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetMaximum"-               c_th2f_setmaximum :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetMaximum" c_th2f_setmaximum ::+               Ptr RawTH2F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetMinimum"-               c_th2f_setminimum :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetMinimum" c_th2f_setminimum ::+               Ptr RawTH2F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetNormFactor"-               c_th2f_setnormfactor :: Ptr RawTH2F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetNormFactor" c_th2f_setnormfactor ::+               Ptr RawTH2F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetStats"-               c_th2f_setstats :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetStats"+               c_th2f_setstats :: Ptr RawTH2F -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetOption"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetOption"                c_th2f_setoption :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetXTitle"                c_th2f_setxtitle :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetYTitle"                c_th2f_setytitle :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetZTitle"                c_th2f_setztitle :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_ShowBackground"-               c_th2f_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_ShowBackground" c_th2f_showbackground ::                Ptr RawTH2F -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2F.h TH2F_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_ShowPeaks"                c_th2f_showpeaks ::                Ptr RawTH2F -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_Smooth"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Smooth"                c_th2f_smooth :: Ptr RawTH2F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Sumw2" c_th2f_sumw2-               :: Ptr RawTH2F -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Sumw2"+               c_th2f_sumw2 :: Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetName"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetName"                c_th2f_setname :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetNameTitle"-               c_th2f_setnametitle :: Ptr RawTH2F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetNameTitle" c_th2f_setnametitle ::+               Ptr RawTH2F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetTitle"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetTitle"                c_th2f_settitle :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetLineColor"-               c_th2f_getlinecolor :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetLineColor" c_th2f_getlinecolor ::+               Ptr RawTH2F -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetLineStyle"-               c_th2f_getlinestyle :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetLineStyle" c_th2f_getlinestyle ::+               Ptr RawTH2F -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetLineWidth"-               c_th2f_getlinewidth :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetLineWidth" c_th2f_getlinewidth ::+               Ptr RawTH2F -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_ResetAttLine"-               c_th2f_resetattline :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_ResetAttLine" c_th2f_resetattline ::+               Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetLineAttributes"-               c_th2f_setlineattributes :: Ptr RawTH2F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetLineAttributes" c_th2f_setlineattributes+               :: Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetLineColor"-               c_th2f_setlinecolor :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetLineColor" c_th2f_setlinecolor ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetLineStyle"-               c_th2f_setlinestyle :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetLineStyle" c_th2f_setlinestyle ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetLineWidth"-               c_th2f_setlinewidth :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetLineWidth" c_th2f_setlinewidth ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetFillColor"-               c_th2f_setfillcolor :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetFillColor" c_th2f_setfillcolor ::+               Ptr RawTH2F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetFillStyle"-               c_th2f_setfillstyle :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetFillStyle" c_th2f_setfillstyle ::+               Ptr RawTH2F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMarkerColor"-               c_th2f_getmarkercolor :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMarkerColor" c_th2f_getmarkercolor ::+               Ptr RawTH2F -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMarkerStyle"-               c_th2f_getmarkerstyle :: Ptr RawTH2F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMarkerStyle" c_th2f_getmarkerstyle ::+               Ptr RawTH2F -> IO CShort -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetMarkerSize"-               c_th2f_getmarkersize :: Ptr RawTH2F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_GetMarkerSize" c_th2f_getmarkersize ::+               Ptr RawTH2F -> IO CFloat -foreign import ccall safe "HROOTHistTH2F.h TH2F_ResetAttMarker"-               c_th2f_resetattmarker :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_ResetAttMarker" c_th2f_resetattmarker ::+               Ptr RawTH2F -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2F.h TH2F_SetMarkerAttributes"                c_th2f_setmarkerattributes :: Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetMarkerColor"-               c_th2f_setmarkercolor :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetMarkerColor" c_th2f_setmarkercolor ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetMarkerStyle"-               c_th2f_setmarkerstyle :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetMarkerStyle" c_th2f_setmarkerstyle ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SetMarkerSize"-               c_th2f_setmarkersize :: Ptr RawTH2F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_SetMarkerSize" c_th2f_setmarkersize ::+               Ptr RawTH2F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Draw" c_th2f_draw-               :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Clear"+               c_th2f_clear :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_FindObject"-               c_th2f_findobject :: Ptr RawTH2F -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Draw"+               c_th2f_draw :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_GetName"+foreign import ccall interruptible+               "HROOTHistTH2F.h TH2F_FindObject" c_th2f_findobject ::+               Ptr RawTH2F -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetName"                c_th2f_getname :: Ptr RawTH2F -> IO CString -foreign import ccall safe "HROOTHistTH2F.h TH2F_IsA" c_th2f_isa ::-               Ptr RawTH2F -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_IsA"+               c_th2f_isa :: Ptr RawTH2F -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2F.h TH2F_Paint" c_th2f_paint-               :: Ptr RawTH2F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Paint"+               c_th2f_paint :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_printObj"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_printObj"                c_th2f_printobj :: Ptr RawTH2F -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_SaveAs"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SaveAs"                c_th2f_saveas :: Ptr RawTH2F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_Write" c_th2f_write-               :: Ptr RawTH2F -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Write"+               c_th2f_write :: Ptr RawTH2F -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2F.h TH2F_delete"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_Write_"+               c_th2f_write_ :: Ptr RawTH2F -> IO CInt++foreign import ccall interruptible "HROOTHistTH2F.h TH2F_delete"                c_th2f_delete :: Ptr RawTH2F -> IO () -foreign import ccall safe "HROOTHistTH2F.h TH2F_newTH2F"+foreign import ccall interruptible "HROOTHistTH2F.h TH2F_GetAt"+               c_th2f_getat :: Ptr RawTH2F -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetArray"+               c_th2f_setarray :: Ptr RawTH2F -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2F.h TH2F_SetAt"+               c_th2f_setat :: Ptr RawTH2F -> CDouble -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2F.h TH2F_newTH2F"                c_th2f_newth2f ::                CString ->                  CString ->
src/HROOT/Hist/TH2F/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2F.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2F.RawType import HROOT.Hist.TH2F.FFI import HROOT.Hist.TH2F.Interface import HROOT.Hist.TH2F.Cast+import HROOT.Hist.TH2F.RawType+import HROOT.Hist.TH2F.Cast+import HROOT.Hist.TH2F.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH2F TH2F+instance () => ITH2F (TH2F) where -instance ITH2 TH2F where+instance () => ITH2 (TH2F) where         fill2 = xform2 c_th2f_fill2         fill2w = xform3 c_th2f_fill2w         fillN2 = xform5 c_th2f_filln2@@ -84,13 +93,12 @@         setShowProjectionX = xform1 c_th2f_setshowprojectionx         setShowProjectionY = xform1 c_th2f_setshowprojectiony -instance ITArrayF TH2F+instance () => ITArrayF (TH2F) where -instance ITH1 TH2F where+instance () => ITH1 (TH2F) where         add = xform2 c_th2f_add         addBinContent = xform2 c_th2f_addbincontent         chi2Test = xform3 c_th2f_chi2test-        computeIntegral = xform0 c_th2f_computeintegral         directoryAutoAdd = xform1 c_th2f_directoryautoadd         divide = xform5 c_th2f_divide         drawCopyTH1 = xform1 c_th2f_drawcopyth1@@ -162,9 +170,6 @@         getRMS = xform1 c_th2f_getrms         getRMSError = xform1 c_th2f_getrmserror         getSkewness = xform1 c_th2f_getskewness-        integral1 = xform3 c_th2f_integral1-        interpolate1 = xform1 c_th2f_interpolate1-        interpolate2 = xform2 c_th2f_interpolate2         interpolate3 = xform3 c_th2f_interpolate3         kolmogorovTest = xform2 c_th2f_kolmogorovtest         labelsDeflate = xform1 c_th2f_labelsdeflate@@ -219,12 +224,12 @@         smooth = xform2 c_th2f_smooth         sumw2 = xform0 c_th2f_sumw2 -instance ITNamed TH2F where+instance () => ITNamed (TH2F) where         setName = xform1 c_th2f_setname         setNameTitle = xform2 c_th2f_setnametitle         setTitle = xform1 c_th2f_settitle -instance ITAttLine TH2F where+instance () => ITAttLine (TH2F) where         getLineColor = xform0 c_th2f_getlinecolor         getLineStyle = xform0 c_th2f_getlinestyle         getLineWidth = xform0 c_th2f_getlinewidth@@ -234,11 +239,11 @@         setLineStyle = xform1 c_th2f_setlinestyle         setLineWidth = xform1 c_th2f_setlinewidth -instance ITAttFill TH2F where+instance () => ITAttFill (TH2F) where         setFillColor = xform1 c_th2f_setfillcolor         setFillStyle = xform1 c_th2f_setfillstyle -instance ITAttMarker TH2F where+instance () => ITAttMarker (TH2F) where         getMarkerColor = xform0 c_th2f_getmarkercolor         getMarkerStyle = xform0 c_th2f_getmarkerstyle         getMarkerSize = xform0 c_th2f_getmarkersize@@ -248,7 +253,8 @@         setMarkerStyle = xform1 c_th2f_setmarkerstyle         setMarkerSize = xform1 c_th2f_setmarkersize -instance ITObject TH2F where+instance () => ITObject (TH2F) where+        clear = xform1 c_th2f_clear         draw = xform1 c_th2f_draw         findObject = xform1 c_th2f_findobject         getName = xform0 c_th2f_getname@@ -257,11 +263,15 @@         printObj = xform1 c_th2f_printobj         saveAs = xform2 c_th2f_saveas         write = xform3 c_th2f_write+        write_ = xform0 c_th2f_write_ -instance IDeletable TH2F where+instance () => IDeletable (TH2F) where         delete = xform0 c_th2f_delete -instance ITArray TH2F+instance () => ITArray (TH2F) where+        getAt = xform1 c_th2f_getat+        setArray = xform1 c_th2f_setarray+        setAt = xform2 c_th2f_setat  newTH2F ::           (Castable c1 CString, Castable c0 CString) =>
src/HROOT/Hist/TH2F/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2F.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH2.Interface import HROOT.Core.TArrayF.Interface -class (ITH2 a, ITArrayF a) => ITH2F a+class (ITH2 a, ITArrayF a) => ITH2F a where  upcastTH2F :: forall a . (FPtr a, ITH2F a) => a -> TH2F upcastTH2F h
src/HROOT/Hist/TH2F/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2F  newtype TH2F = TH2F (Ptr RawTH2F)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH2F where+instance () => FPtr (TH2F) where         type Raw TH2F = RawTH2F         get_fptr (TH2F ptr) = ptr         cast_fptr_to_obj = TH2F
src/HROOT/Hist/TH2I/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2I.RawType import HROOT.Hist.TH2I.Interface -instance (ITH2I a, FPtr a) => Castable a (Ptr RawTH2I) where+instance (ITH2I a, FPtr a) => Castable (a) (Ptr RawTH2I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2I (Ptr RawTH2I) where+instance () => Castable (TH2I) (Ptr RawTH2I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2I/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2I.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH2I.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,589 +17,678 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2I.h TH2I_fill2" c_th2i_fill2-               :: Ptr RawTH2I -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fill2"+               c_th2i_fill2 :: Ptr RawTH2I -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_fill2w"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fill2w"                c_th2i_fill2w ::                Ptr RawTH2I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_fillN2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fillN2"                c_th2i_filln2 ::                Ptr RawTH2I ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_fillRandom2"-               c_th2i_fillrandom2 :: Ptr RawTH2I -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_fillRandom2" c_th2i_fillrandom2 ::+               Ptr RawTH2I -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_findFirstBinAbove2"-               c_th2i_findfirstbinabove2 ::-               Ptr RawTH2I -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_findFirstBinAbove2" c_th2i_findfirstbinabove2+               :: Ptr RawTH2I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_findLastBinAbove2"-               c_th2i_findlastbinabove2 ::-               Ptr RawTH2I -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_findLastBinAbove2" c_th2i_findlastbinabove2+               :: Ptr RawTH2I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_FitSlicesX"-               c_th2i_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FitSlicesX" c_th2i_fitslicesx ::                Ptr RawTH2I ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FitSlicesY"-               c_th2i_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FitSlicesY" c_th2i_fitslicesy ::                Ptr RawTH2I ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2I.h TH2I_getCorrelationFactor2"                c_th2i_getcorrelationfactor2 ::                Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_getCovariance2"-               c_th2i_getcovariance2 :: Ptr RawTH2I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getCovariance2" c_th2i_getcovariance2 ::+               Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_integral2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_integral2"                c_th2i_integral2 ::                Ptr RawTH2I ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_rebinX2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_rebinX2"                c_th2i_rebinx2 :: Ptr RawTH2I -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2I.h TH2I_rebinY2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_rebinY2"                c_th2i_rebiny2 :: Ptr RawTH2I -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2I.h TH2I_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Rebin2D"                c_th2i_rebin2d ::                Ptr RawTH2I -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetShowProjectionX"-               c_th2i_setshowprojectionx :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetShowProjectionX" c_th2i_setshowprojectionx+               :: Ptr RawTH2I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetShowProjectionY"-               c_th2i_setshowprojectiony :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetShowProjectionY" c_th2i_setshowprojectiony+               :: Ptr RawTH2I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Add" c_th2i_add ::-               Ptr RawTH2I -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Add"+               c_th2i_add :: Ptr RawTH2I -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_AddBinContent"-               c_th2i_addbincontent :: Ptr RawTH2I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_AddBinContent" c_th2i_addbincontent ::+               Ptr RawTH2I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Chi2Test"                c_th2i_chi2test ::-               Ptr RawTH2I -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2I.h TH2I_ComputeIntegral"-               c_th2i_computeintegral :: Ptr RawTH2I -> IO CDouble+               Ptr RawTH2I -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_DirectoryAutoAdd"-               c_th2i_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_DirectoryAutoAdd" c_th2i_directoryautoadd ::                Ptr RawTH2I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Divide"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Divide"                c_th2i_divide ::                Ptr RawTH2I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_drawCopyTH1"-               c_th2i_drawcopyth1 :: Ptr RawTH2I -> CString -> IO (Ptr RawTH2I)+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_drawCopyTH1" c_th2i_drawcopyth1 ::+               Ptr RawTH2I -> CString -> IO (Ptr RawTH2I) -foreign import ccall safe "HROOTHistTH2I.h TH2I_DrawNormalized"-               c_th2i_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_DrawNormalized" c_th2i_drawnormalized ::                Ptr RawTH2I -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2I.h TH2I_drawPanelTH1"-               c_th2i_drawpanelth1 :: Ptr RawTH2I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_drawPanelTH1" c_th2i_drawpanelth1 ::+               Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_BufferEmpty"-               c_th2i_bufferempty :: Ptr RawTH2I -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_BufferEmpty" c_th2i_bufferempty ::+               Ptr RawTH2I -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_evalF" c_th2i_evalf-               :: Ptr RawTH2I -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_evalF"+               c_th2i_evalf :: Ptr RawTH2I -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FFT" c_th2i_fft ::+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_FFT"+               c_th2i_fft ::                Ptr RawTH2I -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2I.h TH2I_fill1" c_th2i_fill1-               :: Ptr RawTH2I -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fill1"+               c_th2i_fill1 :: Ptr RawTH2I -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_fill1w"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fill1w"                c_th2i_fill1w :: Ptr RawTH2I -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_fillN1"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_fillN1"                c_th2i_filln1 ::-               Ptr RawTH2I ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH2I -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FillRandom"-               c_th2i_fillrandom :: Ptr RawTH2I -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FillRandom" c_th2i_fillrandom ::+               Ptr RawTH2I -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FindBin"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_FindBin"                c_th2i_findbin ::                Ptr RawTH2I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_FindFixBin"-               c_th2i_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FindFixBin" c_th2i_findfixbin ::                Ptr RawTH2I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_FindFirstBinAbove"-               c_th2i_findfirstbinabove ::-               Ptr RawTH2I -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FindFirstBinAbove" c_th2i_findfirstbinabove+               :: Ptr RawTH2I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_FindLastBinAbove"-               c_th2i_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FindLastBinAbove" c_th2i_findlastbinabove ::                Ptr RawTH2I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_Fit" c_th2i_fit ::+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Fit"+               c_th2i_fit ::                Ptr RawTH2I ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FitPanelTH1"-               c_th2i_fitpanelth1 :: Ptr RawTH2I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FitPanelTH1" c_th2i_fitpanelth1 ::+               Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_getNdivisionA"-               c_th2i_getndivisiona :: Ptr RawTH2I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getNdivisionA" c_th2i_getndivisiona ::+               Ptr RawTH2I -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_getAxisColorA"-               c_th2i_getaxiscolora :: Ptr RawTH2I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getAxisColorA" c_th2i_getaxiscolora ::+               Ptr RawTH2I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_getLabelColorA"-               c_th2i_getlabelcolora :: Ptr RawTH2I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getLabelColorA" c_th2i_getlabelcolora ::+               Ptr RawTH2I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_getLabelFontA"-               c_th2i_getlabelfonta :: Ptr RawTH2I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getLabelFontA" c_th2i_getlabelfonta ::+               Ptr RawTH2I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_getLabelOffsetA"-               c_th2i_getlabeloffseta :: Ptr RawTH2I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getLabelOffsetA" c_th2i_getlabeloffseta ::+               Ptr RawTH2I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_getLabelSizeA"-               c_th2i_getlabelsizea :: Ptr RawTH2I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getLabelSizeA" c_th2i_getlabelsizea ::+               Ptr RawTH2I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_getTitleFontA"-               c_th2i_gettitlefonta :: Ptr RawTH2I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getTitleFontA" c_th2i_gettitlefonta ::+               Ptr RawTH2I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_getTitleOffsetA"-               c_th2i_gettitleoffseta :: Ptr RawTH2I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getTitleOffsetA" c_th2i_gettitleoffseta ::+               Ptr RawTH2I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_getTitleSizeA"-               c_th2i_gettitlesizea :: Ptr RawTH2I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getTitleSizeA" c_th2i_gettitlesizea ::+               Ptr RawTH2I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_getTickLengthA"-               c_th2i_getticklengtha :: Ptr RawTH2I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getTickLengthA" c_th2i_getticklengtha ::+               Ptr RawTH2I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBarOffset"-               c_th2i_getbaroffset :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBarOffset" c_th2i_getbaroffset ::+               Ptr RawTH2I -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBarWidth"-               c_th2i_getbarwidth :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBarWidth" c_th2i_getbarwidth ::+               Ptr RawTH2I -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetContour"-               c_th2i_getcontour :: Ptr RawTH2I -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetContour" c_th2i_getcontour ::+               Ptr RawTH2I -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetContourLevel"-               c_th2i_getcontourlevel :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetContourLevel" c_th2i_getcontourlevel ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetContourLevelPad"-               c_th2i_getcontourlevelpad :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetContourLevelPad" c_th2i_getcontourlevelpad+               :: Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBin"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetBin"                c_th2i_getbin :: Ptr RawTH2I -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinCenter"-               c_th2i_getbincenter :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinCenter" c_th2i_getbincenter ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinContent1"-               c_th2i_getbincontent1 :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinContent1" c_th2i_getbincontent1 ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinContent2"-               c_th2i_getbincontent2 :: Ptr RawTH2I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinContent2" c_th2i_getbincontent2 ::+               Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinContent3"-               c_th2i_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinContent3" c_th2i_getbincontent3 ::                Ptr RawTH2I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinError1"-               c_th2i_getbinerror1 :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinError1" c_th2i_getbinerror1 ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinError2"-               c_th2i_getbinerror2 :: Ptr RawTH2I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinError2" c_th2i_getbinerror2 ::+               Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinError3"-               c_th2i_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinError3" c_th2i_getbinerror3 ::                Ptr RawTH2I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinLowEdge"-               c_th2i_getbinlowedge :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinLowEdge" c_th2i_getbinlowedge ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetBinWidth"-               c_th2i_getbinwidth :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetBinWidth" c_th2i_getbinwidth ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetCellContent"-               c_th2i_getcellcontent :: Ptr RawTH2I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetCellContent" c_th2i_getcellcontent ::+               Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetCellError"-               c_th2i_getcellerror :: Ptr RawTH2I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetCellError" c_th2i_getcellerror ::+               Ptr RawTH2I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetEntries"-               c_th2i_getentries :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetEntries" c_th2i_getentries ::+               Ptr RawTH2I -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2I.h TH2I_GetEffectiveEntries"                c_th2i_geteffectiveentries :: Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetFunction"-               c_th2i_getfunction :: Ptr RawTH2I -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetFunction" c_th2i_getfunction ::+               Ptr RawTH2I -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetDimension"-               c_th2i_getdimension :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetDimension" c_th2i_getdimension ::+               Ptr RawTH2I -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetKurtosis"-               c_th2i_getkurtosis :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetKurtosis" c_th2i_getkurtosis ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetLowEdge"-               c_th2i_getlowedge :: Ptr RawTH2I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetLowEdge" c_th2i_getlowedge ::+               Ptr RawTH2I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_getMaximumTH1"-               c_th2i_getmaximumth1 :: Ptr RawTH2I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getMaximumTH1" c_th2i_getmaximumth1 ::+               Ptr RawTH2I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMaximumBin"-               c_th2i_getmaximumbin :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMaximumBin" c_th2i_getmaximumbin ::+               Ptr RawTH2I -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMaximumStored"-               c_th2i_getmaximumstored :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMaximumStored" c_th2i_getmaximumstored ::+               Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_getMinimumTH1"-               c_th2i_getminimumth1 :: Ptr RawTH2I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getMinimumTH1" c_th2i_getminimumth1 ::+               Ptr RawTH2I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMinimumBin"-               c_th2i_getminimumbin :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMinimumBin" c_th2i_getminimumbin ::+               Ptr RawTH2I -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMinimumStored"-               c_th2i_getminimumstored :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMinimumStored" c_th2i_getminimumstored ::+               Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMean"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetMean"                c_th2i_getmean :: Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMeanError"-               c_th2i_getmeanerror :: Ptr RawTH2I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMeanError" c_th2i_getmeanerror ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetNbinsX"                c_th2i_getnbinsx :: Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetNbinsY"                c_th2i_getnbinsy :: Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetNbinsZ"                c_th2i_getnbinsz :: Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_getQuantilesTH1"-               c_th2i_getquantilesth1 ::-               Ptr RawTH2I -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_getQuantilesTH1" c_th2i_getquantilesth1 ::+               Ptr RawTH2I -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetRandom"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetRandom"                c_th2i_getrandom :: Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetStats"-               c_th2i_getstats :: Ptr RawTH2I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetStats"+               c_th2i_getstats :: Ptr RawTH2I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetSumOfWeights"-               c_th2i_getsumofweights :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetSumOfWeights" c_th2i_getsumofweights ::+               Ptr RawTH2I -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetSumw2"                c_th2i_getsumw2 :: Ptr RawTH2I -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetSumw2N"                c_th2i_getsumw2n :: Ptr RawTH2I -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetRMS"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetRMS"                c_th2i_getrms :: Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetRMSError"-               c_th2i_getrmserror :: Ptr RawTH2I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2I.h TH2I_GetSkewness"-               c_th2i_getskewness :: Ptr RawTH2I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2I.h TH2I_integral1"-               c_th2i_integral1 ::-               Ptr RawTH2I -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2I.h TH2I_interpolate1"-               c_th2i_interpolate1 :: Ptr RawTH2I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetRMSError" c_th2i_getrmserror ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_interpolate2"-               c_th2i_interpolate2 ::-               Ptr RawTH2I -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetSkewness" c_th2i_getskewness ::+               Ptr RawTH2I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_interpolate3"-               c_th2i_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_interpolate3" c_th2i_interpolate3 ::                Ptr RawTH2I -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_KolmogorovTest"-               c_th2i_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_KolmogorovTest" c_th2i_kolmogorovtest ::                Ptr RawTH2I -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2I.h TH2I_LabelsDeflate"-               c_th2i_labelsdeflate :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_LabelsDeflate" c_th2i_labelsdeflate ::+               Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_LabelsInflate"-               c_th2i_labelsinflate :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_LabelsInflate" c_th2i_labelsinflate ::+               Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_LabelsOption"-               c_th2i_labelsoption :: Ptr RawTH2I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_LabelsOption" c_th2i_labelsoption ::+               Ptr RawTH2I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_multiflyF"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_multiflyF"                c_th2i_multiflyf :: Ptr RawTH2I -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Multiply"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Multiply"                c_th2i_multiply ::                Ptr RawTH2I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_PutStats"-               c_th2i_putstats :: Ptr RawTH2I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_PutStats"+               c_th2i_putstats :: Ptr RawTH2I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Rebin" c_th2i_rebin-               ::-               Ptr RawTH2I -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Rebin"+               c_th2i_rebin ::+               Ptr RawTH2I -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2I.h TH2I_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_RebinAxis"                c_th2i_rebinaxis :: Ptr RawTH2I -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Rebuild"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Rebuild"                c_th2i_rebuild :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_RecursiveRemove"-               c_th2i_recursiveremove :: Ptr RawTH2I -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_RecursiveRemove" c_th2i_recursiveremove ::+               Ptr RawTH2I -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Reset" c_th2i_reset-               :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Reset"+               c_th2i_reset :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_ResetStats"-               c_th2i_resetstats :: Ptr RawTH2I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_ResetStats" c_th2i_resetstats ::+               Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Scale" c_th2i_scale-               :: Ptr RawTH2I -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Scale"+               c_th2i_scale :: Ptr RawTH2I -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setAxisColorA"-               c_th2i_setaxiscolora :: Ptr RawTH2I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setAxisColorA" c_th2i_setaxiscolora ::+               Ptr RawTH2I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetAxisRange"-               c_th2i_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetAxisRange" c_th2i_setaxisrange ::                Ptr RawTH2I -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetBarOffset"-               c_th2i_setbaroffset :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetBarOffset" c_th2i_setbaroffset ::+               Ptr RawTH2I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetBarWidth"-               c_th2i_setbarwidth :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetBarWidth" c_th2i_setbarwidth ::+               Ptr RawTH2I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinContent1"-               c_th2i_setbincontent1 :: Ptr RawTH2I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinContent1" c_th2i_setbincontent1 ::+               Ptr RawTH2I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinContent2"-               c_th2i_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinContent2" c_th2i_setbincontent2 ::                Ptr RawTH2I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinContent3"-               c_th2i_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinContent3" c_th2i_setbincontent3 ::                Ptr RawTH2I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinError1"-               c_th2i_setbinerror1 :: Ptr RawTH2I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinError1" c_th2i_setbinerror1 ::+               Ptr RawTH2I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinError2"-               c_th2i_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinError2" c_th2i_setbinerror2 ::                Ptr RawTH2I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBinError3"-               c_th2i_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setBinError3" c_th2i_setbinerror3 ::                Ptr RawTH2I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBins1"-               c_th2i_setbins1 :: Ptr RawTH2I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_setBins1"+               c_th2i_setbins1 :: Ptr RawTH2I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBins2"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_setBins2"                c_th2i_setbins2 ::-               Ptr RawTH2I ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2I -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setBins3"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_setBins3"                c_th2i_setbins3 ::                Ptr RawTH2I ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetBinsLength"-               c_th2i_setbinslength :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetBinsLength" c_th2i_setbinslength ::+               Ptr RawTH2I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetBuffer"                c_th2i_setbuffer :: Ptr RawTH2I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetCellContent"-               c_th2i_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetCellContent" c_th2i_setcellcontent ::                Ptr RawTH2I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetContent"-               c_th2i_setcontent :: Ptr RawTH2I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetContent" c_th2i_setcontent ::+               Ptr RawTH2I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetContour"-               c_th2i_setcontour :: Ptr RawTH2I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetContour" c_th2i_setcontour ::+               Ptr RawTH2I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetContourLevel"-               c_th2i_setcontourlevel :: Ptr RawTH2I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetContourLevel" c_th2i_setcontourlevel ::+               Ptr RawTH2I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetDirectory"-               c_th2i_setdirectory :: Ptr RawTH2I -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetDirectory" c_th2i_setdirectory ::+               Ptr RawTH2I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetEntries"-               c_th2i_setentries :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetEntries" c_th2i_setentries ::+               Ptr RawTH2I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetError"-               c_th2i_seterror :: Ptr RawTH2I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetError"+               c_th2i_seterror :: Ptr RawTH2I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setLabelColorA"-               c_th2i_setlabelcolora :: Ptr RawTH2I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setLabelColorA" c_th2i_setlabelcolora ::+               Ptr RawTH2I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setLabelSizeA"-               c_th2i_setlabelsizea :: Ptr RawTH2I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setLabelSizeA" c_th2i_setlabelsizea ::+               Ptr RawTH2I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setLabelFontA"-               c_th2i_setlabelfonta :: Ptr RawTH2I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setLabelFontA" c_th2i_setlabelfonta ::+               Ptr RawTH2I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_setLabelOffsetA"-               c_th2i_setlabeloffseta ::-               Ptr RawTH2I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_setLabelOffsetA" c_th2i_setlabeloffseta ::+               Ptr RawTH2I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetMaximum"-               c_th2i_setmaximum :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetMaximum" c_th2i_setmaximum ::+               Ptr RawTH2I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetMinimum"-               c_th2i_setminimum :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetMinimum" c_th2i_setminimum ::+               Ptr RawTH2I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetNormFactor"-               c_th2i_setnormfactor :: Ptr RawTH2I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetNormFactor" c_th2i_setnormfactor ::+               Ptr RawTH2I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetStats"-               c_th2i_setstats :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetStats"+               c_th2i_setstats :: Ptr RawTH2I -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetOption"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetOption"                c_th2i_setoption :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetXTitle"                c_th2i_setxtitle :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetYTitle"                c_th2i_setytitle :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetZTitle"                c_th2i_setztitle :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_ShowBackground"-               c_th2i_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_ShowBackground" c_th2i_showbackground ::                Ptr RawTH2I -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2I.h TH2I_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_ShowPeaks"                c_th2i_showpeaks ::                Ptr RawTH2I -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_Smooth"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Smooth"                c_th2i_smooth :: Ptr RawTH2I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Sumw2" c_th2i_sumw2-               :: Ptr RawTH2I -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Sumw2"+               c_th2i_sumw2 :: Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetName"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetName"                c_th2i_setname :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetNameTitle"-               c_th2i_setnametitle :: Ptr RawTH2I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetNameTitle" c_th2i_setnametitle ::+               Ptr RawTH2I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetTitle"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetTitle"                c_th2i_settitle :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetLineColor"-               c_th2i_getlinecolor :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetLineColor" c_th2i_getlinecolor ::+               Ptr RawTH2I -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetLineStyle"-               c_th2i_getlinestyle :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetLineStyle" c_th2i_getlinestyle ::+               Ptr RawTH2I -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetLineWidth"-               c_th2i_getlinewidth :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetLineWidth" c_th2i_getlinewidth ::+               Ptr RawTH2I -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_ResetAttLine"-               c_th2i_resetattline :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_ResetAttLine" c_th2i_resetattline ::+               Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetLineAttributes"-               c_th2i_setlineattributes :: Ptr RawTH2I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetLineAttributes" c_th2i_setlineattributes+               :: Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetLineColor"-               c_th2i_setlinecolor :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetLineColor" c_th2i_setlinecolor ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetLineStyle"-               c_th2i_setlinestyle :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetLineStyle" c_th2i_setlinestyle ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetLineWidth"-               c_th2i_setlinewidth :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetLineWidth" c_th2i_setlinewidth ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetFillColor"-               c_th2i_setfillcolor :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetFillColor" c_th2i_setfillcolor ::+               Ptr RawTH2I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetFillStyle"-               c_th2i_setfillstyle :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetFillStyle" c_th2i_setfillstyle ::+               Ptr RawTH2I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMarkerColor"-               c_th2i_getmarkercolor :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMarkerColor" c_th2i_getmarkercolor ::+               Ptr RawTH2I -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMarkerStyle"-               c_th2i_getmarkerstyle :: Ptr RawTH2I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMarkerStyle" c_th2i_getmarkerstyle ::+               Ptr RawTH2I -> IO CShort -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetMarkerSize"-               c_th2i_getmarkersize :: Ptr RawTH2I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_GetMarkerSize" c_th2i_getmarkersize ::+               Ptr RawTH2I -> IO CFloat -foreign import ccall safe "HROOTHistTH2I.h TH2I_ResetAttMarker"-               c_th2i_resetattmarker :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_ResetAttMarker" c_th2i_resetattmarker ::+               Ptr RawTH2I -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2I.h TH2I_SetMarkerAttributes"                c_th2i_setmarkerattributes :: Ptr RawTH2I -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetMarkerColor"-               c_th2i_setmarkercolor :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetMarkerColor" c_th2i_setmarkercolor ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetMarkerStyle"-               c_th2i_setmarkerstyle :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetMarkerStyle" c_th2i_setmarkerstyle ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SetMarkerSize"-               c_th2i_setmarkersize :: Ptr RawTH2I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_SetMarkerSize" c_th2i_setmarkersize ::+               Ptr RawTH2I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Draw" c_th2i_draw-               :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Clear"+               c_th2i_clear :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_FindObject"-               c_th2i_findobject :: Ptr RawTH2I -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Draw"+               c_th2i_draw :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_GetName"+foreign import ccall interruptible+               "HROOTHistTH2I.h TH2I_FindObject" c_th2i_findobject ::+               Ptr RawTH2I -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetName"                c_th2i_getname :: Ptr RawTH2I -> IO CString -foreign import ccall safe "HROOTHistTH2I.h TH2I_IsA" c_th2i_isa ::-               Ptr RawTH2I -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_IsA"+               c_th2i_isa :: Ptr RawTH2I -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2I.h TH2I_Paint" c_th2i_paint-               :: Ptr RawTH2I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Paint"+               c_th2i_paint :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_printObj"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_printObj"                c_th2i_printobj :: Ptr RawTH2I -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_SaveAs"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SaveAs"                c_th2i_saveas :: Ptr RawTH2I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2I.h TH2I_Write" c_th2i_write-               :: Ptr RawTH2I -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Write"+               c_th2i_write :: Ptr RawTH2I -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2I.h TH2I_delete"+foreign import ccall interruptible "HROOTHistTH2I.h TH2I_Write_"+               c_th2i_write_ :: Ptr RawTH2I -> IO CInt++foreign import ccall interruptible "HROOTHistTH2I.h TH2I_delete"                c_th2i_delete :: Ptr RawTH2I -> IO ()++foreign import ccall interruptible "HROOTHistTH2I.h TH2I_GetAt"+               c_th2i_getat :: Ptr RawTH2I -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetArray"+               c_th2i_setarray :: Ptr RawTH2I -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2I.h TH2I_SetAt"+               c_th2i_setat :: Ptr RawTH2I -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH2I/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2I.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2I.RawType import HROOT.Hist.TH2I.FFI import HROOT.Hist.TH2I.Interface import HROOT.Hist.TH2I.Cast+import HROOT.Hist.TH2I.RawType+import HROOT.Hist.TH2I.Cast+import HROOT.Hist.TH2I.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH2I TH2I+instance () => ITH2I (TH2I) where -instance ITH2 TH2I where+instance () => ITH2 (TH2I) where         fill2 = xform2 c_th2i_fill2         fill2w = xform3 c_th2i_fill2w         fillN2 = xform5 c_th2i_filln2@@ -84,13 +93,12 @@         setShowProjectionX = xform1 c_th2i_setshowprojectionx         setShowProjectionY = xform1 c_th2i_setshowprojectiony -instance ITArrayI TH2I+instance () => ITArrayI (TH2I) where -instance ITH1 TH2I where+instance () => ITH1 (TH2I) where         add = xform2 c_th2i_add         addBinContent = xform2 c_th2i_addbincontent         chi2Test = xform3 c_th2i_chi2test-        computeIntegral = xform0 c_th2i_computeintegral         directoryAutoAdd = xform1 c_th2i_directoryautoadd         divide = xform5 c_th2i_divide         drawCopyTH1 = xform1 c_th2i_drawcopyth1@@ -162,9 +170,6 @@         getRMS = xform1 c_th2i_getrms         getRMSError = xform1 c_th2i_getrmserror         getSkewness = xform1 c_th2i_getskewness-        integral1 = xform3 c_th2i_integral1-        interpolate1 = xform1 c_th2i_interpolate1-        interpolate2 = xform2 c_th2i_interpolate2         interpolate3 = xform3 c_th2i_interpolate3         kolmogorovTest = xform2 c_th2i_kolmogorovtest         labelsDeflate = xform1 c_th2i_labelsdeflate@@ -219,12 +224,12 @@         smooth = xform2 c_th2i_smooth         sumw2 = xform0 c_th2i_sumw2 -instance ITNamed TH2I where+instance () => ITNamed (TH2I) where         setName = xform1 c_th2i_setname         setNameTitle = xform2 c_th2i_setnametitle         setTitle = xform1 c_th2i_settitle -instance ITAttLine TH2I where+instance () => ITAttLine (TH2I) where         getLineColor = xform0 c_th2i_getlinecolor         getLineStyle = xform0 c_th2i_getlinestyle         getLineWidth = xform0 c_th2i_getlinewidth@@ -234,11 +239,11 @@         setLineStyle = xform1 c_th2i_setlinestyle         setLineWidth = xform1 c_th2i_setlinewidth -instance ITAttFill TH2I where+instance () => ITAttFill (TH2I) where         setFillColor = xform1 c_th2i_setfillcolor         setFillStyle = xform1 c_th2i_setfillstyle -instance ITAttMarker TH2I where+instance () => ITAttMarker (TH2I) where         getMarkerColor = xform0 c_th2i_getmarkercolor         getMarkerStyle = xform0 c_th2i_getmarkerstyle         getMarkerSize = xform0 c_th2i_getmarkersize@@ -248,7 +253,8 @@         setMarkerStyle = xform1 c_th2i_setmarkerstyle         setMarkerSize = xform1 c_th2i_setmarkersize -instance ITObject TH2I where+instance () => ITObject (TH2I) where+        clear = xform1 c_th2i_clear         draw = xform1 c_th2i_draw         findObject = xform1 c_th2i_findobject         getName = xform0 c_th2i_getname@@ -257,8 +263,12 @@         printObj = xform1 c_th2i_printobj         saveAs = xform2 c_th2i_saveas         write = xform3 c_th2i_write+        write_ = xform0 c_th2i_write_ -instance IDeletable TH2I where+instance () => IDeletable (TH2I) where         delete = xform0 c_th2i_delete -instance ITArray TH2I+instance () => ITArray (TH2I) where+        getAt = xform1 c_th2i_getat+        setArray = xform1 c_th2i_setarray+        setAt = xform2 c_th2i_setat
src/HROOT/Hist/TH2I/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2I.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH2.Interface import HROOT.Core.TArrayI.Interface -class (ITH2 a, ITArrayI a) => ITH2I a+class (ITH2 a, ITArrayI a) => ITH2I a where  upcastTH2I :: forall a . (FPtr a, ITH2I a) => a -> TH2I upcastTH2I h
src/HROOT/Hist/TH2I/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2I  newtype TH2I = TH2I (Ptr RawTH2I)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH2I where+instance () => FPtr (TH2I) where         type Raw TH2I = RawTH2I         get_fptr (TH2I ptr) = ptr         cast_fptr_to_obj = TH2I
src/HROOT/Hist/TH2Poly.hs view
@@ -1,5 +1,7 @@ module HROOT.Hist.TH2Poly-       (TH2Poly(..), ITH2Poly, upcastTH2Poly, downcastTH2Poly) where+       (TH2Poly(..), ITH2Poly(..), upcastTH2Poly, downcastTH2Poly,+        newTH2Poly)+       where import HROOT.Hist.TH2Poly.RawType import HROOT.Hist.TH2Poly.Interface import HROOT.Hist.TH2Poly.Implementation
src/HROOT/Hist/TH2Poly/Cast.hs view
@@ -8,10 +8,11 @@ import HROOT.Hist.TH2Poly.RawType import HROOT.Hist.TH2Poly.Interface -instance (ITH2Poly a, FPtr a) => Castable a (Ptr RawTH2Poly) where+instance (ITH2Poly a, FPtr a) => Castable (a) (Ptr RawTH2Poly)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2Poly (Ptr RawTH2Poly) where+instance () => Castable (TH2Poly) (Ptr RawTH2Poly) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2Poly/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2Poly.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH2Poly.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,683 +17,751 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fill2"-               c_th2poly_fill2 :: Ptr RawTH2Poly -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fill2" c_th2poly_fill2 ::+               Ptr RawTH2Poly -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fill2w"-               c_th2poly_fill2w ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fill2w" c_th2poly_fill2w ::                Ptr RawTH2Poly -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fillN2"-               c_th2poly_filln2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fillN2" c_th2poly_filln2 ::                Ptr RawTH2Poly ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fillRandom2"-               c_th2poly_fillrandom2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fillRandom2" c_th2poly_fillrandom2 ::                Ptr RawTH2Poly -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_findFirstBinAbove2"                c_th2poly_findfirstbinabove2 ::                Ptr RawTH2Poly -> CDouble -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_findLastBinAbove2"                c_th2poly_findlastbinabove2 ::                Ptr RawTH2Poly -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FitSlicesX"-               c_th2poly_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FitSlicesX" c_th2poly_fitslicesx ::                Ptr RawTH2Poly ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FitSlicesY"-               c_th2poly_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FitSlicesY" c_th2poly_fitslicesy ::                Ptr RawTH2Poly ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getCorrelationFactor2"                c_th2poly_getcorrelationfactor2 ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getCovariance2"                c_th2poly_getcovariance2 ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_integral2"-               c_th2poly_integral2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_integral2" c_th2poly_integral2 ::                Ptr RawTH2Poly ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_rebinX2"-               c_th2poly_rebinx2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_rebinX2" c_th2poly_rebinx2 ::                Ptr RawTH2Poly -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_rebinY2"-               c_th2poly_rebiny2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_rebinY2" c_th2poly_rebiny2 ::                Ptr RawTH2Poly -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Rebin2D"-               c_th2poly_rebin2d ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Rebin2D" c_th2poly_rebin2d ::                Ptr RawTH2Poly -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetShowProjectionX"                c_th2poly_setshowprojectionx :: Ptr RawTH2Poly -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetShowProjectionY"                c_th2poly_setshowprojectiony :: Ptr RawTH2Poly -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Add"+foreign import ccall interruptible "HROOTHistTH2Poly.h TH2Poly_Add"                c_th2poly_add :: Ptr RawTH2Poly -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_AddBinContent" c_th2poly_addbincontent                :: Ptr RawTH2Poly -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Chi2Test"-               c_th2poly_chi2test ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Chi2Test" c_th2poly_chi2test ::                Ptr RawTH2Poly ->-                 Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe-               "HROOTHistTH2Poly.h TH2Poly_ComputeIntegral"-               c_th2poly_computeintegral :: Ptr RawTH2Poly -> IO CDouble+                 Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_DirectoryAutoAdd"                c_th2poly_directoryautoadd ::                Ptr RawTH2Poly -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Divide"-               c_th2poly_divide ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Divide" c_th2poly_divide ::                Ptr RawTH2Poly ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_drawCopyTH1"-               c_th2poly_drawcopyth1 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_drawCopyTH1" c_th2poly_drawcopyth1 ::                Ptr RawTH2Poly -> CString -> IO (Ptr RawTH2Poly) -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_DrawNormalized"                c_th2poly_drawnormalized ::                Ptr RawTH2Poly -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_drawPanelTH1"-               c_th2poly_drawpanelth1 :: Ptr RawTH2Poly -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_drawPanelTH1" c_th2poly_drawpanelth1 ::+               Ptr RawTH2Poly -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_BufferEmpty"-               c_th2poly_bufferempty :: Ptr RawTH2Poly -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_BufferEmpty" c_th2poly_bufferempty ::+               Ptr RawTH2Poly -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_evalF"-               c_th2poly_evalf :: Ptr RawTH2Poly -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_evalF" c_th2poly_evalf ::+               Ptr RawTH2Poly -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FFT"+foreign import ccall interruptible "HROOTHistTH2Poly.h TH2Poly_FFT"                c_th2poly_fft ::                Ptr RawTH2Poly -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fill1"-               c_th2poly_fill1 :: Ptr RawTH2Poly -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fill1" c_th2poly_fill1 ::+               Ptr RawTH2Poly -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fill1w"-               c_th2poly_fill1w :: Ptr RawTH2Poly -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fill1w" c_th2poly_fill1w ::+               Ptr RawTH2Poly -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_fillN1"-               c_th2poly_filln1 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_fillN1" c_th2poly_filln1 ::                Ptr RawTH2Poly ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FillRandom"-               c_th2poly_fillrandom ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FillRandom" c_th2poly_fillrandom ::                Ptr RawTH2Poly -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FindBin"-               c_th2poly_findbin ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FindBin" c_th2poly_findbin ::                Ptr RawTH2Poly -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FindFixBin"-               c_th2poly_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FindFixBin" c_th2poly_findfixbin ::                Ptr RawTH2Poly -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_FindFirstBinAbove"                c_th2poly_findfirstbinabove ::                Ptr RawTH2Poly -> CDouble -> CInt -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_FindLastBinAbove"                c_th2poly_findlastbinabove ::                Ptr RawTH2Poly -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Fit"+foreign import ccall interruptible "HROOTHistTH2Poly.h TH2Poly_Fit"                c_th2poly_fit ::                Ptr RawTH2Poly ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FitPanelTH1"-               c_th2poly_fitpanelth1 :: Ptr RawTH2Poly -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FitPanelTH1" c_th2poly_fitpanelth1 ::+               Ptr RawTH2Poly -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getNdivisionA" c_th2poly_getndivisiona                :: Ptr RawTH2Poly -> CString -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getAxisColorA" c_th2poly_getaxiscolora-               :: Ptr RawTH2Poly -> CString -> IO CInt+               :: Ptr RawTH2Poly -> CString -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getLabelColorA"-               c_th2poly_getlabelcolora :: Ptr RawTH2Poly -> CString -> IO CInt+               c_th2poly_getlabelcolora :: Ptr RawTH2Poly -> CString -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getLabelFontA" c_th2poly_getlabelfonta-               :: Ptr RawTH2Poly -> CString -> IO CInt+               :: Ptr RawTH2Poly -> CString -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getLabelOffsetA"-               c_th2poly_getlabeloffseta ::-               Ptr RawTH2Poly -> CString -> IO CDouble+               c_th2poly_getlabeloffseta :: Ptr RawTH2Poly -> CString -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getLabelSizeA" c_th2poly_getlabelsizea-               :: Ptr RawTH2Poly -> CString -> IO CDouble+               :: Ptr RawTH2Poly -> CString -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getTitleFontA" c_th2poly_gettitlefonta-               :: Ptr RawTH2Poly -> CString -> IO CInt+               :: Ptr RawTH2Poly -> CString -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getTitleOffsetA"-               c_th2poly_gettitleoffseta ::-               Ptr RawTH2Poly -> CString -> IO CDouble+               c_th2poly_gettitleoffseta :: Ptr RawTH2Poly -> CString -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getTitleSizeA" c_th2poly_gettitlesizea-               :: Ptr RawTH2Poly -> CString -> IO CDouble+               :: Ptr RawTH2Poly -> CString -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getTickLengthA"-               c_th2poly_getticklengtha :: Ptr RawTH2Poly -> CString -> IO CDouble+               c_th2poly_getticklengtha :: Ptr RawTH2Poly -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBarOffset"-               c_th2poly_getbaroffset :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBarOffset" c_th2poly_getbaroffset ::+               Ptr RawTH2Poly -> IO CFloat -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBarWidth"-               c_th2poly_getbarwidth :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBarWidth" c_th2poly_getbarwidth ::+               Ptr RawTH2Poly -> IO CFloat -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetContour"-               c_th2poly_getcontour :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetContour" c_th2poly_getcontour ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetContourLevel"                c_th2poly_getcontourlevel :: Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetContourLevelPad"                c_th2poly_getcontourlevelpad ::                Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBin"-               c_th2poly_getbin ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBin" c_th2poly_getbin ::                Ptr RawTH2Poly -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBinCenter"-               c_th2poly_getbincenter :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBinCenter" c_th2poly_getbincenter ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetBinContent1"                c_th2poly_getbincontent1 :: Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetBinContent2"                c_th2poly_getbincontent2 ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetBinContent3"                c_th2poly_getbincontent3 ::                Ptr RawTH2Poly -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBinError1"-               c_th2poly_getbinerror1 :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBinError1" c_th2poly_getbinerror1 ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBinError2"-               c_th2poly_getbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBinError2" c_th2poly_getbinerror2 ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBinError3"-               c_th2poly_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBinError3" c_th2poly_getbinerror3 ::                Ptr RawTH2Poly -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetBinLowEdge" c_th2poly_getbinlowedge                :: Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetBinWidth"-               c_th2poly_getbinwidth :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetBinWidth" c_th2poly_getbinwidth ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetCellContent"                c_th2poly_getcellcontent ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetCellError"-               c_th2poly_getcellerror ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetCellError" c_th2poly_getcellerror ::                Ptr RawTH2Poly -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetEntries"-               c_th2poly_getentries :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetEntries" c_th2poly_getentries ::+               Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetEffectiveEntries"                c_th2poly_geteffectiveentries :: Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetFunction"-               c_th2poly_getfunction ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetFunction" c_th2poly_getfunction ::                Ptr RawTH2Poly -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetDimension"-               c_th2poly_getdimension :: Ptr RawTH2Poly -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetDimension" c_th2poly_getdimension ::+               Ptr RawTH2Poly -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetKurtosis"-               c_th2poly_getkurtosis :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetKurtosis" c_th2poly_getkurtosis ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetLowEdge"-               c_th2poly_getlowedge :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetLowEdge" c_th2poly_getlowedge ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getMaximumTH1" c_th2poly_getmaximumth1                :: Ptr RawTH2Poly -> CDouble -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMaximumBin" c_th2poly_getmaximumbin                :: Ptr RawTH2Poly -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMaximumStored"                c_th2poly_getmaximumstored :: Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getMinimumTH1" c_th2poly_getminimumth1                :: Ptr RawTH2Poly -> CDouble -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMinimumBin" c_th2poly_getminimumbin                :: Ptr RawTH2Poly -> IO CInt -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMinimumStored"                c_th2poly_getminimumstored :: Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetMean"-               c_th2poly_getmean :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetMean" c_th2poly_getmean ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetMeanError"-               c_th2poly_getmeanerror :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetMeanError" c_th2poly_getmeanerror ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetNbinsX"-               c_th2poly_getnbinsx :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetNbinsX" c_th2poly_getnbinsx ::+               Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetNbinsY"-               c_th2poly_getnbinsy :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetNbinsY" c_th2poly_getnbinsy ::+               Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetNbinsZ"-               c_th2poly_getnbinsz :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetNbinsZ" c_th2poly_getnbinsz ::+               Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_getQuantilesTH1"                c_th2poly_getquantilesth1 ::-               Ptr RawTH2Poly -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+               Ptr RawTH2Poly -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetRandom"-               c_th2poly_getrandom :: Ptr RawTH2Poly -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetRandom" c_th2poly_getrandom ::+               Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetStats"-               c_th2poly_getstats :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetStats" c_th2poly_getstats ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetSumOfWeights"                c_th2poly_getsumofweights :: Ptr RawTH2Poly -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetSumw2"-               c_th2poly_getsumw2 :: Ptr RawTH2Poly -> IO (Ptr RawTArrayD)--foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetSumw2N"-               c_th2poly_getsumw2n :: Ptr RawTH2Poly -> IO CInt--foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetRMS"-               c_th2poly_getrms :: Ptr RawTH2Poly -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetRMSError"-               c_th2poly_getrmserror :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetSumw2" c_th2poly_getsumw2 ::+               Ptr RawTH2Poly -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetSkewness"-               c_th2poly_getskewness :: Ptr RawTH2Poly -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetSumw2N" c_th2poly_getsumw2n ::+               Ptr RawTH2Poly -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_integral1"-               c_th2poly_integral1 ::-               Ptr RawTH2Poly -> CInt -> CInt -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetRMS" c_th2poly_getrms ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_interpolate1"-               c_th2poly_interpolate1 :: Ptr RawTH2Poly -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetRMSError" c_th2poly_getrmserror ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_interpolate2"-               c_th2poly_interpolate2 ::-               Ptr RawTH2Poly -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetSkewness" c_th2poly_getskewness ::+               Ptr RawTH2Poly -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_interpolate3"-               c_th2poly_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_interpolate3" c_th2poly_interpolate3 ::                Ptr RawTH2Poly -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_KolmogorovTest"                c_th2poly_kolmogorovtest ::                Ptr RawTH2Poly -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_LabelsDeflate" c_th2poly_labelsdeflate                :: Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_LabelsInflate" c_th2poly_labelsinflate                :: Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_LabelsOption"-               c_th2poly_labelsoption ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_LabelsOption" c_th2poly_labelsoption ::                Ptr RawTH2Poly -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_multiflyF"-               c_th2poly_multiflyf ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_multiflyF" c_th2poly_multiflyf ::                Ptr RawTH2Poly -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Multiply"-               c_th2poly_multiply ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Multiply" c_th2poly_multiply ::                Ptr RawTH2Poly ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_PutStats"-               c_th2poly_putstats :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_PutStats" c_th2poly_putstats ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Rebin"-               c_th2poly_rebin ::-               Ptr RawTH2Poly ->-                 CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Rebin" c_th2poly_rebin ::+               Ptr RawTH2Poly -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_RebinAxis"-               c_th2poly_rebinaxis ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_RebinAxis" c_th2poly_rebinaxis ::                Ptr RawTH2Poly -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Rebuild"-               c_th2poly_rebuild :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Rebuild" c_th2poly_rebuild ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_RecursiveRemove"                c_th2poly_recursiveremove ::                Ptr RawTH2Poly -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Reset"-               c_th2poly_reset :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Reset" c_th2poly_reset ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_ResetStats"-               c_th2poly_resetstats :: Ptr RawTH2Poly -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_ResetStats" c_th2poly_resetstats ::+               Ptr RawTH2Poly -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Scale"-               c_th2poly_scale :: Ptr RawTH2Poly -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Scale" c_th2poly_scale ::+               Ptr RawTH2Poly -> CDouble -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setAxisColorA" c_th2poly_setaxiscolora-               :: Ptr RawTH2Poly -> CInt -> CString -> IO ()+               :: Ptr RawTH2Poly -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetAxisRange"-               c_th2poly_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetAxisRange" c_th2poly_setaxisrange ::                Ptr RawTH2Poly -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetBarOffset"-               c_th2poly_setbaroffset :: Ptr RawTH2Poly -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetBarOffset" c_th2poly_setbaroffset ::+               Ptr RawTH2Poly -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetBarWidth"-               c_th2poly_setbarwidth :: Ptr RawTH2Poly -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetBarWidth" c_th2poly_setbarwidth ::+               Ptr RawTH2Poly -> CFloat -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setBinContent1"                c_th2poly_setbincontent1 ::                Ptr RawTH2Poly -> CInt -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setBinContent2"                c_th2poly_setbincontent2 ::                Ptr RawTH2Poly -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setBinContent3"                c_th2poly_setbincontent3 ::                Ptr RawTH2Poly -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBinError1"-               c_th2poly_setbinerror1 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBinError1" c_th2poly_setbinerror1 ::                Ptr RawTH2Poly -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBinError2"-               c_th2poly_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBinError2" c_th2poly_setbinerror2 ::                Ptr RawTH2Poly -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBinError3"-               c_th2poly_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBinError3" c_th2poly_setbinerror3 ::                Ptr RawTH2Poly -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBins1"-               c_th2poly_setbins1 ::-               Ptr RawTH2Poly -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBins1" c_th2poly_setbins1 ::+               Ptr RawTH2Poly -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBins2"-               c_th2poly_setbins2 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBins2" c_th2poly_setbins2 ::                Ptr RawTH2Poly ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                 CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_setBins3"-               c_th2poly_setbins3 ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_setBins3" c_th2poly_setbins3 ::                Ptr RawTH2Poly ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetBinsLength" c_th2poly_setbinslength                :: Ptr RawTH2Poly -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetBuffer"-               c_th2poly_setbuffer :: Ptr RawTH2Poly -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetBuffer" c_th2poly_setbuffer ::+               Ptr RawTH2Poly -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetCellContent"                c_th2poly_setcellcontent ::                Ptr RawTH2Poly -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetContent"-               c_th2poly_setcontent :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetContent" c_th2poly_setcontent ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetContour"-               c_th2poly_setcontour ::-               Ptr RawTH2Poly -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetContour" c_th2poly_setcontour ::+               Ptr RawTH2Poly -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetContourLevel"                c_th2poly_setcontourlevel ::                Ptr RawTH2Poly -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetDirectory"-               c_th2poly_setdirectory ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetDirectory" c_th2poly_setdirectory ::                Ptr RawTH2Poly -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetEntries"-               c_th2poly_setentries :: Ptr RawTH2Poly -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetEntries" c_th2poly_setentries ::+               Ptr RawTH2Poly -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetError"-               c_th2poly_seterror :: Ptr RawTH2Poly -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetError" c_th2poly_seterror ::+               Ptr RawTH2Poly -> Ptr CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setLabelColorA"                c_th2poly_setlabelcolora ::-               Ptr RawTH2Poly -> CInt -> CString -> IO ()+               Ptr RawTH2Poly -> CShort -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setLabelSizeA" c_th2poly_setlabelsizea-               :: Ptr RawTH2Poly -> CDouble -> CString -> IO ()+               :: Ptr RawTH2Poly -> CFloat -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setLabelFontA" c_th2poly_setlabelfonta-               :: Ptr RawTH2Poly -> CInt -> CString -> IO ()+               :: Ptr RawTH2Poly -> CShort -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_setLabelOffsetA"                c_th2poly_setlabeloffseta ::-               Ptr RawTH2Poly -> CDouble -> CString -> IO ()+               Ptr RawTH2Poly -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetMaximum"-               c_th2poly_setmaximum :: Ptr RawTH2Poly -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetMaximum" c_th2poly_setmaximum ::+               Ptr RawTH2Poly -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetMinimum"-               c_th2poly_setminimum :: Ptr RawTH2Poly -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetMinimum" c_th2poly_setminimum ::+               Ptr RawTH2Poly -> CDouble -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetNormFactor" c_th2poly_setnormfactor                :: Ptr RawTH2Poly -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetStats"-               c_th2poly_setstats :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetStats" c_th2poly_setstats ::+               Ptr RawTH2Poly -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetOption"-               c_th2poly_setoption :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetOption" c_th2poly_setoption ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetXTitle"-               c_th2poly_setxtitle :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetXTitle" c_th2poly_setxtitle ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetYTitle"-               c_th2poly_setytitle :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetYTitle" c_th2poly_setytitle ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetZTitle"-               c_th2poly_setztitle :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetZTitle" c_th2poly_setztitle ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_ShowBackground"                c_th2poly_showbackground ::                Ptr RawTH2Poly -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_ShowPeaks"-               c_th2poly_showpeaks ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_ShowPeaks" c_th2poly_showpeaks ::                Ptr RawTH2Poly -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Smooth"-               c_th2poly_smooth :: Ptr RawTH2Poly -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Smooth" c_th2poly_smooth ::+               Ptr RawTH2Poly -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Sumw2"-               c_th2poly_sumw2 :: Ptr RawTH2Poly -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Sumw2" c_th2poly_sumw2 ::+               Ptr RawTH2Poly -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetName"-               c_th2poly_setname :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetName" c_th2poly_setname ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetNameTitle"-               c_th2poly_setnametitle ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetNameTitle" c_th2poly_setnametitle ::                Ptr RawTH2Poly -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetTitle"-               c_th2poly_settitle :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetTitle" c_th2poly_settitle ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetLineColor"-               c_th2poly_getlinecolor :: Ptr RawTH2Poly -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetLineColor" c_th2poly_getlinecolor ::+               Ptr RawTH2Poly -> IO CShort -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetLineStyle"-               c_th2poly_getlinestyle :: Ptr RawTH2Poly -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetLineStyle" c_th2poly_getlinestyle ::+               Ptr RawTH2Poly -> IO CShort -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetLineWidth"-               c_th2poly_getlinewidth :: Ptr RawTH2Poly -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetLineWidth" c_th2poly_getlinewidth ::+               Ptr RawTH2Poly -> IO CShort -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_ResetAttLine"-               c_th2poly_resetattline :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_ResetAttLine" c_th2poly_resetattline ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetLineAttributes"                c_th2poly_setlineattributes :: Ptr RawTH2Poly -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetLineColor"-               c_th2poly_setlinecolor :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetLineColor" c_th2poly_setlinecolor ::+               Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetLineStyle"-               c_th2poly_setlinestyle :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetLineStyle" c_th2poly_setlinestyle ::+               Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetLineWidth"-               c_th2poly_setlinewidth :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetLineWidth" c_th2poly_setlinewidth ::+               Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetFillColor"-               c_th2poly_setfillcolor :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetFillColor" c_th2poly_setfillcolor ::+               Ptr RawTH2Poly -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SetFillStyle"-               c_th2poly_setfillstyle :: Ptr RawTH2Poly -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SetFillStyle" c_th2poly_setfillstyle ::+               Ptr RawTH2Poly -> CInt -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMarkerColor"-               c_th2poly_getmarkercolor :: Ptr RawTH2Poly -> IO CInt+               c_th2poly_getmarkercolor :: Ptr RawTH2Poly -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMarkerStyle"-               c_th2poly_getmarkerstyle :: Ptr RawTH2Poly -> IO CInt+               c_th2poly_getmarkerstyle :: Ptr RawTH2Poly -> IO CShort -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_GetMarkerSize" c_th2poly_getmarkersize-               :: Ptr RawTH2Poly -> IO CDouble+               :: Ptr RawTH2Poly -> IO CFloat -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_ResetAttMarker"                c_th2poly_resetattmarker :: Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetMarkerAttributes"                c_th2poly_setmarkerattributes :: Ptr RawTH2Poly -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetMarkerColor"-               c_th2poly_setmarkercolor :: Ptr RawTH2Poly -> CInt -> IO ()+               c_th2poly_setmarkercolor :: Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetMarkerStyle"-               c_th2poly_setmarkerstyle :: Ptr RawTH2Poly -> CInt -> IO ()+               c_th2poly_setmarkerstyle :: Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2Poly.h TH2Poly_SetMarkerSize" c_th2poly_setmarkersize-               :: Ptr RawTH2Poly -> CInt -> IO ()+               :: Ptr RawTH2Poly -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Draw"-               c_th2poly_draw :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Clear" c_th2poly_clear ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_FindObject"-               c_th2poly_findobject ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Draw" c_th2poly_draw ::+               Ptr RawTH2Poly -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FindObject" c_th2poly_findobject ::                Ptr RawTH2Poly -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_GetName"-               c_th2poly_getname :: Ptr RawTH2Poly -> IO CString+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_GetName" c_th2poly_getname ::+               Ptr RawTH2Poly -> IO CString -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_IsA"+foreign import ccall interruptible "HROOTHistTH2Poly.h TH2Poly_IsA"                c_th2poly_isa :: Ptr RawTH2Poly -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Paint"-               c_th2poly_paint :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Paint" c_th2poly_paint ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_printObj"-               c_th2poly_printobj :: Ptr RawTH2Poly -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_printObj" c_th2poly_printobj ::+               Ptr RawTH2Poly -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_SaveAs"-               c_th2poly_saveas :: Ptr RawTH2Poly -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_SaveAs" c_th2poly_saveas ::+               Ptr RawTH2Poly -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_Write"-               c_th2poly_write ::+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Write" c_th2poly_write ::                Ptr RawTH2Poly -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2Poly.h TH2Poly_delete"-               c_th2poly_delete :: Ptr RawTH2Poly -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_Write_" c_th2poly_write_ ::+               Ptr RawTH2Poly -> IO CInt++foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_delete" c_th2poly_delete ::+               Ptr RawTH2Poly -> IO ()++foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_newTH2Poly" c_th2poly_newth2poly ::+               CString ->+                 CString ->+                   CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTH2Poly)++foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_AddBin" c_th2poly_addbin ::+               Ptr RawTH2Poly -> Ptr RawTObject -> IO CInt++foreign import ccall interruptible+               "HROOTHistTH2Poly.h TH2Poly_FillS" c_th2poly_fills ::+               Ptr RawTH2Poly -> CString -> CDouble -> IO CInt
src/HROOT/Hist/TH2Poly/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2Poly.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2Poly.RawType import HROOT.Hist.TH2Poly.FFI import HROOT.Hist.TH2Poly.Interface import HROOT.Hist.TH2Poly.Cast+import HROOT.Hist.TH2Poly.RawType+import HROOT.Hist.TH2Poly.Cast+import HROOT.Hist.TH2Poly.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -54,13 +63,15 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITH2Poly TH2Poly+instance () => ITH2Poly (TH2Poly) where+        addBin = xform1 c_th2poly_addbin+        fillS = xform2 c_th2poly_fills -instance ITH2 TH2Poly where+instance () => ITH2 (TH2Poly) where         fill2 = xform2 c_th2poly_fill2         fill2w = xform3 c_th2poly_fill2w         fillN2 = xform5 c_th2poly_filln2@@ -78,11 +89,10 @@         setShowProjectionX = xform1 c_th2poly_setshowprojectionx         setShowProjectionY = xform1 c_th2poly_setshowprojectiony -instance ITH1 TH2Poly where+instance () => ITH1 (TH2Poly) where         add = xform2 c_th2poly_add         addBinContent = xform2 c_th2poly_addbincontent         chi2Test = xform3 c_th2poly_chi2test-        computeIntegral = xform0 c_th2poly_computeintegral         directoryAutoAdd = xform1 c_th2poly_directoryautoadd         divide = xform5 c_th2poly_divide         drawCopyTH1 = xform1 c_th2poly_drawcopyth1@@ -154,9 +164,6 @@         getRMS = xform1 c_th2poly_getrms         getRMSError = xform1 c_th2poly_getrmserror         getSkewness = xform1 c_th2poly_getskewness-        integral1 = xform3 c_th2poly_integral1-        interpolate1 = xform1 c_th2poly_interpolate1-        interpolate2 = xform2 c_th2poly_interpolate2         interpolate3 = xform3 c_th2poly_interpolate3         kolmogorovTest = xform2 c_th2poly_kolmogorovtest         labelsDeflate = xform1 c_th2poly_labelsdeflate@@ -211,12 +218,12 @@         smooth = xform2 c_th2poly_smooth         sumw2 = xform0 c_th2poly_sumw2 -instance ITNamed TH2Poly where+instance () => ITNamed (TH2Poly) where         setName = xform1 c_th2poly_setname         setNameTitle = xform2 c_th2poly_setnametitle         setTitle = xform1 c_th2poly_settitle -instance ITAttLine TH2Poly where+instance () => ITAttLine (TH2Poly) where         getLineColor = xform0 c_th2poly_getlinecolor         getLineStyle = xform0 c_th2poly_getlinestyle         getLineWidth = xform0 c_th2poly_getlinewidth@@ -226,11 +233,11 @@         setLineStyle = xform1 c_th2poly_setlinestyle         setLineWidth = xform1 c_th2poly_setlinewidth -instance ITAttFill TH2Poly where+instance () => ITAttFill (TH2Poly) where         setFillColor = xform1 c_th2poly_setfillcolor         setFillStyle = xform1 c_th2poly_setfillstyle -instance ITAttMarker TH2Poly where+instance () => ITAttMarker (TH2Poly) where         getMarkerColor = xform0 c_th2poly_getmarkercolor         getMarkerStyle = xform0 c_th2poly_getmarkerstyle         getMarkerSize = xform0 c_th2poly_getmarkersize@@ -240,7 +247,8 @@         setMarkerStyle = xform1 c_th2poly_setmarkerstyle         setMarkerSize = xform1 c_th2poly_setmarkersize -instance ITObject TH2Poly where+instance () => ITObject (TH2Poly) where+        clear = xform1 c_th2poly_clear         draw = xform1 c_th2poly_draw         findObject = xform1 c_th2poly_findobject         getName = xform0 c_th2poly_getname@@ -249,6 +257,12 @@         printObj = xform1 c_th2poly_printobj         saveAs = xform2 c_th2poly_saveas         write = xform3 c_th2poly_write+        write_ = xform0 c_th2poly_write_ -instance IDeletable TH2Poly where+instance () => IDeletable (TH2Poly) where         delete = xform0 c_th2poly_delete++newTH2Poly ::+             (Castable c1 CString, Castable c0 CString) =>+             c0 -> c1 -> CDouble -> CDouble -> CDouble -> CDouble -> IO TH2Poly+newTH2Poly = xform5 c_th2poly_newth2poly
src/HROOT/Hist/TH2Poly/Interface.hs view
@@ -4,13 +4,18 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2Poly.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TH2Poly.RawType import HROOT.Hist.TH2.Interface+import HROOT.Core.TObject.Interface -class ITH2 a => ITH2Poly a+class (ITH2 a) => ITH2Poly a where+        addBin :: (ITObject c0, FPtr c0) => a -> c0 -> IO CInt+        +        fillS :: (Castable c0 CString) => a -> c0 -> CDouble -> IO CInt  upcastTH2Poly :: forall a . (FPtr a, ITH2Poly a) => a -> TH2Poly upcastTH2Poly h
src/HROOT/Hist/TH2Poly/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2Poly  newtype TH2Poly = TH2Poly (Ptr RawTH2Poly)-                deriving (Eq, Ord, Show)+                    deriving (Eq, Ord, Show) -instance FPtr TH2Poly where+instance () => FPtr (TH2Poly) where         type Raw TH2Poly = RawTH2Poly         get_fptr (TH2Poly ptr) = ptr         cast_fptr_to_obj = TH2Poly
src/HROOT/Hist/TH2S/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH2S.RawType import HROOT.Hist.TH2S.Interface -instance (ITH2S a, FPtr a) => Castable a (Ptr RawTH2S) where+instance (ITH2S a, FPtr a) => Castable (a) (Ptr RawTH2S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH2S (Ptr RawTH2S) where+instance () => Castable (TH2S) (Ptr RawTH2S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH2S/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH2S.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH2S.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH2.RawType import HROOT.Hist.TH1.RawType@@ -14,589 +17,678 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH2S.h TH2S_fill2" c_th2s_fill2-               :: Ptr RawTH2S -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fill2"+               c_th2s_fill2 :: Ptr RawTH2S -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_fill2w"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fill2w"                c_th2s_fill2w ::                Ptr RawTH2S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_fillN2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fillN2"                c_th2s_filln2 ::                Ptr RawTH2S ->-                 CInt ->-                   (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+                 CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_fillRandom2"-               c_th2s_fillrandom2 :: Ptr RawTH2S -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_fillRandom2" c_th2s_fillrandom2 ::+               Ptr RawTH2S -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_findFirstBinAbove2"-               c_th2s_findfirstbinabove2 ::-               Ptr RawTH2S -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_findFirstBinAbove2" c_th2s_findfirstbinabove2+               :: Ptr RawTH2S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_findLastBinAbove2"-               c_th2s_findlastbinabove2 ::-               Ptr RawTH2S -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_findLastBinAbove2" c_th2s_findlastbinabove2+               :: Ptr RawTH2S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_FitSlicesX"-               c_th2s_fitslicesx ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FitSlicesX" c_th2s_fitslicesx ::                Ptr RawTH2S ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FitSlicesY"-               c_th2s_fitslicesy ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FitSlicesY" c_th2s_fitslicesy ::                Ptr RawTH2S ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CString -> Ptr RawTObjArray -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2S.h TH2S_getCorrelationFactor2"                c_th2s_getcorrelationfactor2 ::                Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_getCovariance2"-               c_th2s_getcovariance2 :: Ptr RawTH2S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getCovariance2" c_th2s_getcovariance2 ::+               Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_integral2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_integral2"                c_th2s_integral2 ::                Ptr RawTH2S ->                  CInt -> CInt -> CInt -> CInt -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_rebinX2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_rebinX2"                c_th2s_rebinx2 :: Ptr RawTH2S -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2S.h TH2S_rebinY2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_rebinY2"                c_th2s_rebiny2 :: Ptr RawTH2S -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2S.h TH2S_Rebin2D"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Rebin2D"                c_th2s_rebin2d ::                Ptr RawTH2S -> CInt -> CInt -> CString -> IO (Ptr RawTH2) -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetShowProjectionX"-               c_th2s_setshowprojectionx :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetShowProjectionX" c_th2s_setshowprojectionx+               :: Ptr RawTH2S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetShowProjectionY"-               c_th2s_setshowprojectiony :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetShowProjectionY" c_th2s_setshowprojectiony+               :: Ptr RawTH2S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Add" c_th2s_add ::-               Ptr RawTH2S -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Add"+               c_th2s_add :: Ptr RawTH2S -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_AddBinContent"-               c_th2s_addbincontent :: Ptr RawTH2S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_AddBinContent" c_th2s_addbincontent ::+               Ptr RawTH2S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Chi2Test"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Chi2Test"                c_th2s_chi2test ::-               Ptr RawTH2S -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH2S.h TH2S_ComputeIntegral"-               c_th2s_computeintegral :: Ptr RawTH2S -> IO CDouble+               Ptr RawTH2S -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_DirectoryAutoAdd"-               c_th2s_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_DirectoryAutoAdd" c_th2s_directoryautoadd ::                Ptr RawTH2S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Divide"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Divide"                c_th2s_divide ::                Ptr RawTH2S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_drawCopyTH1"-               c_th2s_drawcopyth1 :: Ptr RawTH2S -> CString -> IO (Ptr RawTH2S)+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_drawCopyTH1" c_th2s_drawcopyth1 ::+               Ptr RawTH2S -> CString -> IO (Ptr RawTH2S) -foreign import ccall safe "HROOTHistTH2S.h TH2S_DrawNormalized"-               c_th2s_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_DrawNormalized" c_th2s_drawnormalized ::                Ptr RawTH2S -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2S.h TH2S_drawPanelTH1"-               c_th2s_drawpanelth1 :: Ptr RawTH2S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_drawPanelTH1" c_th2s_drawpanelth1 ::+               Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_BufferEmpty"-               c_th2s_bufferempty :: Ptr RawTH2S -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_BufferEmpty" c_th2s_bufferempty ::+               Ptr RawTH2S -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_evalF" c_th2s_evalf-               :: Ptr RawTH2S -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_evalF"+               c_th2s_evalf :: Ptr RawTH2S -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FFT" c_th2s_fft ::+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_FFT"+               c_th2s_fft ::                Ptr RawTH2S -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2S.h TH2S_fill1" c_th2s_fill1-               :: Ptr RawTH2S -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fill1"+               c_th2s_fill1 :: Ptr RawTH2S -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_fill1w"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fill1w"                c_th2s_fill1w :: Ptr RawTH2S -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_fillN1"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_fillN1"                c_th2s_filln1 ::-               Ptr RawTH2S ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH2S -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FillRandom"-               c_th2s_fillrandom :: Ptr RawTH2S -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FillRandom" c_th2s_fillrandom ::+               Ptr RawTH2S -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FindBin"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_FindBin"                c_th2s_findbin ::                Ptr RawTH2S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_FindFixBin"-               c_th2s_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FindFixBin" c_th2s_findfixbin ::                Ptr RawTH2S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_FindFirstBinAbove"-               c_th2s_findfirstbinabove ::-               Ptr RawTH2S -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FindFirstBinAbove" c_th2s_findfirstbinabove+               :: Ptr RawTH2S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_FindLastBinAbove"-               c_th2s_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FindLastBinAbove" c_th2s_findlastbinabove ::                Ptr RawTH2S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_Fit" c_th2s_fit ::+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Fit"+               c_th2s_fit ::                Ptr RawTH2S ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FitPanelTH1"-               c_th2s_fitpanelth1 :: Ptr RawTH2S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FitPanelTH1" c_th2s_fitpanelth1 ::+               Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_getNdivisionA"-               c_th2s_getndivisiona :: Ptr RawTH2S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getNdivisionA" c_th2s_getndivisiona ::+               Ptr RawTH2S -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_getAxisColorA"-               c_th2s_getaxiscolora :: Ptr RawTH2S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getAxisColorA" c_th2s_getaxiscolora ::+               Ptr RawTH2S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_getLabelColorA"-               c_th2s_getlabelcolora :: Ptr RawTH2S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getLabelColorA" c_th2s_getlabelcolora ::+               Ptr RawTH2S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_getLabelFontA"-               c_th2s_getlabelfonta :: Ptr RawTH2S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getLabelFontA" c_th2s_getlabelfonta ::+               Ptr RawTH2S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_getLabelOffsetA"-               c_th2s_getlabeloffseta :: Ptr RawTH2S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getLabelOffsetA" c_th2s_getlabeloffseta ::+               Ptr RawTH2S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_getLabelSizeA"-               c_th2s_getlabelsizea :: Ptr RawTH2S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getLabelSizeA" c_th2s_getlabelsizea ::+               Ptr RawTH2S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_getTitleFontA"-               c_th2s_gettitlefonta :: Ptr RawTH2S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getTitleFontA" c_th2s_gettitlefonta ::+               Ptr RawTH2S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_getTitleOffsetA"-               c_th2s_gettitleoffseta :: Ptr RawTH2S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getTitleOffsetA" c_th2s_gettitleoffseta ::+               Ptr RawTH2S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_getTitleSizeA"-               c_th2s_gettitlesizea :: Ptr RawTH2S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getTitleSizeA" c_th2s_gettitlesizea ::+               Ptr RawTH2S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_getTickLengthA"-               c_th2s_getticklengtha :: Ptr RawTH2S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getTickLengthA" c_th2s_getticklengtha ::+               Ptr RawTH2S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBarOffset"-               c_th2s_getbaroffset :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBarOffset" c_th2s_getbaroffset ::+               Ptr RawTH2S -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBarWidth"-               c_th2s_getbarwidth :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBarWidth" c_th2s_getbarwidth ::+               Ptr RawTH2S -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetContour"-               c_th2s_getcontour :: Ptr RawTH2S -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetContour" c_th2s_getcontour ::+               Ptr RawTH2S -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetContourLevel"-               c_th2s_getcontourlevel :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetContourLevel" c_th2s_getcontourlevel ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetContourLevelPad"-               c_th2s_getcontourlevelpad :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetContourLevelPad" c_th2s_getcontourlevelpad+               :: Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBin"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetBin"                c_th2s_getbin :: Ptr RawTH2S -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinCenter"-               c_th2s_getbincenter :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinCenter" c_th2s_getbincenter ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinContent1"-               c_th2s_getbincontent1 :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinContent1" c_th2s_getbincontent1 ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinContent2"-               c_th2s_getbincontent2 :: Ptr RawTH2S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinContent2" c_th2s_getbincontent2 ::+               Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinContent3"-               c_th2s_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinContent3" c_th2s_getbincontent3 ::                Ptr RawTH2S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinError1"-               c_th2s_getbinerror1 :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinError1" c_th2s_getbinerror1 ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinError2"-               c_th2s_getbinerror2 :: Ptr RawTH2S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinError2" c_th2s_getbinerror2 ::+               Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinError3"-               c_th2s_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinError3" c_th2s_getbinerror3 ::                Ptr RawTH2S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinLowEdge"-               c_th2s_getbinlowedge :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinLowEdge" c_th2s_getbinlowedge ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetBinWidth"-               c_th2s_getbinwidth :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetBinWidth" c_th2s_getbinwidth ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetCellContent"-               c_th2s_getcellcontent :: Ptr RawTH2S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetCellContent" c_th2s_getcellcontent ::+               Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetCellError"-               c_th2s_getcellerror :: Ptr RawTH2S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetCellError" c_th2s_getcellerror ::+               Ptr RawTH2S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetEntries"-               c_th2s_getentries :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetEntries" c_th2s_getentries ::+               Ptr RawTH2S -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2S.h TH2S_GetEffectiveEntries"                c_th2s_geteffectiveentries :: Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetFunction"-               c_th2s_getfunction :: Ptr RawTH2S -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetFunction" c_th2s_getfunction ::+               Ptr RawTH2S -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetDimension"-               c_th2s_getdimension :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetDimension" c_th2s_getdimension ::+               Ptr RawTH2S -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetKurtosis"-               c_th2s_getkurtosis :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetKurtosis" c_th2s_getkurtosis ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetLowEdge"-               c_th2s_getlowedge :: Ptr RawTH2S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetLowEdge" c_th2s_getlowedge ::+               Ptr RawTH2S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_getMaximumTH1"-               c_th2s_getmaximumth1 :: Ptr RawTH2S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getMaximumTH1" c_th2s_getmaximumth1 ::+               Ptr RawTH2S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMaximumBin"-               c_th2s_getmaximumbin :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMaximumBin" c_th2s_getmaximumbin ::+               Ptr RawTH2S -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMaximumStored"-               c_th2s_getmaximumstored :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMaximumStored" c_th2s_getmaximumstored ::+               Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_getMinimumTH1"-               c_th2s_getminimumth1 :: Ptr RawTH2S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getMinimumTH1" c_th2s_getminimumth1 ::+               Ptr RawTH2S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMinimumBin"-               c_th2s_getminimumbin :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMinimumBin" c_th2s_getminimumbin ::+               Ptr RawTH2S -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMinimumStored"-               c_th2s_getminimumstored :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMinimumStored" c_th2s_getminimumstored ::+               Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMean"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetMean"                c_th2s_getmean :: Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMeanError"-               c_th2s_getmeanerror :: Ptr RawTH2S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMeanError" c_th2s_getmeanerror ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetNbinsX"                c_th2s_getnbinsx :: Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetNbinsY"                c_th2s_getnbinsy :: Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetNbinsZ"                c_th2s_getnbinsz :: Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_getQuantilesTH1"-               c_th2s_getquantilesth1 ::-               Ptr RawTH2S -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_getQuantilesTH1" c_th2s_getquantilesth1 ::+               Ptr RawTH2S -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetRandom"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetRandom"                c_th2s_getrandom :: Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetStats"-               c_th2s_getstats :: Ptr RawTH2S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetStats"+               c_th2s_getstats :: Ptr RawTH2S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetSumOfWeights"-               c_th2s_getsumofweights :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetSumOfWeights" c_th2s_getsumofweights ::+               Ptr RawTH2S -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetSumw2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetSumw2"                c_th2s_getsumw2 :: Ptr RawTH2S -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetSumw2N"                c_th2s_getsumw2n :: Ptr RawTH2S -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetRMS"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetRMS"                c_th2s_getrms :: Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetRMSError"-               c_th2s_getrmserror :: Ptr RawTH2S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2S.h TH2S_GetSkewness"-               c_th2s_getskewness :: Ptr RawTH2S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH2S.h TH2S_integral1"-               c_th2s_integral1 ::-               Ptr RawTH2S -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH2S.h TH2S_interpolate1"-               c_th2s_interpolate1 :: Ptr RawTH2S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetRMSError" c_th2s_getrmserror ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_interpolate2"-               c_th2s_interpolate2 ::-               Ptr RawTH2S -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetSkewness" c_th2s_getskewness ::+               Ptr RawTH2S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_interpolate3"-               c_th2s_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_interpolate3" c_th2s_interpolate3 ::                Ptr RawTH2S -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_KolmogorovTest"-               c_th2s_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_KolmogorovTest" c_th2s_kolmogorovtest ::                Ptr RawTH2S -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH2S.h TH2S_LabelsDeflate"-               c_th2s_labelsdeflate :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_LabelsDeflate" c_th2s_labelsdeflate ::+               Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_LabelsInflate"-               c_th2s_labelsinflate :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_LabelsInflate" c_th2s_labelsinflate ::+               Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_LabelsOption"-               c_th2s_labelsoption :: Ptr RawTH2S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_LabelsOption" c_th2s_labelsoption ::+               Ptr RawTH2S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_multiflyF"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_multiflyF"                c_th2s_multiflyf :: Ptr RawTH2S -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Multiply"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Multiply"                c_th2s_multiply ::                Ptr RawTH2S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_PutStats"-               c_th2s_putstats :: Ptr RawTH2S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_PutStats"+               c_th2s_putstats :: Ptr RawTH2S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Rebin" c_th2s_rebin-               ::-               Ptr RawTH2S -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Rebin"+               c_th2s_rebin ::+               Ptr RawTH2S -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2S.h TH2S_RebinAxis"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_RebinAxis"                c_th2s_rebinaxis :: Ptr RawTH2S -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Rebuild"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Rebuild"                c_th2s_rebuild :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_RecursiveRemove"-               c_th2s_recursiveremove :: Ptr RawTH2S -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_RecursiveRemove" c_th2s_recursiveremove ::+               Ptr RawTH2S -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Reset" c_th2s_reset-               :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Reset"+               c_th2s_reset :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_ResetStats"-               c_th2s_resetstats :: Ptr RawTH2S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_ResetStats" c_th2s_resetstats ::+               Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Scale" c_th2s_scale-               :: Ptr RawTH2S -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Scale"+               c_th2s_scale :: Ptr RawTH2S -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setAxisColorA"-               c_th2s_setaxiscolora :: Ptr RawTH2S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setAxisColorA" c_th2s_setaxiscolora ::+               Ptr RawTH2S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetAxisRange"-               c_th2s_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetAxisRange" c_th2s_setaxisrange ::                Ptr RawTH2S -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetBarOffset"-               c_th2s_setbaroffset :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetBarOffset" c_th2s_setbaroffset ::+               Ptr RawTH2S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetBarWidth"-               c_th2s_setbarwidth :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetBarWidth" c_th2s_setbarwidth ::+               Ptr RawTH2S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinContent1"-               c_th2s_setbincontent1 :: Ptr RawTH2S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinContent1" c_th2s_setbincontent1 ::+               Ptr RawTH2S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinContent2"-               c_th2s_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinContent2" c_th2s_setbincontent2 ::                Ptr RawTH2S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinContent3"-               c_th2s_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinContent3" c_th2s_setbincontent3 ::                Ptr RawTH2S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinError1"-               c_th2s_setbinerror1 :: Ptr RawTH2S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinError1" c_th2s_setbinerror1 ::+               Ptr RawTH2S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinError2"-               c_th2s_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinError2" c_th2s_setbinerror2 ::                Ptr RawTH2S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBinError3"-               c_th2s_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setBinError3" c_th2s_setbinerror3 ::                Ptr RawTH2S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBins1"-               c_th2s_setbins1 :: Ptr RawTH2S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_setBins1"+               c_th2s_setbins1 :: Ptr RawTH2S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBins2"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_setBins2"                c_th2s_setbins2 ::-               Ptr RawTH2S ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH2S -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setBins3"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_setBins3"                c_th2s_setbins3 ::                Ptr RawTH2S ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetBinsLength"-               c_th2s_setbinslength :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetBinsLength" c_th2s_setbinslength ::+               Ptr RawTH2S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetBuffer"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetBuffer"                c_th2s_setbuffer :: Ptr RawTH2S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetCellContent"-               c_th2s_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetCellContent" c_th2s_setcellcontent ::                Ptr RawTH2S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetContent"-               c_th2s_setcontent :: Ptr RawTH2S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetContent" c_th2s_setcontent ::+               Ptr RawTH2S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetContour"-               c_th2s_setcontour :: Ptr RawTH2S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetContour" c_th2s_setcontour ::+               Ptr RawTH2S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetContourLevel"-               c_th2s_setcontourlevel :: Ptr RawTH2S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetContourLevel" c_th2s_setcontourlevel ::+               Ptr RawTH2S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetDirectory"-               c_th2s_setdirectory :: Ptr RawTH2S -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetDirectory" c_th2s_setdirectory ::+               Ptr RawTH2S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetEntries"-               c_th2s_setentries :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetEntries" c_th2s_setentries ::+               Ptr RawTH2S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetError"-               c_th2s_seterror :: Ptr RawTH2S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetError"+               c_th2s_seterror :: Ptr RawTH2S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setLabelColorA"-               c_th2s_setlabelcolora :: Ptr RawTH2S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setLabelColorA" c_th2s_setlabelcolora ::+               Ptr RawTH2S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setLabelSizeA"-               c_th2s_setlabelsizea :: Ptr RawTH2S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setLabelSizeA" c_th2s_setlabelsizea ::+               Ptr RawTH2S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setLabelFontA"-               c_th2s_setlabelfonta :: Ptr RawTH2S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setLabelFontA" c_th2s_setlabelfonta ::+               Ptr RawTH2S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_setLabelOffsetA"-               c_th2s_setlabeloffseta ::-               Ptr RawTH2S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_setLabelOffsetA" c_th2s_setlabeloffseta ::+               Ptr RawTH2S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetMaximum"-               c_th2s_setmaximum :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetMaximum" c_th2s_setmaximum ::+               Ptr RawTH2S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetMinimum"-               c_th2s_setminimum :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetMinimum" c_th2s_setminimum ::+               Ptr RawTH2S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetNormFactor"-               c_th2s_setnormfactor :: Ptr RawTH2S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetNormFactor" c_th2s_setnormfactor ::+               Ptr RawTH2S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetStats"-               c_th2s_setstats :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetStats"+               c_th2s_setstats :: Ptr RawTH2S -> CBool -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetOption"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetOption"                c_th2s_setoption :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetXTitle"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetXTitle"                c_th2s_setxtitle :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetYTitle"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetYTitle"                c_th2s_setytitle :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetZTitle"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetZTitle"                c_th2s_setztitle :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_ShowBackground"-               c_th2s_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_ShowBackground" c_th2s_showbackground ::                Ptr RawTH2S -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH2S.h TH2S_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_ShowPeaks"                c_th2s_showpeaks ::                Ptr RawTH2S -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_Smooth"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Smooth"                c_th2s_smooth :: Ptr RawTH2S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Sumw2" c_th2s_sumw2-               :: Ptr RawTH2S -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Sumw2"+               c_th2s_sumw2 :: Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetName"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetName"                c_th2s_setname :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetNameTitle"-               c_th2s_setnametitle :: Ptr RawTH2S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetNameTitle" c_th2s_setnametitle ::+               Ptr RawTH2S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetTitle"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetTitle"                c_th2s_settitle :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetLineColor"-               c_th2s_getlinecolor :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetLineColor" c_th2s_getlinecolor ::+               Ptr RawTH2S -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetLineStyle"-               c_th2s_getlinestyle :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetLineStyle" c_th2s_getlinestyle ::+               Ptr RawTH2S -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetLineWidth"-               c_th2s_getlinewidth :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetLineWidth" c_th2s_getlinewidth ::+               Ptr RawTH2S -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_ResetAttLine"-               c_th2s_resetattline :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_ResetAttLine" c_th2s_resetattline ::+               Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetLineAttributes"-               c_th2s_setlineattributes :: Ptr RawTH2S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetLineAttributes" c_th2s_setlineattributes+               :: Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetLineColor"-               c_th2s_setlinecolor :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetLineColor" c_th2s_setlinecolor ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetLineStyle"-               c_th2s_setlinestyle :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetLineStyle" c_th2s_setlinestyle ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetLineWidth"-               c_th2s_setlinewidth :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetLineWidth" c_th2s_setlinewidth ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetFillColor"-               c_th2s_setfillcolor :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetFillColor" c_th2s_setfillcolor ::+               Ptr RawTH2S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetFillStyle"-               c_th2s_setfillstyle :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetFillStyle" c_th2s_setfillstyle ::+               Ptr RawTH2S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMarkerColor"-               c_th2s_getmarkercolor :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMarkerColor" c_th2s_getmarkercolor ::+               Ptr RawTH2S -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMarkerStyle"-               c_th2s_getmarkerstyle :: Ptr RawTH2S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMarkerStyle" c_th2s_getmarkerstyle ::+               Ptr RawTH2S -> IO CShort -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetMarkerSize"-               c_th2s_getmarkersize :: Ptr RawTH2S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_GetMarkerSize" c_th2s_getmarkersize ::+               Ptr RawTH2S -> IO CFloat -foreign import ccall safe "HROOTHistTH2S.h TH2S_ResetAttMarker"-               c_th2s_resetattmarker :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_ResetAttMarker" c_th2s_resetattmarker ::+               Ptr RawTH2S -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH2S.h TH2S_SetMarkerAttributes"                c_th2s_setmarkerattributes :: Ptr RawTH2S -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetMarkerColor"-               c_th2s_setmarkercolor :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetMarkerColor" c_th2s_setmarkercolor ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetMarkerStyle"-               c_th2s_setmarkerstyle :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetMarkerStyle" c_th2s_setmarkerstyle ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SetMarkerSize"-               c_th2s_setmarkersize :: Ptr RawTH2S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_SetMarkerSize" c_th2s_setmarkersize ::+               Ptr RawTH2S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Draw" c_th2s_draw-               :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Clear"+               c_th2s_clear :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_FindObject"-               c_th2s_findobject :: Ptr RawTH2S -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Draw"+               c_th2s_draw :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_GetName"+foreign import ccall interruptible+               "HROOTHistTH2S.h TH2S_FindObject" c_th2s_findobject ::+               Ptr RawTH2S -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetName"                c_th2s_getname :: Ptr RawTH2S -> IO CString -foreign import ccall safe "HROOTHistTH2S.h TH2S_IsA" c_th2s_isa ::-               Ptr RawTH2S -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_IsA"+               c_th2s_isa :: Ptr RawTH2S -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH2S.h TH2S_Paint" c_th2s_paint-               :: Ptr RawTH2S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Paint"+               c_th2s_paint :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_printObj"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_printObj"                c_th2s_printobj :: Ptr RawTH2S -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_SaveAs"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SaveAs"                c_th2s_saveas :: Ptr RawTH2S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH2S.h TH2S_Write" c_th2s_write-               :: Ptr RawTH2S -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Write"+               c_th2s_write :: Ptr RawTH2S -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH2S.h TH2S_delete"+foreign import ccall interruptible "HROOTHistTH2S.h TH2S_Write_"+               c_th2s_write_ :: Ptr RawTH2S -> IO CInt++foreign import ccall interruptible "HROOTHistTH2S.h TH2S_delete"                c_th2s_delete :: Ptr RawTH2S -> IO ()++foreign import ccall interruptible "HROOTHistTH2S.h TH2S_GetAt"+               c_th2s_getat :: Ptr RawTH2S -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetArray"+               c_th2s_setarray :: Ptr RawTH2S -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH2S.h TH2S_SetAt"+               c_th2s_setat :: Ptr RawTH2S -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH2S/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH2S.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH2S.RawType import HROOT.Hist.TH2S.FFI import HROOT.Hist.TH2S.Interface import HROOT.Hist.TH2S.Cast+import HROOT.Hist.TH2S.RawType+import HROOT.Hist.TH2S.Cast+import HROOT.Hist.TH2S.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH2S TH2S+instance () => ITH2S (TH2S) where -instance ITH2 TH2S where+instance () => ITH2 (TH2S) where         fill2 = xform2 c_th2s_fill2         fill2w = xform3 c_th2s_fill2w         fillN2 = xform5 c_th2s_filln2@@ -84,13 +93,12 @@         setShowProjectionX = xform1 c_th2s_setshowprojectionx         setShowProjectionY = xform1 c_th2s_setshowprojectiony -instance ITArrayS TH2S+instance () => ITArrayS (TH2S) where -instance ITH1 TH2S where+instance () => ITH1 (TH2S) where         add = xform2 c_th2s_add         addBinContent = xform2 c_th2s_addbincontent         chi2Test = xform3 c_th2s_chi2test-        computeIntegral = xform0 c_th2s_computeintegral         directoryAutoAdd = xform1 c_th2s_directoryautoadd         divide = xform5 c_th2s_divide         drawCopyTH1 = xform1 c_th2s_drawcopyth1@@ -162,9 +170,6 @@         getRMS = xform1 c_th2s_getrms         getRMSError = xform1 c_th2s_getrmserror         getSkewness = xform1 c_th2s_getskewness-        integral1 = xform3 c_th2s_integral1-        interpolate1 = xform1 c_th2s_interpolate1-        interpolate2 = xform2 c_th2s_interpolate2         interpolate3 = xform3 c_th2s_interpolate3         kolmogorovTest = xform2 c_th2s_kolmogorovtest         labelsDeflate = xform1 c_th2s_labelsdeflate@@ -219,12 +224,12 @@         smooth = xform2 c_th2s_smooth         sumw2 = xform0 c_th2s_sumw2 -instance ITNamed TH2S where+instance () => ITNamed (TH2S) where         setName = xform1 c_th2s_setname         setNameTitle = xform2 c_th2s_setnametitle         setTitle = xform1 c_th2s_settitle -instance ITAttLine TH2S where+instance () => ITAttLine (TH2S) where         getLineColor = xform0 c_th2s_getlinecolor         getLineStyle = xform0 c_th2s_getlinestyle         getLineWidth = xform0 c_th2s_getlinewidth@@ -234,11 +239,11 @@         setLineStyle = xform1 c_th2s_setlinestyle         setLineWidth = xform1 c_th2s_setlinewidth -instance ITAttFill TH2S where+instance () => ITAttFill (TH2S) where         setFillColor = xform1 c_th2s_setfillcolor         setFillStyle = xform1 c_th2s_setfillstyle -instance ITAttMarker TH2S where+instance () => ITAttMarker (TH2S) where         getMarkerColor = xform0 c_th2s_getmarkercolor         getMarkerStyle = xform0 c_th2s_getmarkerstyle         getMarkerSize = xform0 c_th2s_getmarkersize@@ -248,7 +253,8 @@         setMarkerStyle = xform1 c_th2s_setmarkerstyle         setMarkerSize = xform1 c_th2s_setmarkersize -instance ITObject TH2S where+instance () => ITObject (TH2S) where+        clear = xform1 c_th2s_clear         draw = xform1 c_th2s_draw         findObject = xform1 c_th2s_findobject         getName = xform0 c_th2s_getname@@ -257,8 +263,12 @@         printObj = xform1 c_th2s_printobj         saveAs = xform2 c_th2s_saveas         write = xform3 c_th2s_write+        write_ = xform0 c_th2s_write_ -instance IDeletable TH2S where+instance () => IDeletable (TH2S) where         delete = xform0 c_th2s_delete -instance ITArray TH2S+instance () => ITArray (TH2S) where+        getAt = xform1 c_th2s_getat+        setArray = xform1 c_th2s_setarray+        setAt = xform2 c_th2s_setat
src/HROOT/Hist/TH2S/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH2S.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH2.Interface import HROOT.Core.TArrayS.Interface -class (ITH2 a, ITArrayS a) => ITH2S a+class (ITH2 a, ITArrayS a) => ITH2S a where  upcastTH2S :: forall a . (FPtr a, ITH2S a) => a -> TH2S upcastTH2S h
src/HROOT/Hist/TH2S/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH2S  newtype TH2S = TH2S (Ptr RawTH2S)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH2S where+instance () => FPtr (TH2S) where         type Raw TH2S = RawTH2S         get_fptr (TH2S ptr) = ptr         cast_fptr_to_obj = TH2S
src/HROOT/Hist/TH3.hs view
@@ -1,6 +1,6 @@ module HROOT.Hist.TH3-       (TH3(..), ITH3(..), upcastTH3, downcastTH3, tH3ProjectionX,-        tH3ProjectionY, tH3ProjectionZ, tH3Project3D)+       (TH3(..), ITH3(..), upcastTH3, downcastTH3, tH3_ProjectionX,+        tH3_ProjectionY, tH3_ProjectionZ, tH3_Project3D)        where import HROOT.Hist.TH3.RawType import HROOT.Hist.TH3.Interface
src/HROOT/Hist/TH3/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3.RawType import HROOT.Hist.TH3.Interface -instance (ITH3 a, FPtr a) => Castable a (Ptr RawTH3) where+instance (ITH3 a, FPtr a) => Castable (a) (Ptr RawTH3) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3 (Ptr RawTH3) where+instance () => Castable (TH3) (Ptr RawTH3) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.RawType import HROOT.Hist.TH1.RawType import HROOT.Core.TDirectory.RawType import HROOT.Hist.TF1.RawType@@ -12,572 +15,637 @@ import HROOT.Core.TClass.RawType import HROOT.Hist.TH1D.RawType -foreign import ccall safe "HROOTHistTH3.h TH3_Add" c_th3_add ::-               Ptr RawTH3 -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Add"+               c_th3_add :: Ptr RawTH3 -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_AddBinContent"-               c_th3_addbincontent :: Ptr RawTH3 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_AddBinContent" c_th3_addbincontent ::+               Ptr RawTH3 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3.h TH3_Chi2Test"                c_th3_chi2test ::-               Ptr RawTH3 -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3.h TH3_ComputeIntegral"-               c_th3_computeintegral :: Ptr RawTH3 -> IO CDouble+               Ptr RawTH3 -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_DirectoryAutoAdd"-               c_th3_directoryautoadd :: Ptr RawTH3 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_DirectoryAutoAdd" c_th3_directoryautoadd ::+               Ptr RawTH3 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Divide" c_th3_divide-               ::+foreign import ccall interruptible "HROOTHistTH3.h TH3_Divide"+               c_th3_divide ::                Ptr RawTH3 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_drawCopyTH1"+foreign import ccall interruptible "HROOTHistTH3.h TH3_drawCopyTH1"                c_th3_drawcopyth1 :: Ptr RawTH3 -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3.h TH3_DrawNormalized"-               c_th3_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_DrawNormalized" c_th3_drawnormalized ::                Ptr RawTH3 -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3.h TH3_drawPanelTH1"-               c_th3_drawpanelth1 :: Ptr RawTH3 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_drawPanelTH1" c_th3_drawpanelth1 ::+               Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_BufferEmpty"+foreign import ccall interruptible "HROOTHistTH3.h TH3_BufferEmpty"                c_th3_bufferempty :: Ptr RawTH3 -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_evalF" c_th3_evalf ::-               Ptr RawTH3 -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_evalF"+               c_th3_evalf :: Ptr RawTH3 -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_FFT" c_th3_fft ::-               Ptr RawTH3 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3.h TH3_FFT"+               c_th3_fft :: Ptr RawTH3 -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3.h TH3_fill1" c_th3_fill1 ::-               Ptr RawTH3 -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3.h TH3_fill1"+               c_th3_fill1 :: Ptr RawTH3 -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_fill1w" c_th3_fill1w-               :: Ptr RawTH3 -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3.h TH3_fill1w"+               c_th3_fill1w :: Ptr RawTH3 -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_fillN1" c_th3_filln1-               ::-               Ptr RawTH3 ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_fillN1"+               c_th3_filln1 ::+               Ptr RawTH3 -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_FillRandom"+foreign import ccall interruptible "HROOTHistTH3.h TH3_FillRandom"                c_th3_fillrandom :: Ptr RawTH3 -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_FindBin"+foreign import ccall interruptible "HROOTHistTH3.h TH3_FindBin"                c_th3_findbin ::                Ptr RawTH3 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_FindFixBin"+foreign import ccall interruptible "HROOTHistTH3.h TH3_FindFixBin"                c_th3_findfixbin ::                Ptr RawTH3 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_FindFirstBinAbove"-               c_th3_findfirstbinabove :: Ptr RawTH3 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_FindFirstBinAbove" c_th3_findfirstbinabove ::+               Ptr RawTH3 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_FindLastBinAbove"-               c_th3_findlastbinabove :: Ptr RawTH3 -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_FindLastBinAbove" c_th3_findlastbinabove ::+               Ptr RawTH3 -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_Fit" c_th3_fit ::+foreign import ccall interruptible "HROOTHistTH3.h TH3_Fit"+               c_th3_fit ::                Ptr RawTH3 ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_FitPanelTH1"+foreign import ccall interruptible "HROOTHistTH3.h TH3_FitPanelTH1"                c_th3_fitpanelth1 :: Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_getNdivisionA"-               c_th3_getndivisiona :: Ptr RawTH3 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getNdivisionA" c_th3_getndivisiona ::+               Ptr RawTH3 -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_getAxisColorA"-               c_th3_getaxiscolora :: Ptr RawTH3 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getAxisColorA" c_th3_getaxiscolora ::+               Ptr RawTH3 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_getLabelColorA"-               c_th3_getlabelcolora :: Ptr RawTH3 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getLabelColorA" c_th3_getlabelcolora ::+               Ptr RawTH3 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_getLabelFontA"-               c_th3_getlabelfonta :: Ptr RawTH3 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getLabelFontA" c_th3_getlabelfonta ::+               Ptr RawTH3 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_getLabelOffsetA"-               c_th3_getlabeloffseta :: Ptr RawTH3 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getLabelOffsetA" c_th3_getlabeloffseta ::+               Ptr RawTH3 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_getLabelSizeA"-               c_th3_getlabelsizea :: Ptr RawTH3 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getLabelSizeA" c_th3_getlabelsizea ::+               Ptr RawTH3 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_getTitleFontA"-               c_th3_gettitlefonta :: Ptr RawTH3 -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getTitleFontA" c_th3_gettitlefonta ::+               Ptr RawTH3 -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_getTitleOffsetA"-               c_th3_gettitleoffseta :: Ptr RawTH3 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getTitleOffsetA" c_th3_gettitleoffseta ::+               Ptr RawTH3 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_getTitleSizeA"-               c_th3_gettitlesizea :: Ptr RawTH3 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getTitleSizeA" c_th3_gettitlesizea ::+               Ptr RawTH3 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_getTickLengthA"-               c_th3_getticklengtha :: Ptr RawTH3 -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getTickLengthA" c_th3_getticklengtha ::+               Ptr RawTH3 -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_GetBarOffset"-               c_th3_getbaroffset :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBarOffset" c_th3_getbaroffset ::+               Ptr RawTH3 -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_GetBarWidth"-               c_th3_getbarwidth :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetBarWidth"+               c_th3_getbarwidth :: Ptr RawTH3 -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_GetContour"-               c_th3_getcontour :: Ptr RawTH3 -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetContour"+               c_th3_getcontour :: Ptr RawTH3 -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetContourLevel"-               c_th3_getcontourlevel :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetContourLevel" c_th3_getcontourlevel ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetContourLevelPad"-               c_th3_getcontourlevelpad :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetContourLevelPad" c_th3_getcontourlevelpad ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBin" c_th3_getbin-               :: Ptr RawTH3 -> CInt -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetBin"+               c_th3_getbin :: Ptr RawTH3 -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinCenter"-               c_th3_getbincenter :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinCenter" c_th3_getbincenter ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinContent1"-               c_th3_getbincontent1 :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinContent1" c_th3_getbincontent1 ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinContent2"-               c_th3_getbincontent2 :: Ptr RawTH3 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinContent2" c_th3_getbincontent2 ::+               Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinContent3"-               c_th3_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinContent3" c_th3_getbincontent3 ::                Ptr RawTH3 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinError1"-               c_th3_getbinerror1 :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinError1" c_th3_getbinerror1 ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinError2"-               c_th3_getbinerror2 :: Ptr RawTH3 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinError2" c_th3_getbinerror2 ::+               Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinError3"-               c_th3_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinError3" c_th3_getbinerror3 ::                Ptr RawTH3 -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinLowEdge"-               c_th3_getbinlowedge :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetBinLowEdge" c_th3_getbinlowedge ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetBinWidth"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetBinWidth"                c_th3_getbinwidth :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetCellContent"-               c_th3_getcellcontent :: Ptr RawTH3 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetCellContent" c_th3_getcellcontent ::+               Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetCellError"-               c_th3_getcellerror :: Ptr RawTH3 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetCellError" c_th3_getcellerror ::+               Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetEntries"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetEntries"                c_th3_getentries :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetEffectiveEntries"-               c_th3_geteffectiveentries :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetEffectiveEntries" c_th3_geteffectiveentries+               :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetFunction"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetFunction"                c_th3_getfunction :: Ptr RawTH3 -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3.h TH3_GetDimension"-               c_th3_getdimension :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetDimension" c_th3_getdimension ::+               Ptr RawTH3 -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetKurtosis"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetKurtosis"                c_th3_getkurtosis :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetLowEdge"-               c_th3_getlowedge :: Ptr RawTH3 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetLowEdge"+               c_th3_getlowedge :: Ptr RawTH3 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_getMaximumTH1"-               c_th3_getmaximumth1 :: Ptr RawTH3 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getMaximumTH1" c_th3_getmaximumth1 ::+               Ptr RawTH3 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetMaximumBin"-               c_th3_getmaximumbin :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMaximumBin" c_th3_getmaximumbin ::+               Ptr RawTH3 -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetMaximumStored"-               c_th3_getmaximumstored :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMaximumStored" c_th3_getmaximumstored ::+               Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_getMinimumTH1"-               c_th3_getminimumth1 :: Ptr RawTH3 -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getMinimumTH1" c_th3_getminimumth1 ::+               Ptr RawTH3 -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetMinimumBin"-               c_th3_getminimumbin :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMinimumBin" c_th3_getminimumbin ::+               Ptr RawTH3 -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetMinimumStored"-               c_th3_getminimumstored :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMinimumStored" c_th3_getminimumstored ::+               Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetMean"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetMean"                c_th3_getmean :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetMeanError"-               c_th3_getmeanerror :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMeanError" c_th3_getmeanerror ::+               Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetNbinsX"                c_th3_getnbinsx :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetNbinsY"                c_th3_getnbinsy :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetNbinsZ"                c_th3_getnbinsz :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_getQuantilesTH1"-               c_th3_getquantilesth1 ::-               Ptr RawTH3 -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getQuantilesTH1" c_th3_getquantilesth1 ::+               Ptr RawTH3 -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetRandom"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetRandom"                c_th3_getrandom :: Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetStats"-               c_th3_getstats :: Ptr RawTH3 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetStats"+               c_th3_getstats :: Ptr RawTH3 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_GetSumOfWeights"-               c_th3_getsumofweights :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetSumOfWeights" c_th3_getsumofweights ::+               Ptr RawTH3 -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetSumw2"                c_th3_getsumw2 :: Ptr RawTH3 -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3.h TH3_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetSumw2N"                c_th3_getsumw2n :: Ptr RawTH3 -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_GetRMS" c_th3_getrms-               :: Ptr RawTH3 -> CInt -> IO CDouble+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetRMS"+               c_th3_getrms :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetRMSError"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetRMSError"                c_th3_getrmserror :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_GetSkewness"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetSkewness"                c_th3_getskewness :: Ptr RawTH3 -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_integral1"-               c_th3_integral1 ::-               Ptr RawTH3 -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3.h TH3_interpolate1"-               c_th3_interpolate1 :: Ptr RawTH3 -> CDouble -> IO CDouble--foreign import ccall safe "HROOTHistTH3.h TH3_interpolate2"-               c_th3_interpolate2 ::-               Ptr RawTH3 -> CDouble -> CDouble -> IO CDouble--foreign import ccall safe "HROOTHistTH3.h TH3_interpolate3"-               c_th3_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_interpolate3" c_th3_interpolate3 ::                Ptr RawTH3 -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_KolmogorovTest"-               c_th3_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_KolmogorovTest" c_th3_kolmogorovtest ::                Ptr RawTH3 -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_LabelsDeflate"-               c_th3_labelsdeflate :: Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_LabelsDeflate" c_th3_labelsdeflate ::+               Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_LabelsInflate"-               c_th3_labelsinflate :: Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_LabelsInflate" c_th3_labelsinflate ::+               Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_LabelsOption"-               c_th3_labelsoption :: Ptr RawTH3 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_LabelsOption" c_th3_labelsoption ::+               Ptr RawTH3 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_multiflyF"+foreign import ccall interruptible "HROOTHistTH3.h TH3_multiflyF"                c_th3_multiflyf :: Ptr RawTH3 -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Multiply"+foreign import ccall interruptible "HROOTHistTH3.h TH3_Multiply"                c_th3_multiply ::                Ptr RawTH3 ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_PutStats"-               c_th3_putstats :: Ptr RawTH3 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_PutStats"+               c_th3_putstats :: Ptr RawTH3 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Rebin" c_th3_rebin ::-               Ptr RawTH3 -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3.h TH3_Rebin"+               c_th3_rebin ::+               Ptr RawTH3 -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3.h TH3_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3.h TH3_RebinAxis"                c_th3_rebinaxis :: Ptr RawTH3 -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Rebuild"+foreign import ccall interruptible "HROOTHistTH3.h TH3_Rebuild"                c_th3_rebuild :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_RecursiveRemove"-               c_th3_recursiveremove :: Ptr RawTH3 -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_RecursiveRemove" c_th3_recursiveremove ::+               Ptr RawTH3 -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Reset" c_th3_reset ::-               Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Reset"+               c_th3_reset :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_ResetStats"+foreign import ccall interruptible "HROOTHistTH3.h TH3_ResetStats"                c_th3_resetstats :: Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Scale" c_th3_scale ::-               Ptr RawTH3 -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Scale"+               c_th3_scale :: Ptr RawTH3 -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setAxisColorA"-               c_th3_setaxiscolora :: Ptr RawTH3 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setAxisColorA" c_th3_setaxiscolora ::+               Ptr RawTH3 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetAxisRange"-               c_th3_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetAxisRange" c_th3_setaxisrange ::                Ptr RawTH3 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetBarOffset"-               c_th3_setbaroffset :: Ptr RawTH3 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetBarOffset" c_th3_setbaroffset ::+               Ptr RawTH3 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetBarWidth"-               c_th3_setbarwidth :: Ptr RawTH3 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetBarWidth"+               c_th3_setbarwidth :: Ptr RawTH3 -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinContent1"-               c_th3_setbincontent1 :: Ptr RawTH3 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinContent1" c_th3_setbincontent1 ::+               Ptr RawTH3 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinContent2"-               c_th3_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinContent2" c_th3_setbincontent2 ::                Ptr RawTH3 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinContent3"-               c_th3_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinContent3" c_th3_setbincontent3 ::                Ptr RawTH3 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinError1"-               c_th3_setbinerror1 :: Ptr RawTH3 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinError1" c_th3_setbinerror1 ::+               Ptr RawTH3 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinError2"-               c_th3_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinError2" c_th3_setbinerror2 ::                Ptr RawTH3 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBinError3"-               c_th3_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setBinError3" c_th3_setbinerror3 ::                Ptr RawTH3 -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBins1"-               c_th3_setbins1 :: Ptr RawTH3 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_setBins1"+               c_th3_setbins1 :: Ptr RawTH3 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBins2"+foreign import ccall interruptible "HROOTHistTH3.h TH3_setBins2"                c_th3_setbins2 ::-               Ptr RawTH3 ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3 -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setBins3"+foreign import ccall interruptible "HROOTHistTH3.h TH3_setBins3"                c_th3_setbins3 ::                Ptr RawTH3 ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetBinsLength"-               c_th3_setbinslength :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetBinsLength" c_th3_setbinslength ::+               Ptr RawTH3 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetBuffer"                c_th3_setbuffer :: Ptr RawTH3 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetCellContent"-               c_th3_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetCellContent" c_th3_setcellcontent ::                Ptr RawTH3 -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetContent"-               c_th3_setcontent :: Ptr RawTH3 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetContent"+               c_th3_setcontent :: Ptr RawTH3 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetContour"-               c_th3_setcontour :: Ptr RawTH3 -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetContour"+               c_th3_setcontour :: Ptr RawTH3 -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetContourLevel"-               c_th3_setcontourlevel :: Ptr RawTH3 -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetContourLevel" c_th3_setcontourlevel ::+               Ptr RawTH3 -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetDirectory"-               c_th3_setdirectory :: Ptr RawTH3 -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetDirectory" c_th3_setdirectory ::+               Ptr RawTH3 -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetEntries"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetEntries"                c_th3_setentries :: Ptr RawTH3 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetError"-               c_th3_seterror :: Ptr RawTH3 -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetError"+               c_th3_seterror :: Ptr RawTH3 -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setLabelColorA"-               c_th3_setlabelcolora :: Ptr RawTH3 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setLabelColorA" c_th3_setlabelcolora ::+               Ptr RawTH3 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setLabelSizeA"-               c_th3_setlabelsizea :: Ptr RawTH3 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setLabelSizeA" c_th3_setlabelsizea ::+               Ptr RawTH3 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setLabelFontA"-               c_th3_setlabelfonta :: Ptr RawTH3 -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setLabelFontA" c_th3_setlabelfonta ::+               Ptr RawTH3 -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_setLabelOffsetA"-               c_th3_setlabeloffseta :: Ptr RawTH3 -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_setLabelOffsetA" c_th3_setlabeloffseta ::+               Ptr RawTH3 -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMaximum"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetMaximum"                c_th3_setmaximum :: Ptr RawTH3 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMinimum"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetMinimum"                c_th3_setminimum :: Ptr RawTH3 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetNormFactor"-               c_th3_setnormfactor :: Ptr RawTH3 -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetNormFactor" c_th3_setnormfactor ::+               Ptr RawTH3 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetStats"-               c_th3_setstats :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetStats"+               c_th3_setstats :: Ptr RawTH3 -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetOption"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetOption"                c_th3_setoption :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetXTitle"                c_th3_setxtitle :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetYTitle"                c_th3_setytitle :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetZTitle"                c_th3_setztitle :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_ShowBackground"-               c_th3_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_ShowBackground" c_th3_showbackground ::                Ptr RawTH3 -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3.h TH3_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3.h TH3_ShowPeaks"                c_th3_showpeaks ::                Ptr RawTH3 -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_Smooth" c_th3_smooth-               :: Ptr RawTH3 -> CInt -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Smooth"+               c_th3_smooth :: Ptr RawTH3 -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Sumw2" c_th3_sumw2 ::-               Ptr RawTH3 -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Sumw2"+               c_th3_sumw2 :: Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetName"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetName"                c_th3_setname :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetNameTitle"-               c_th3_setnametitle :: Ptr RawTH3 -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetNameTitle" c_th3_setnametitle ::+               Ptr RawTH3 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetTitle"+foreign import ccall interruptible "HROOTHistTH3.h TH3_SetTitle"                c_th3_settitle :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_GetLineColor"-               c_th3_getlinecolor :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetLineColor" c_th3_getlinecolor ::+               Ptr RawTH3 -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_GetLineStyle"-               c_th3_getlinestyle :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetLineStyle" c_th3_getlinestyle ::+               Ptr RawTH3 -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_GetLineWidth"-               c_th3_getlinewidth :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetLineWidth" c_th3_getlinewidth ::+               Ptr RawTH3 -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_ResetAttLine"-               c_th3_resetattline :: Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_ResetAttLine" c_th3_resetattline ::+               Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetLineAttributes"-               c_th3_setlineattributes :: Ptr RawTH3 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetLineAttributes" c_th3_setlineattributes ::+               Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetLineColor"-               c_th3_setlinecolor :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetLineColor" c_th3_setlinecolor ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetLineStyle"-               c_th3_setlinestyle :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetLineStyle" c_th3_setlinestyle ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetLineWidth"-               c_th3_setlinewidth :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetLineWidth" c_th3_setlinewidth ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetFillColor"-               c_th3_setfillcolor :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetFillColor" c_th3_setfillcolor ::+               Ptr RawTH3 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetFillStyle"-               c_th3_setfillstyle :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetFillStyle" c_th3_setfillstyle ::+               Ptr RawTH3 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_GetMarkerColor"-               c_th3_getmarkercolor :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMarkerColor" c_th3_getmarkercolor ::+               Ptr RawTH3 -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_GetMarkerStyle"-               c_th3_getmarkerstyle :: Ptr RawTH3 -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMarkerStyle" c_th3_getmarkerstyle ::+               Ptr RawTH3 -> IO CShort -foreign import ccall safe "HROOTHistTH3.h TH3_GetMarkerSize"-               c_th3_getmarkersize :: Ptr RawTH3 -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_GetMarkerSize" c_th3_getmarkersize ::+               Ptr RawTH3 -> IO CFloat -foreign import ccall safe "HROOTHistTH3.h TH3_ResetAttMarker"-               c_th3_resetattmarker :: Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_ResetAttMarker" c_th3_resetattmarker ::+               Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMarkerAttributes"-               c_th3_setmarkerattributes :: Ptr RawTH3 -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetMarkerAttributes" c_th3_setmarkerattributes+               :: Ptr RawTH3 -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMarkerColor"-               c_th3_setmarkercolor :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetMarkerColor" c_th3_setmarkercolor ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMarkerStyle"-               c_th3_setmarkerstyle :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetMarkerStyle" c_th3_setmarkerstyle ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SetMarkerSize"-               c_th3_setmarkersize :: Ptr RawTH3 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_SetMarkerSize" c_th3_setmarkersize ::+               Ptr RawTH3 -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Draw" c_th3_draw ::-               Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Clear"+               c_th3_clear :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_FindObject"+foreign import ccall interruptible "HROOTHistTH3.h TH3_Draw"+               c_th3_draw :: Ptr RawTH3 -> CString -> IO ()++foreign import ccall interruptible "HROOTHistTH3.h TH3_FindObject"                c_th3_findobject :: Ptr RawTH3 -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTH3.h TH3_GetName"+foreign import ccall interruptible "HROOTHistTH3.h TH3_GetName"                c_th3_getname :: Ptr RawTH3 -> IO CString -foreign import ccall safe "HROOTHistTH3.h TH3_IsA" c_th3_isa ::-               Ptr RawTH3 -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3.h TH3_IsA"+               c_th3_isa :: Ptr RawTH3 -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3.h TH3_Paint" c_th3_paint ::-               Ptr RawTH3 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Paint"+               c_th3_paint :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_printObj"+foreign import ccall interruptible "HROOTHistTH3.h TH3_printObj"                c_th3_printobj :: Ptr RawTH3 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_SaveAs" c_th3_saveas-               :: Ptr RawTH3 -> CString -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_SaveAs"+               c_th3_saveas :: Ptr RawTH3 -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3.h TH3_Write" c_th3_write ::-               Ptr RawTH3 -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3.h TH3_Write"+               c_th3_write :: Ptr RawTH3 -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_delete" c_th3_delete-               :: Ptr RawTH3 -> IO ()+foreign import ccall interruptible "HROOTHistTH3.h TH3_Write_"+               c_th3_write_ :: Ptr RawTH3 -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_fill3" c_th3_fill3 ::+foreign import ccall interruptible "HROOTHistTH3.h TH3_delete"+               c_th3_delete :: Ptr RawTH3 -> IO ()++foreign import ccall interruptible "HROOTHistTH3.h TH3_fill3"+               c_th3_fill3 ::                Ptr RawTH3 -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_fill3w" c_th3_fill3w-               ::+foreign import ccall interruptible "HROOTHistTH3.h TH3_fill3w"+               c_th3_fill3w ::                Ptr RawTH3 -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3.h TH3_FitSlicesZ"+foreign import ccall interruptible "HROOTHistTH3.h TH3_FitSlicesZ"                c_th3_fitslicesz ::                Ptr RawTH3 ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3.h TH3_getCorrelationFactor3"                c_th3_getcorrelationfactor3 ::                Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_getCovariance3"-               c_th3_getcovariance3 :: Ptr RawTH3 -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_getCovariance3" c_th3_getcovariance3 ::+               Ptr RawTH3 -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3.h TH3_tH3ProjectionX"-               c_th3_th3projectionx ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_tH3_ProjectionX" c_th3_th3_projectionx ::                Ptr RawTH3 ->                  CString ->                    CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH3.h TH3_tH3ProjectionY"-               c_th3_th3projectiony ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_tH3_ProjectionY" c_th3_th3_projectiony ::                Ptr RawTH3 ->                  CString ->                    CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH3.h TH3_tH3ProjectionZ"-               c_th3_th3projectionz ::+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_tH3_ProjectionZ" c_th3_th3_projectionz ::                Ptr RawTH3 ->                  CString ->                    CInt -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH1D) -foreign import ccall safe "HROOTHistTH3.h TH3_tH3Project3D"-               c_th3_th3project3d :: Ptr RawTH3 -> CString -> IO (Ptr RawTH1)+foreign import ccall interruptible+               "HROOTHistTH3.h TH3_tH3_Project3D" c_th3_th3_project3d ::+               Ptr RawTH3 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3.h TH3_rebinX3"+foreign import ccall interruptible "HROOTHistTH3.h TH3_rebinX3"                c_th3_rebinx3 :: Ptr RawTH3 -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3.h TH3_rebinY3"+foreign import ccall interruptible "HROOTHistTH3.h TH3_rebinY3"                c_th3_rebiny3 :: Ptr RawTH3 -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3.h TH3_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3.h TH3_rebinZ3"                c_th3_rebinz3 :: Ptr RawTH3 -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3.h TH3_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3.h TH3_Rebin3D"                c_th3_rebin3d ::                Ptr RawTH3 -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3)
src/HROOT/Hist/TH3/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3.RawType import HROOT.Hist.TH3.FFI import HROOT.Hist.TH3.Interface import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.RawType+import HROOT.Hist.TH3.Cast+import HROOT.Hist.TH3.Interface import HROOT.Core.TDirectory.RawType import HROOT.Core.TDirectory.Cast import HROOT.Core.TDirectory.Interface@@ -51,11 +60,11 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITH3 TH3 where+instance () => ITH3 (TH3) where         fill3 = xform3 c_th3_fill3         fill3w = xform4 c_th3_fill3w         fitSlicesZ = xform7 c_th3_fitslicesz@@ -66,11 +75,10 @@         rebinZ3 = xform2 c_th3_rebinz3         rebin3D = xform4 c_th3_rebin3d -instance ITH1 TH3 where+instance () => ITH1 (TH3) where         add = xform2 c_th3_add         addBinContent = xform2 c_th3_addbincontent         chi2Test = xform3 c_th3_chi2test-        computeIntegral = xform0 c_th3_computeintegral         directoryAutoAdd = xform1 c_th3_directoryautoadd         divide = xform5 c_th3_divide         drawCopyTH1 = xform1 c_th3_drawcopyth1@@ -142,9 +150,6 @@         getRMS = xform1 c_th3_getrms         getRMSError = xform1 c_th3_getrmserror         getSkewness = xform1 c_th3_getskewness-        integral1 = xform3 c_th3_integral1-        interpolate1 = xform1 c_th3_interpolate1-        interpolate2 = xform2 c_th3_interpolate2         interpolate3 = xform3 c_th3_interpolate3         kolmogorovTest = xform2 c_th3_kolmogorovtest         labelsDeflate = xform1 c_th3_labelsdeflate@@ -199,14 +204,14 @@         smooth = xform2 c_th3_smooth         sumw2 = xform0 c_th3_sumw2 -instance ITAtt3D TH3+instance () => ITAtt3D (TH3) where -instance ITNamed TH3 where+instance () => ITNamed (TH3) where         setName = xform1 c_th3_setname         setNameTitle = xform2 c_th3_setnametitle         setTitle = xform1 c_th3_settitle -instance ITAttLine TH3 where+instance () => ITAttLine (TH3) where         getLineColor = xform0 c_th3_getlinecolor         getLineStyle = xform0 c_th3_getlinestyle         getLineWidth = xform0 c_th3_getlinewidth@@ -216,11 +221,11 @@         setLineStyle = xform1 c_th3_setlinestyle         setLineWidth = xform1 c_th3_setlinewidth -instance ITAttFill TH3 where+instance () => ITAttFill (TH3) where         setFillColor = xform1 c_th3_setfillcolor         setFillStyle = xform1 c_th3_setfillstyle -instance ITAttMarker TH3 where+instance () => ITAttMarker (TH3) where         getMarkerColor = xform0 c_th3_getmarkercolor         getMarkerStyle = xform0 c_th3_getmarkerstyle         getMarkerSize = xform0 c_th3_getmarkersize@@ -230,7 +235,8 @@         setMarkerStyle = xform1 c_th3_setmarkerstyle         setMarkerSize = xform1 c_th3_setmarkersize -instance ITObject TH3 where+instance () => ITObject (TH3) where+        clear = xform1 c_th3_clear         draw = xform1 c_th3_draw         findObject = xform1 c_th3_findobject         getName = xform0 c_th3_getname@@ -239,24 +245,25 @@         printObj = xform1 c_th3_printobj         saveAs = xform2 c_th3_saveas         write = xform3 c_th3_write+        write_ = xform0 c_th3_write_ -instance IDeletable TH3 where+instance () => IDeletable (TH3) where         delete = xform0 c_th3_delete -tH3ProjectionX ::-                 (Castable c1 CString, Castable c0 CString) =>-                 TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D-tH3ProjectionX = xform6 c_th3_th3projectionx+tH3_ProjectionX ::+                  (Castable c1 CString, Castable c0 CString) =>+                  TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D+tH3_ProjectionX = xform6 c_th3_th3_projectionx -tH3ProjectionY ::-                 (Castable c1 CString, Castable c0 CString) =>-                 TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D-tH3ProjectionY = xform6 c_th3_th3projectiony+tH3_ProjectionY ::+                  (Castable c1 CString, Castable c0 CString) =>+                  TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D+tH3_ProjectionY = xform6 c_th3_th3_projectiony -tH3ProjectionZ ::-                 (Castable c1 CString, Castable c0 CString) =>-                 TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D-tH3ProjectionZ = xform6 c_th3_th3projectionz+tH3_ProjectionZ ::+                  (Castable c1 CString, Castable c0 CString) =>+                  TH3 -> c0 -> CInt -> CInt -> CInt -> CInt -> c1 -> IO TH1D+tH3_ProjectionZ = xform6 c_th3_th3_projectionz -tH3Project3D :: Castable c0 CString => TH3 -> c0 -> IO TH1-tH3Project3D = xform1 c_th3_th3project3d+tH3_Project3D :: (Castable c0 CString) => TH3 -> c0 -> IO TH1+tH3_Project3D = xform1 c_th3_th3_project3d
src/HROOT/Hist/TH3/Interface.hs view
@@ -4,37 +4,37 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.TH3.RawType-import HROOT.Hist.TH1D.RawType-import HROOT.Hist.TH1.RawType import HROOT.Hist.TH1.Interface import HROOT.Core.TAtt3D.Interface-import {-# SOURCE #-} HROOT.Hist.TF1.Interface+import HROOT.Hist.TF1.Interface  class (ITH1 a, ITAtt3D a) => ITH3 a where-        fill3 :: a -> CDouble -> CDouble -> CDouble -> IO CInt+        fill3 :: () => a -> CDouble -> CDouble -> CDouble -> IO CInt         -        fill3w :: a -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt+        fill3w ::+                 () => a -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt                  fitSlicesZ ::                      (Castable c1 CString, ITF1 c0, FPtr c0) =>                      a -> c0 -> CInt -> CInt -> CInt -> CInt -> CInt -> c1 -> IO ()         -        getCorrelationFactor3 :: a -> CInt -> CInt -> IO CDouble+        getCorrelationFactor3 :: () => a -> CInt -> CInt -> IO CDouble         -        getCovariance3 :: a -> CInt -> CInt -> IO CDouble+        getCovariance3 :: () => a -> CInt -> CInt -> IO CDouble         -        rebinX3 :: Castable c0 CString => a -> CInt -> c0 -> IO TH3+        rebinX3 :: (Castable c0 CString) => a -> CInt -> c0 -> IO TH3         -        rebinY3 :: Castable c0 CString => a -> CInt -> c0 -> IO TH3+        rebinY3 :: (Castable c0 CString) => a -> CInt -> c0 -> IO TH3         -        rebinZ3 :: Castable c0 CString => a -> CInt -> c0 -> IO TH3+        rebinZ3 :: (Castable c0 CString) => a -> CInt -> c0 -> IO TH3                  rebin3D ::-                  Castable c0 CString => a -> CInt -> CInt -> CInt -> c0 -> IO TH3+                  (Castable c0 CString) => a -> CInt -> CInt -> CInt -> c0 -> IO TH3  upcastTH3 :: forall a . (FPtr a, ITH3 a) => a -> TH3 upcastTH3 h
src/HROOT/Hist/TH3/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3  newtype TH3 = TH3 (Ptr RawTH3)-            deriving (Eq, Ord, Show)+                deriving (Eq, Ord, Show) -instance FPtr TH3 where+instance () => FPtr (TH3) where         type Raw TH3 = RawTH3         get_fptr (TH3 ptr) = ptr         cast_fptr_to_obj = TH3
src/HROOT/Hist/TH3C/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3C.RawType import HROOT.Hist.TH3C.Interface -instance (ITH3C a, FPtr a) => Castable a (Ptr RawTH3C) where+instance (ITH3C a, FPtr a) => Castable (a) (Ptr RawTH3C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3C (Ptr RawTH3C) where+instance () => Castable (TH3C) (Ptr RawTH3C) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3C/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3C.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH3C.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TH3.RawType@@ -13,558 +16,646 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH3C.h TH3C_fill3" c_th3c_fill3-               :: Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_fill3"+               c_th3c_fill3 ::+               Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_fill3w"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_fill3w"                c_th3c_fill3w ::                Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_FitSlicesZ"-               c_th3c_fitslicesz ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FitSlicesZ" c_th3c_fitslicesz ::                Ptr RawTH3C ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3C.h TH3C_getCorrelationFactor3"                c_th3c_getcorrelationfactor3 ::                Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_getCovariance3"-               c_th3c_getcovariance3 :: Ptr RawTH3C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getCovariance3" c_th3c_getcovariance3 ::+               Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_rebinX3"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_rebinX3"                c_th3c_rebinx3 :: Ptr RawTH3C -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3C.h TH3C_rebinY3"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_rebinY3"                c_th3c_rebiny3 :: Ptr RawTH3C -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3C.h TH3C_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_rebinZ3"                c_th3c_rebinz3 :: Ptr RawTH3C -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3C.h TH3C_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Rebin3D"                c_th3c_rebin3d ::                Ptr RawTH3C -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3C.h TH3C_Add" c_th3c_add ::-               Ptr RawTH3C -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Add"+               c_th3c_add :: Ptr RawTH3C -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_AddBinContent"-               c_th3c_addbincontent :: Ptr RawTH3C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_AddBinContent" c_th3c_addbincontent ::+               Ptr RawTH3C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Chi2Test"                c_th3c_chi2test ::-               Ptr RawTH3C -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3C.h TH3C_ComputeIntegral"-               c_th3c_computeintegral :: Ptr RawTH3C -> IO CDouble+               Ptr RawTH3C -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_DirectoryAutoAdd"-               c_th3c_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_DirectoryAutoAdd" c_th3c_directoryautoadd ::                Ptr RawTH3C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Divide"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Divide"                c_th3c_divide ::                Ptr RawTH3C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_drawCopyTH1"-               c_th3c_drawcopyth1 :: Ptr RawTH3C -> CString -> IO (Ptr RawTH3C)+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_drawCopyTH1" c_th3c_drawcopyth1 ::+               Ptr RawTH3C -> CString -> IO (Ptr RawTH3C) -foreign import ccall safe "HROOTHistTH3C.h TH3C_DrawNormalized"-               c_th3c_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_DrawNormalized" c_th3c_drawnormalized ::                Ptr RawTH3C -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3C.h TH3C_drawPanelTH1"-               c_th3c_drawpanelth1 :: Ptr RawTH3C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_drawPanelTH1" c_th3c_drawpanelth1 ::+               Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_BufferEmpty"-               c_th3c_bufferempty :: Ptr RawTH3C -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_BufferEmpty" c_th3c_bufferempty ::+               Ptr RawTH3C -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_evalF" c_th3c_evalf-               :: Ptr RawTH3C -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_evalF"+               c_th3c_evalf :: Ptr RawTH3C -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_FFT" c_th3c_fft ::+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_FFT"+               c_th3c_fft ::                Ptr RawTH3C -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3C.h TH3C_fill1" c_th3c_fill1-               :: Ptr RawTH3C -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_fill1"+               c_th3c_fill1 :: Ptr RawTH3C -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_fill1w"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_fill1w"                c_th3c_fill1w :: Ptr RawTH3C -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_fillN1"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_fillN1"                c_th3c_filln1 ::-               Ptr RawTH3C ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH3C -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_FillRandom"-               c_th3c_fillrandom :: Ptr RawTH3C -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FillRandom" c_th3c_fillrandom ::+               Ptr RawTH3C -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_FindBin"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_FindBin"                c_th3c_findbin ::                Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_FindFixBin"-               c_th3c_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FindFixBin" c_th3c_findfixbin ::                Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_FindFirstBinAbove"-               c_th3c_findfirstbinabove ::-               Ptr RawTH3C -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FindFirstBinAbove" c_th3c_findfirstbinabove+               :: Ptr RawTH3C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_FindLastBinAbove"-               c_th3c_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FindLastBinAbove" c_th3c_findlastbinabove ::                Ptr RawTH3C -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_Fit" c_th3c_fit ::+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Fit"+               c_th3c_fit ::                Ptr RawTH3C ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_FitPanelTH1"-               c_th3c_fitpanelth1 :: Ptr RawTH3C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FitPanelTH1" c_th3c_fitpanelth1 ::+               Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_getNdivisionA"-               c_th3c_getndivisiona :: Ptr RawTH3C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getNdivisionA" c_th3c_getndivisiona ::+               Ptr RawTH3C -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_getAxisColorA"-               c_th3c_getaxiscolora :: Ptr RawTH3C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getAxisColorA" c_th3c_getaxiscolora ::+               Ptr RawTH3C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_getLabelColorA"-               c_th3c_getlabelcolora :: Ptr RawTH3C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getLabelColorA" c_th3c_getlabelcolora ::+               Ptr RawTH3C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_getLabelFontA"-               c_th3c_getlabelfonta :: Ptr RawTH3C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getLabelFontA" c_th3c_getlabelfonta ::+               Ptr RawTH3C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_getLabelOffsetA"-               c_th3c_getlabeloffseta :: Ptr RawTH3C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getLabelOffsetA" c_th3c_getlabeloffseta ::+               Ptr RawTH3C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_getLabelSizeA"-               c_th3c_getlabelsizea :: Ptr RawTH3C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getLabelSizeA" c_th3c_getlabelsizea ::+               Ptr RawTH3C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_getTitleFontA"-               c_th3c_gettitlefonta :: Ptr RawTH3C -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getTitleFontA" c_th3c_gettitlefonta ::+               Ptr RawTH3C -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_getTitleOffsetA"-               c_th3c_gettitleoffseta :: Ptr RawTH3C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getTitleOffsetA" c_th3c_gettitleoffseta ::+               Ptr RawTH3C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_getTitleSizeA"-               c_th3c_gettitlesizea :: Ptr RawTH3C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getTitleSizeA" c_th3c_gettitlesizea ::+               Ptr RawTH3C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_getTickLengthA"-               c_th3c_getticklengtha :: Ptr RawTH3C -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getTickLengthA" c_th3c_getticklengtha ::+               Ptr RawTH3C -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBarOffset"-               c_th3c_getbaroffset :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBarOffset" c_th3c_getbaroffset ::+               Ptr RawTH3C -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBarWidth"-               c_th3c_getbarwidth :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBarWidth" c_th3c_getbarwidth ::+               Ptr RawTH3C -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetContour"-               c_th3c_getcontour :: Ptr RawTH3C -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetContour" c_th3c_getcontour ::+               Ptr RawTH3C -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetContourLevel"-               c_th3c_getcontourlevel :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetContourLevel" c_th3c_getcontourlevel ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetContourLevelPad"-               c_th3c_getcontourlevelpad :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetContourLevelPad" c_th3c_getcontourlevelpad+               :: Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBin"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetBin"                c_th3c_getbin :: Ptr RawTH3C -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinCenter"-               c_th3c_getbincenter :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinCenter" c_th3c_getbincenter ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinContent1"-               c_th3c_getbincontent1 :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinContent1" c_th3c_getbincontent1 ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinContent2"-               c_th3c_getbincontent2 :: Ptr RawTH3C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinContent2" c_th3c_getbincontent2 ::+               Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinContent3"-               c_th3c_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinContent3" c_th3c_getbincontent3 ::                Ptr RawTH3C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinError1"-               c_th3c_getbinerror1 :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinError1" c_th3c_getbinerror1 ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinError2"-               c_th3c_getbinerror2 :: Ptr RawTH3C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinError2" c_th3c_getbinerror2 ::+               Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinError3"-               c_th3c_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinError3" c_th3c_getbinerror3 ::                Ptr RawTH3C -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinLowEdge"-               c_th3c_getbinlowedge :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinLowEdge" c_th3c_getbinlowedge ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetBinWidth"-               c_th3c_getbinwidth :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetBinWidth" c_th3c_getbinwidth ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetCellContent"-               c_th3c_getcellcontent :: Ptr RawTH3C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetCellContent" c_th3c_getcellcontent ::+               Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetCellError"-               c_th3c_getcellerror :: Ptr RawTH3C -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetCellError" c_th3c_getcellerror ::+               Ptr RawTH3C -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetEntries"-               c_th3c_getentries :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetEntries" c_th3c_getentries ::+               Ptr RawTH3C -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3C.h TH3C_GetEffectiveEntries"                c_th3c_geteffectiveentries :: Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetFunction"-               c_th3c_getfunction :: Ptr RawTH3C -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetFunction" c_th3c_getfunction ::+               Ptr RawTH3C -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetDimension"-               c_th3c_getdimension :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetDimension" c_th3c_getdimension ::+               Ptr RawTH3C -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetKurtosis"-               c_th3c_getkurtosis :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetKurtosis" c_th3c_getkurtosis ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetLowEdge"-               c_th3c_getlowedge :: Ptr RawTH3C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetLowEdge" c_th3c_getlowedge ::+               Ptr RawTH3C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_getMaximumTH1"-               c_th3c_getmaximumth1 :: Ptr RawTH3C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getMaximumTH1" c_th3c_getmaximumth1 ::+               Ptr RawTH3C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMaximumBin"-               c_th3c_getmaximumbin :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMaximumBin" c_th3c_getmaximumbin ::+               Ptr RawTH3C -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMaximumStored"-               c_th3c_getmaximumstored :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMaximumStored" c_th3c_getmaximumstored ::+               Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_getMinimumTH1"-               c_th3c_getminimumth1 :: Ptr RawTH3C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getMinimumTH1" c_th3c_getminimumth1 ::+               Ptr RawTH3C -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMinimumBin"-               c_th3c_getminimumbin :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMinimumBin" c_th3c_getminimumbin ::+               Ptr RawTH3C -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMinimumStored"-               c_th3c_getminimumstored :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMinimumStored" c_th3c_getminimumstored ::+               Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMean"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetMean"                c_th3c_getmean :: Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMeanError"-               c_th3c_getmeanerror :: Ptr RawTH3C -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMeanError" c_th3c_getmeanerror ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetNbinsX"                c_th3c_getnbinsx :: Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetNbinsY"                c_th3c_getnbinsy :: Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetNbinsZ"                c_th3c_getnbinsz :: Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_getQuantilesTH1"-               c_th3c_getquantilesth1 ::-               Ptr RawTH3C -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_getQuantilesTH1" c_th3c_getquantilesth1 ::+               Ptr RawTH3C -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetRandom"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetRandom"                c_th3c_getrandom :: Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetStats"-               c_th3c_getstats :: Ptr RawTH3C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetStats"+               c_th3c_getstats :: Ptr RawTH3C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetSumOfWeights"-               c_th3c_getsumofweights :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetSumOfWeights" c_th3c_getsumofweights ::+               Ptr RawTH3C -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetSumw2"                c_th3c_getsumw2 :: Ptr RawTH3C -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetSumw2N"                c_th3c_getsumw2n :: Ptr RawTH3C -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetRMS"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetRMS"                c_th3c_getrms :: Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetRMSError"-               c_th3c_getrmserror :: Ptr RawTH3C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3C.h TH3C_GetSkewness"-               c_th3c_getskewness :: Ptr RawTH3C -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3C.h TH3C_integral1"-               c_th3c_integral1 ::-               Ptr RawTH3C -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3C.h TH3C_interpolate1"-               c_th3c_interpolate1 :: Ptr RawTH3C -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetRMSError" c_th3c_getrmserror ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_interpolate2"-               c_th3c_interpolate2 ::-               Ptr RawTH3C -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetSkewness" c_th3c_getskewness ::+               Ptr RawTH3C -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_interpolate3"-               c_th3c_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_interpolate3" c_th3c_interpolate3 ::                Ptr RawTH3C -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_KolmogorovTest"-               c_th3c_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_KolmogorovTest" c_th3c_kolmogorovtest ::                Ptr RawTH3C -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3C.h TH3C_LabelsDeflate"-               c_th3c_labelsdeflate :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_LabelsDeflate" c_th3c_labelsdeflate ::+               Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_LabelsInflate"-               c_th3c_labelsinflate :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_LabelsInflate" c_th3c_labelsinflate ::+               Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_LabelsOption"-               c_th3c_labelsoption :: Ptr RawTH3C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_LabelsOption" c_th3c_labelsoption ::+               Ptr RawTH3C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_multiflyF"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_multiflyF"                c_th3c_multiflyf :: Ptr RawTH3C -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Multiply"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Multiply"                c_th3c_multiply ::                Ptr RawTH3C ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_PutStats"-               c_th3c_putstats :: Ptr RawTH3C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_PutStats"+               c_th3c_putstats :: Ptr RawTH3C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Rebin" c_th3c_rebin-               ::-               Ptr RawTH3C -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Rebin"+               c_th3c_rebin ::+               Ptr RawTH3C -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3C.h TH3C_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_RebinAxis"                c_th3c_rebinaxis :: Ptr RawTH3C -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Rebuild"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Rebuild"                c_th3c_rebuild :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_RecursiveRemove"-               c_th3c_recursiveremove :: Ptr RawTH3C -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_RecursiveRemove" c_th3c_recursiveremove ::+               Ptr RawTH3C -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Reset" c_th3c_reset-               :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Reset"+               c_th3c_reset :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_ResetStats"-               c_th3c_resetstats :: Ptr RawTH3C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_ResetStats" c_th3c_resetstats ::+               Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Scale" c_th3c_scale-               :: Ptr RawTH3C -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Scale"+               c_th3c_scale :: Ptr RawTH3C -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setAxisColorA"-               c_th3c_setaxiscolora :: Ptr RawTH3C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setAxisColorA" c_th3c_setaxiscolora ::+               Ptr RawTH3C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetAxisRange"-               c_th3c_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetAxisRange" c_th3c_setaxisrange ::                Ptr RawTH3C -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetBarOffset"-               c_th3c_setbaroffset :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetBarOffset" c_th3c_setbaroffset ::+               Ptr RawTH3C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetBarWidth"-               c_th3c_setbarwidth :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetBarWidth" c_th3c_setbarwidth ::+               Ptr RawTH3C -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinContent1"-               c_th3c_setbincontent1 :: Ptr RawTH3C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinContent1" c_th3c_setbincontent1 ::+               Ptr RawTH3C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinContent2"-               c_th3c_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinContent2" c_th3c_setbincontent2 ::                Ptr RawTH3C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinContent3"-               c_th3c_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinContent3" c_th3c_setbincontent3 ::                Ptr RawTH3C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinError1"-               c_th3c_setbinerror1 :: Ptr RawTH3C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinError1" c_th3c_setbinerror1 ::+               Ptr RawTH3C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinError2"-               c_th3c_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinError2" c_th3c_setbinerror2 ::                Ptr RawTH3C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBinError3"-               c_th3c_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setBinError3" c_th3c_setbinerror3 ::                Ptr RawTH3C -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBins1"-               c_th3c_setbins1 :: Ptr RawTH3C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_setBins1"+               c_th3c_setbins1 :: Ptr RawTH3C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBins2"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_setBins2"                c_th3c_setbins2 ::-               Ptr RawTH3C ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3C -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setBins3"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_setBins3"                c_th3c_setbins3 ::                Ptr RawTH3C ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetBinsLength"-               c_th3c_setbinslength :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetBinsLength" c_th3c_setbinslength ::+               Ptr RawTH3C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetBuffer"                c_th3c_setbuffer :: Ptr RawTH3C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetCellContent"-               c_th3c_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetCellContent" c_th3c_setcellcontent ::                Ptr RawTH3C -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetContent"-               c_th3c_setcontent :: Ptr RawTH3C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetContent" c_th3c_setcontent ::+               Ptr RawTH3C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetContour"-               c_th3c_setcontour :: Ptr RawTH3C -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetContour" c_th3c_setcontour ::+               Ptr RawTH3C -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetContourLevel"-               c_th3c_setcontourlevel :: Ptr RawTH3C -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetContourLevel" c_th3c_setcontourlevel ::+               Ptr RawTH3C -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetDirectory"-               c_th3c_setdirectory :: Ptr RawTH3C -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetDirectory" c_th3c_setdirectory ::+               Ptr RawTH3C -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetEntries"-               c_th3c_setentries :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetEntries" c_th3c_setentries ::+               Ptr RawTH3C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetError"-               c_th3c_seterror :: Ptr RawTH3C -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetError"+               c_th3c_seterror :: Ptr RawTH3C -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setLabelColorA"-               c_th3c_setlabelcolora :: Ptr RawTH3C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setLabelColorA" c_th3c_setlabelcolora ::+               Ptr RawTH3C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setLabelSizeA"-               c_th3c_setlabelsizea :: Ptr RawTH3C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setLabelSizeA" c_th3c_setlabelsizea ::+               Ptr RawTH3C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setLabelFontA"-               c_th3c_setlabelfonta :: Ptr RawTH3C -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setLabelFontA" c_th3c_setlabelfonta ::+               Ptr RawTH3C -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_setLabelOffsetA"-               c_th3c_setlabeloffseta ::-               Ptr RawTH3C -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_setLabelOffsetA" c_th3c_setlabeloffseta ::+               Ptr RawTH3C -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetMaximum"-               c_th3c_setmaximum :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetMaximum" c_th3c_setmaximum ::+               Ptr RawTH3C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetMinimum"-               c_th3c_setminimum :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetMinimum" c_th3c_setminimum ::+               Ptr RawTH3C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetNormFactor"-               c_th3c_setnormfactor :: Ptr RawTH3C -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetNormFactor" c_th3c_setnormfactor ::+               Ptr RawTH3C -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetStats"-               c_th3c_setstats :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetStats"+               c_th3c_setstats :: Ptr RawTH3C -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetOption"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetOption"                c_th3c_setoption :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetXTitle"                c_th3c_setxtitle :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetYTitle"                c_th3c_setytitle :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetZTitle"                c_th3c_setztitle :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_ShowBackground"-               c_th3c_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_ShowBackground" c_th3c_showbackground ::                Ptr RawTH3C -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3C.h TH3C_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_ShowPeaks"                c_th3c_showpeaks ::                Ptr RawTH3C -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_Smooth"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Smooth"                c_th3c_smooth :: Ptr RawTH3C -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Sumw2" c_th3c_sumw2-               :: Ptr RawTH3C -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Sumw2"+               c_th3c_sumw2 :: Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetName"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetName"                c_th3c_setname :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetNameTitle"-               c_th3c_setnametitle :: Ptr RawTH3C -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetNameTitle" c_th3c_setnametitle ::+               Ptr RawTH3C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetTitle"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetTitle"                c_th3c_settitle :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetLineColor"-               c_th3c_getlinecolor :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetLineColor" c_th3c_getlinecolor ::+               Ptr RawTH3C -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetLineStyle"-               c_th3c_getlinestyle :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetLineStyle" c_th3c_getlinestyle ::+               Ptr RawTH3C -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetLineWidth"-               c_th3c_getlinewidth :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetLineWidth" c_th3c_getlinewidth ::+               Ptr RawTH3C -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_ResetAttLine"-               c_th3c_resetattline :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_ResetAttLine" c_th3c_resetattline ::+               Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetLineAttributes"-               c_th3c_setlineattributes :: Ptr RawTH3C -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetLineAttributes" c_th3c_setlineattributes+               :: Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetLineColor"-               c_th3c_setlinecolor :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetLineColor" c_th3c_setlinecolor ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetLineStyle"-               c_th3c_setlinestyle :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetLineStyle" c_th3c_setlinestyle ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetLineWidth"-               c_th3c_setlinewidth :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetLineWidth" c_th3c_setlinewidth ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetFillColor"-               c_th3c_setfillcolor :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetFillColor" c_th3c_setfillcolor ::+               Ptr RawTH3C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetFillStyle"-               c_th3c_setfillstyle :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetFillStyle" c_th3c_setfillstyle ::+               Ptr RawTH3C -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMarkerColor"-               c_th3c_getmarkercolor :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMarkerColor" c_th3c_getmarkercolor ::+               Ptr RawTH3C -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMarkerStyle"-               c_th3c_getmarkerstyle :: Ptr RawTH3C -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMarkerStyle" c_th3c_getmarkerstyle ::+               Ptr RawTH3C -> IO CShort -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetMarkerSize"-               c_th3c_getmarkersize :: Ptr RawTH3C -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_GetMarkerSize" c_th3c_getmarkersize ::+               Ptr RawTH3C -> IO CFloat -foreign import ccall safe "HROOTHistTH3C.h TH3C_ResetAttMarker"-               c_th3c_resetattmarker :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_ResetAttMarker" c_th3c_resetattmarker ::+               Ptr RawTH3C -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3C.h TH3C_SetMarkerAttributes"                c_th3c_setmarkerattributes :: Ptr RawTH3C -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetMarkerColor"-               c_th3c_setmarkercolor :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetMarkerColor" c_th3c_setmarkercolor ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetMarkerStyle"-               c_th3c_setmarkerstyle :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetMarkerStyle" c_th3c_setmarkerstyle ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SetMarkerSize"-               c_th3c_setmarkersize :: Ptr RawTH3C -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_SetMarkerSize" c_th3c_setmarkersize ::+               Ptr RawTH3C -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Draw" c_th3c_draw-               :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Clear"+               c_th3c_clear :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_FindObject"-               c_th3c_findobject :: Ptr RawTH3C -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Draw"+               c_th3c_draw :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_GetName"+foreign import ccall interruptible+               "HROOTHistTH3C.h TH3C_FindObject" c_th3c_findobject ::+               Ptr RawTH3C -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetName"                c_th3c_getname :: Ptr RawTH3C -> IO CString -foreign import ccall safe "HROOTHistTH3C.h TH3C_IsA" c_th3c_isa ::-               Ptr RawTH3C -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_IsA"+               c_th3c_isa :: Ptr RawTH3C -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3C.h TH3C_Paint" c_th3c_paint-               :: Ptr RawTH3C -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Paint"+               c_th3c_paint :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_printObj"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_printObj"                c_th3c_printobj :: Ptr RawTH3C -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_SaveAs"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SaveAs"                c_th3c_saveas :: Ptr RawTH3C -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3C.h TH3C_Write" c_th3c_write-               :: Ptr RawTH3C -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Write"+               c_th3c_write :: Ptr RawTH3C -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3C.h TH3C_delete"+foreign import ccall interruptible "HROOTHistTH3C.h TH3C_Write_"+               c_th3c_write_ :: Ptr RawTH3C -> IO CInt++foreign import ccall interruptible "HROOTHistTH3C.h TH3C_delete"                c_th3c_delete :: Ptr RawTH3C -> IO ()++foreign import ccall interruptible "HROOTHistTH3C.h TH3C_GetAt"+               c_th3c_getat :: Ptr RawTH3C -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetArray"+               c_th3c_setarray :: Ptr RawTH3C -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH3C.h TH3C_SetAt"+               c_th3c_setat :: Ptr RawTH3C -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH3C/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3C.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3C.RawType import HROOT.Hist.TH3C.FFI import HROOT.Hist.TH3C.Interface import HROOT.Hist.TH3C.Cast+import HROOT.Hist.TH3C.RawType+import HROOT.Hist.TH3C.Cast+import HROOT.Hist.TH3C.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH3C TH3C+instance () => ITH3C (TH3C) where -instance ITH3 TH3C where+instance () => ITH3 (TH3C) where         fill3 = xform3 c_th3c_fill3         fill3w = xform4 c_th3c_fill3w         fitSlicesZ = xform7 c_th3c_fitslicesz@@ -77,13 +86,12 @@         rebinZ3 = xform2 c_th3c_rebinz3         rebin3D = xform4 c_th3c_rebin3d -instance ITArrayC TH3C+instance () => ITArrayC (TH3C) where -instance ITH1 TH3C where+instance () => ITH1 (TH3C) where         add = xform2 c_th3c_add         addBinContent = xform2 c_th3c_addbincontent         chi2Test = xform3 c_th3c_chi2test-        computeIntegral = xform0 c_th3c_computeintegral         directoryAutoAdd = xform1 c_th3c_directoryautoadd         divide = xform5 c_th3c_divide         drawCopyTH1 = xform1 c_th3c_drawcopyth1@@ -155,9 +163,6 @@         getRMS = xform1 c_th3c_getrms         getRMSError = xform1 c_th3c_getrmserror         getSkewness = xform1 c_th3c_getskewness-        integral1 = xform3 c_th3c_integral1-        interpolate1 = xform1 c_th3c_interpolate1-        interpolate2 = xform2 c_th3c_interpolate2         interpolate3 = xform3 c_th3c_interpolate3         kolmogorovTest = xform2 c_th3c_kolmogorovtest         labelsDeflate = xform1 c_th3c_labelsdeflate@@ -212,14 +217,14 @@         smooth = xform2 c_th3c_smooth         sumw2 = xform0 c_th3c_sumw2 -instance ITAtt3D TH3C+instance () => ITAtt3D (TH3C) where -instance ITNamed TH3C where+instance () => ITNamed (TH3C) where         setName = xform1 c_th3c_setname         setNameTitle = xform2 c_th3c_setnametitle         setTitle = xform1 c_th3c_settitle -instance ITAttLine TH3C where+instance () => ITAttLine (TH3C) where         getLineColor = xform0 c_th3c_getlinecolor         getLineStyle = xform0 c_th3c_getlinestyle         getLineWidth = xform0 c_th3c_getlinewidth@@ -229,11 +234,11 @@         setLineStyle = xform1 c_th3c_setlinestyle         setLineWidth = xform1 c_th3c_setlinewidth -instance ITAttFill TH3C where+instance () => ITAttFill (TH3C) where         setFillColor = xform1 c_th3c_setfillcolor         setFillStyle = xform1 c_th3c_setfillstyle -instance ITAttMarker TH3C where+instance () => ITAttMarker (TH3C) where         getMarkerColor = xform0 c_th3c_getmarkercolor         getMarkerStyle = xform0 c_th3c_getmarkerstyle         getMarkerSize = xform0 c_th3c_getmarkersize@@ -243,7 +248,8 @@         setMarkerStyle = xform1 c_th3c_setmarkerstyle         setMarkerSize = xform1 c_th3c_setmarkersize -instance ITObject TH3C where+instance () => ITObject (TH3C) where+        clear = xform1 c_th3c_clear         draw = xform1 c_th3c_draw         findObject = xform1 c_th3c_findobject         getName = xform0 c_th3c_getname@@ -252,8 +258,12 @@         printObj = xform1 c_th3c_printobj         saveAs = xform2 c_th3c_saveas         write = xform3 c_th3c_write+        write_ = xform0 c_th3c_write_ -instance IDeletable TH3C where+instance () => IDeletable (TH3C) where         delete = xform0 c_th3c_delete -instance ITArray TH3C+instance () => ITArray (TH3C) where+        getAt = xform1 c_th3c_getat+        setArray = xform1 c_th3c_setarray+        setAt = xform2 c_th3c_setat
src/HROOT/Hist/TH3C/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3C.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH3.Interface import HROOT.Core.TArrayC.Interface -class (ITH3 a, ITArrayC a) => ITH3C a+class (ITH3 a, ITArrayC a) => ITH3C a where  upcastTH3C :: forall a . (FPtr a, ITH3C a) => a -> TH3C upcastTH3C h
src/HROOT/Hist/TH3C/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3C  newtype TH3C = TH3C (Ptr RawTH3C)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH3C where+instance () => FPtr (TH3C) where         type Raw TH3C = RawTH3C         get_fptr (TH3C ptr) = ptr         cast_fptr_to_obj = TH3C
src/HROOT/Hist/TH3D/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3D.RawType import HROOT.Hist.TH3D.Interface -instance (ITH3D a, FPtr a) => Castable a (Ptr RawTH3D) where+instance (ITH3D a, FPtr a) => Castable (a) (Ptr RawTH3D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3D (Ptr RawTH3D) where+instance () => Castable (TH3D) (Ptr RawTH3D) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3D/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3D.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH3D.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TH3.RawType@@ -13,558 +16,646 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH3D.h TH3D_fill3" c_th3d_fill3-               :: Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_fill3"+               c_th3d_fill3 ::+               Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_fill3w"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_fill3w"                c_th3d_fill3w ::                Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_FitSlicesZ"-               c_th3d_fitslicesz ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FitSlicesZ" c_th3d_fitslicesz ::                Ptr RawTH3D ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3D.h TH3D_getCorrelationFactor3"                c_th3d_getcorrelationfactor3 ::                Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_getCovariance3"-               c_th3d_getcovariance3 :: Ptr RawTH3D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getCovariance3" c_th3d_getcovariance3 ::+               Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_rebinX3"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_rebinX3"                c_th3d_rebinx3 :: Ptr RawTH3D -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3D.h TH3D_rebinY3"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_rebinY3"                c_th3d_rebiny3 :: Ptr RawTH3D -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3D.h TH3D_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_rebinZ3"                c_th3d_rebinz3 :: Ptr RawTH3D -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3D.h TH3D_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Rebin3D"                c_th3d_rebin3d ::                Ptr RawTH3D -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3D.h TH3D_Add" c_th3d_add ::-               Ptr RawTH3D -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Add"+               c_th3d_add :: Ptr RawTH3D -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_AddBinContent"-               c_th3d_addbincontent :: Ptr RawTH3D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_AddBinContent" c_th3d_addbincontent ::+               Ptr RawTH3D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Chi2Test"                c_th3d_chi2test ::-               Ptr RawTH3D -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3D.h TH3D_ComputeIntegral"-               c_th3d_computeintegral :: Ptr RawTH3D -> IO CDouble+               Ptr RawTH3D -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_DirectoryAutoAdd"-               c_th3d_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_DirectoryAutoAdd" c_th3d_directoryautoadd ::                Ptr RawTH3D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Divide"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Divide"                c_th3d_divide ::                Ptr RawTH3D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_drawCopyTH1"-               c_th3d_drawcopyth1 :: Ptr RawTH3D -> CString -> IO (Ptr RawTH3D)+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_drawCopyTH1" c_th3d_drawcopyth1 ::+               Ptr RawTH3D -> CString -> IO (Ptr RawTH3D) -foreign import ccall safe "HROOTHistTH3D.h TH3D_DrawNormalized"-               c_th3d_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_DrawNormalized" c_th3d_drawnormalized ::                Ptr RawTH3D -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3D.h TH3D_drawPanelTH1"-               c_th3d_drawpanelth1 :: Ptr RawTH3D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_drawPanelTH1" c_th3d_drawpanelth1 ::+               Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_BufferEmpty"-               c_th3d_bufferempty :: Ptr RawTH3D -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_BufferEmpty" c_th3d_bufferempty ::+               Ptr RawTH3D -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_evalF" c_th3d_evalf-               :: Ptr RawTH3D -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_evalF"+               c_th3d_evalf :: Ptr RawTH3D -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_FFT" c_th3d_fft ::+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_FFT"+               c_th3d_fft ::                Ptr RawTH3D -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3D.h TH3D_fill1" c_th3d_fill1-               :: Ptr RawTH3D -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_fill1"+               c_th3d_fill1 :: Ptr RawTH3D -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_fill1w"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_fill1w"                c_th3d_fill1w :: Ptr RawTH3D -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_fillN1"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_fillN1"                c_th3d_filln1 ::-               Ptr RawTH3D ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH3D -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_FillRandom"-               c_th3d_fillrandom :: Ptr RawTH3D -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FillRandom" c_th3d_fillrandom ::+               Ptr RawTH3D -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_FindBin"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_FindBin"                c_th3d_findbin ::                Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_FindFixBin"-               c_th3d_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FindFixBin" c_th3d_findfixbin ::                Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_FindFirstBinAbove"-               c_th3d_findfirstbinabove ::-               Ptr RawTH3D -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FindFirstBinAbove" c_th3d_findfirstbinabove+               :: Ptr RawTH3D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_FindLastBinAbove"-               c_th3d_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FindLastBinAbove" c_th3d_findlastbinabove ::                Ptr RawTH3D -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_Fit" c_th3d_fit ::+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Fit"+               c_th3d_fit ::                Ptr RawTH3D ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_FitPanelTH1"-               c_th3d_fitpanelth1 :: Ptr RawTH3D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FitPanelTH1" c_th3d_fitpanelth1 ::+               Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_getNdivisionA"-               c_th3d_getndivisiona :: Ptr RawTH3D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getNdivisionA" c_th3d_getndivisiona ::+               Ptr RawTH3D -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_getAxisColorA"-               c_th3d_getaxiscolora :: Ptr RawTH3D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getAxisColorA" c_th3d_getaxiscolora ::+               Ptr RawTH3D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_getLabelColorA"-               c_th3d_getlabelcolora :: Ptr RawTH3D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getLabelColorA" c_th3d_getlabelcolora ::+               Ptr RawTH3D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_getLabelFontA"-               c_th3d_getlabelfonta :: Ptr RawTH3D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getLabelFontA" c_th3d_getlabelfonta ::+               Ptr RawTH3D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_getLabelOffsetA"-               c_th3d_getlabeloffseta :: Ptr RawTH3D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getLabelOffsetA" c_th3d_getlabeloffseta ::+               Ptr RawTH3D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_getLabelSizeA"-               c_th3d_getlabelsizea :: Ptr RawTH3D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getLabelSizeA" c_th3d_getlabelsizea ::+               Ptr RawTH3D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_getTitleFontA"-               c_th3d_gettitlefonta :: Ptr RawTH3D -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getTitleFontA" c_th3d_gettitlefonta ::+               Ptr RawTH3D -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_getTitleOffsetA"-               c_th3d_gettitleoffseta :: Ptr RawTH3D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getTitleOffsetA" c_th3d_gettitleoffseta ::+               Ptr RawTH3D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_getTitleSizeA"-               c_th3d_gettitlesizea :: Ptr RawTH3D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getTitleSizeA" c_th3d_gettitlesizea ::+               Ptr RawTH3D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_getTickLengthA"-               c_th3d_getticklengtha :: Ptr RawTH3D -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getTickLengthA" c_th3d_getticklengtha ::+               Ptr RawTH3D -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBarOffset"-               c_th3d_getbaroffset :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBarOffset" c_th3d_getbaroffset ::+               Ptr RawTH3D -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBarWidth"-               c_th3d_getbarwidth :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBarWidth" c_th3d_getbarwidth ::+               Ptr RawTH3D -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetContour"-               c_th3d_getcontour :: Ptr RawTH3D -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetContour" c_th3d_getcontour ::+               Ptr RawTH3D -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetContourLevel"-               c_th3d_getcontourlevel :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetContourLevel" c_th3d_getcontourlevel ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetContourLevelPad"-               c_th3d_getcontourlevelpad :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetContourLevelPad" c_th3d_getcontourlevelpad+               :: Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBin"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetBin"                c_th3d_getbin :: Ptr RawTH3D -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinCenter"-               c_th3d_getbincenter :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinCenter" c_th3d_getbincenter ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinContent1"-               c_th3d_getbincontent1 :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinContent1" c_th3d_getbincontent1 ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinContent2"-               c_th3d_getbincontent2 :: Ptr RawTH3D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinContent2" c_th3d_getbincontent2 ::+               Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinContent3"-               c_th3d_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinContent3" c_th3d_getbincontent3 ::                Ptr RawTH3D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinError1"-               c_th3d_getbinerror1 :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinError1" c_th3d_getbinerror1 ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinError2"-               c_th3d_getbinerror2 :: Ptr RawTH3D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinError2" c_th3d_getbinerror2 ::+               Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinError3"-               c_th3d_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinError3" c_th3d_getbinerror3 ::                Ptr RawTH3D -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinLowEdge"-               c_th3d_getbinlowedge :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinLowEdge" c_th3d_getbinlowedge ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetBinWidth"-               c_th3d_getbinwidth :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetBinWidth" c_th3d_getbinwidth ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetCellContent"-               c_th3d_getcellcontent :: Ptr RawTH3D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetCellContent" c_th3d_getcellcontent ::+               Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetCellError"-               c_th3d_getcellerror :: Ptr RawTH3D -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetCellError" c_th3d_getcellerror ::+               Ptr RawTH3D -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetEntries"-               c_th3d_getentries :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetEntries" c_th3d_getentries ::+               Ptr RawTH3D -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3D.h TH3D_GetEffectiveEntries"                c_th3d_geteffectiveentries :: Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetFunction"-               c_th3d_getfunction :: Ptr RawTH3D -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetFunction" c_th3d_getfunction ::+               Ptr RawTH3D -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetDimension"-               c_th3d_getdimension :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetDimension" c_th3d_getdimension ::+               Ptr RawTH3D -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetKurtosis"-               c_th3d_getkurtosis :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetKurtosis" c_th3d_getkurtosis ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetLowEdge"-               c_th3d_getlowedge :: Ptr RawTH3D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetLowEdge" c_th3d_getlowedge ::+               Ptr RawTH3D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_getMaximumTH1"-               c_th3d_getmaximumth1 :: Ptr RawTH3D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getMaximumTH1" c_th3d_getmaximumth1 ::+               Ptr RawTH3D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMaximumBin"-               c_th3d_getmaximumbin :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMaximumBin" c_th3d_getmaximumbin ::+               Ptr RawTH3D -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMaximumStored"-               c_th3d_getmaximumstored :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMaximumStored" c_th3d_getmaximumstored ::+               Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_getMinimumTH1"-               c_th3d_getminimumth1 :: Ptr RawTH3D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getMinimumTH1" c_th3d_getminimumth1 ::+               Ptr RawTH3D -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMinimumBin"-               c_th3d_getminimumbin :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMinimumBin" c_th3d_getminimumbin ::+               Ptr RawTH3D -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMinimumStored"-               c_th3d_getminimumstored :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMinimumStored" c_th3d_getminimumstored ::+               Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMean"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetMean"                c_th3d_getmean :: Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMeanError"-               c_th3d_getmeanerror :: Ptr RawTH3D -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMeanError" c_th3d_getmeanerror ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetNbinsX"                c_th3d_getnbinsx :: Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetNbinsY"                c_th3d_getnbinsy :: Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetNbinsZ"                c_th3d_getnbinsz :: Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_getQuantilesTH1"-               c_th3d_getquantilesth1 ::-               Ptr RawTH3D -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_getQuantilesTH1" c_th3d_getquantilesth1 ::+               Ptr RawTH3D -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetRandom"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetRandom"                c_th3d_getrandom :: Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetStats"-               c_th3d_getstats :: Ptr RawTH3D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetStats"+               c_th3d_getstats :: Ptr RawTH3D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetSumOfWeights"-               c_th3d_getsumofweights :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetSumOfWeights" c_th3d_getsumofweights ::+               Ptr RawTH3D -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetSumw2"                c_th3d_getsumw2 :: Ptr RawTH3D -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetSumw2N"                c_th3d_getsumw2n :: Ptr RawTH3D -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetRMS"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetRMS"                c_th3d_getrms :: Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetRMSError"-               c_th3d_getrmserror :: Ptr RawTH3D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3D.h TH3D_GetSkewness"-               c_th3d_getskewness :: Ptr RawTH3D -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3D.h TH3D_integral1"-               c_th3d_integral1 ::-               Ptr RawTH3D -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3D.h TH3D_interpolate1"-               c_th3d_interpolate1 :: Ptr RawTH3D -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetRMSError" c_th3d_getrmserror ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_interpolate2"-               c_th3d_interpolate2 ::-               Ptr RawTH3D -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetSkewness" c_th3d_getskewness ::+               Ptr RawTH3D -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_interpolate3"-               c_th3d_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_interpolate3" c_th3d_interpolate3 ::                Ptr RawTH3D -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_KolmogorovTest"-               c_th3d_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_KolmogorovTest" c_th3d_kolmogorovtest ::                Ptr RawTH3D -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3D.h TH3D_LabelsDeflate"-               c_th3d_labelsdeflate :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_LabelsDeflate" c_th3d_labelsdeflate ::+               Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_LabelsInflate"-               c_th3d_labelsinflate :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_LabelsInflate" c_th3d_labelsinflate ::+               Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_LabelsOption"-               c_th3d_labelsoption :: Ptr RawTH3D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_LabelsOption" c_th3d_labelsoption ::+               Ptr RawTH3D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_multiflyF"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_multiflyF"                c_th3d_multiflyf :: Ptr RawTH3D -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Multiply"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Multiply"                c_th3d_multiply ::                Ptr RawTH3D ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_PutStats"-               c_th3d_putstats :: Ptr RawTH3D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_PutStats"+               c_th3d_putstats :: Ptr RawTH3D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Rebin" c_th3d_rebin-               ::-               Ptr RawTH3D -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Rebin"+               c_th3d_rebin ::+               Ptr RawTH3D -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3D.h TH3D_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_RebinAxis"                c_th3d_rebinaxis :: Ptr RawTH3D -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Rebuild"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Rebuild"                c_th3d_rebuild :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_RecursiveRemove"-               c_th3d_recursiveremove :: Ptr RawTH3D -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_RecursiveRemove" c_th3d_recursiveremove ::+               Ptr RawTH3D -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Reset" c_th3d_reset-               :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Reset"+               c_th3d_reset :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_ResetStats"-               c_th3d_resetstats :: Ptr RawTH3D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_ResetStats" c_th3d_resetstats ::+               Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Scale" c_th3d_scale-               :: Ptr RawTH3D -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Scale"+               c_th3d_scale :: Ptr RawTH3D -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setAxisColorA"-               c_th3d_setaxiscolora :: Ptr RawTH3D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setAxisColorA" c_th3d_setaxiscolora ::+               Ptr RawTH3D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetAxisRange"-               c_th3d_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetAxisRange" c_th3d_setaxisrange ::                Ptr RawTH3D -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetBarOffset"-               c_th3d_setbaroffset :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetBarOffset" c_th3d_setbaroffset ::+               Ptr RawTH3D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetBarWidth"-               c_th3d_setbarwidth :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetBarWidth" c_th3d_setbarwidth ::+               Ptr RawTH3D -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinContent1"-               c_th3d_setbincontent1 :: Ptr RawTH3D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinContent1" c_th3d_setbincontent1 ::+               Ptr RawTH3D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinContent2"-               c_th3d_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinContent2" c_th3d_setbincontent2 ::                Ptr RawTH3D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinContent3"-               c_th3d_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinContent3" c_th3d_setbincontent3 ::                Ptr RawTH3D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinError1"-               c_th3d_setbinerror1 :: Ptr RawTH3D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinError1" c_th3d_setbinerror1 ::+               Ptr RawTH3D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinError2"-               c_th3d_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinError2" c_th3d_setbinerror2 ::                Ptr RawTH3D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBinError3"-               c_th3d_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setBinError3" c_th3d_setbinerror3 ::                Ptr RawTH3D -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBins1"-               c_th3d_setbins1 :: Ptr RawTH3D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_setBins1"+               c_th3d_setbins1 :: Ptr RawTH3D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBins2"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_setBins2"                c_th3d_setbins2 ::-               Ptr RawTH3D ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3D -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setBins3"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_setBins3"                c_th3d_setbins3 ::                Ptr RawTH3D ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetBinsLength"-               c_th3d_setbinslength :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetBinsLength" c_th3d_setbinslength ::+               Ptr RawTH3D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetBuffer"                c_th3d_setbuffer :: Ptr RawTH3D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetCellContent"-               c_th3d_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetCellContent" c_th3d_setcellcontent ::                Ptr RawTH3D -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetContent"-               c_th3d_setcontent :: Ptr RawTH3D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetContent" c_th3d_setcontent ::+               Ptr RawTH3D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetContour"-               c_th3d_setcontour :: Ptr RawTH3D -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetContour" c_th3d_setcontour ::+               Ptr RawTH3D -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetContourLevel"-               c_th3d_setcontourlevel :: Ptr RawTH3D -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetContourLevel" c_th3d_setcontourlevel ::+               Ptr RawTH3D -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetDirectory"-               c_th3d_setdirectory :: Ptr RawTH3D -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetDirectory" c_th3d_setdirectory ::+               Ptr RawTH3D -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetEntries"-               c_th3d_setentries :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetEntries" c_th3d_setentries ::+               Ptr RawTH3D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetError"-               c_th3d_seterror :: Ptr RawTH3D -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetError"+               c_th3d_seterror :: Ptr RawTH3D -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setLabelColorA"-               c_th3d_setlabelcolora :: Ptr RawTH3D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setLabelColorA" c_th3d_setlabelcolora ::+               Ptr RawTH3D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setLabelSizeA"-               c_th3d_setlabelsizea :: Ptr RawTH3D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setLabelSizeA" c_th3d_setlabelsizea ::+               Ptr RawTH3D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setLabelFontA"-               c_th3d_setlabelfonta :: Ptr RawTH3D -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setLabelFontA" c_th3d_setlabelfonta ::+               Ptr RawTH3D -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_setLabelOffsetA"-               c_th3d_setlabeloffseta ::-               Ptr RawTH3D -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_setLabelOffsetA" c_th3d_setlabeloffseta ::+               Ptr RawTH3D -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetMaximum"-               c_th3d_setmaximum :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetMaximum" c_th3d_setmaximum ::+               Ptr RawTH3D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetMinimum"-               c_th3d_setminimum :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetMinimum" c_th3d_setminimum ::+               Ptr RawTH3D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetNormFactor"-               c_th3d_setnormfactor :: Ptr RawTH3D -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetNormFactor" c_th3d_setnormfactor ::+               Ptr RawTH3D -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetStats"-               c_th3d_setstats :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetStats"+               c_th3d_setstats :: Ptr RawTH3D -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetOption"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetOption"                c_th3d_setoption :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetXTitle"                c_th3d_setxtitle :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetYTitle"                c_th3d_setytitle :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetZTitle"                c_th3d_setztitle :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_ShowBackground"-               c_th3d_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_ShowBackground" c_th3d_showbackground ::                Ptr RawTH3D -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3D.h TH3D_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_ShowPeaks"                c_th3d_showpeaks ::                Ptr RawTH3D -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_Smooth"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Smooth"                c_th3d_smooth :: Ptr RawTH3D -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Sumw2" c_th3d_sumw2-               :: Ptr RawTH3D -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Sumw2"+               c_th3d_sumw2 :: Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetName"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetName"                c_th3d_setname :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetNameTitle"-               c_th3d_setnametitle :: Ptr RawTH3D -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetNameTitle" c_th3d_setnametitle ::+               Ptr RawTH3D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetTitle"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetTitle"                c_th3d_settitle :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetLineColor"-               c_th3d_getlinecolor :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetLineColor" c_th3d_getlinecolor ::+               Ptr RawTH3D -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetLineStyle"-               c_th3d_getlinestyle :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetLineStyle" c_th3d_getlinestyle ::+               Ptr RawTH3D -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetLineWidth"-               c_th3d_getlinewidth :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetLineWidth" c_th3d_getlinewidth ::+               Ptr RawTH3D -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_ResetAttLine"-               c_th3d_resetattline :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_ResetAttLine" c_th3d_resetattline ::+               Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetLineAttributes"-               c_th3d_setlineattributes :: Ptr RawTH3D -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetLineAttributes" c_th3d_setlineattributes+               :: Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetLineColor"-               c_th3d_setlinecolor :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetLineColor" c_th3d_setlinecolor ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetLineStyle"-               c_th3d_setlinestyle :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetLineStyle" c_th3d_setlinestyle ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetLineWidth"-               c_th3d_setlinewidth :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetLineWidth" c_th3d_setlinewidth ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetFillColor"-               c_th3d_setfillcolor :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetFillColor" c_th3d_setfillcolor ::+               Ptr RawTH3D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetFillStyle"-               c_th3d_setfillstyle :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetFillStyle" c_th3d_setfillstyle ::+               Ptr RawTH3D -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMarkerColor"-               c_th3d_getmarkercolor :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMarkerColor" c_th3d_getmarkercolor ::+               Ptr RawTH3D -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMarkerStyle"-               c_th3d_getmarkerstyle :: Ptr RawTH3D -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMarkerStyle" c_th3d_getmarkerstyle ::+               Ptr RawTH3D -> IO CShort -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetMarkerSize"-               c_th3d_getmarkersize :: Ptr RawTH3D -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_GetMarkerSize" c_th3d_getmarkersize ::+               Ptr RawTH3D -> IO CFloat -foreign import ccall safe "HROOTHistTH3D.h TH3D_ResetAttMarker"-               c_th3d_resetattmarker :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_ResetAttMarker" c_th3d_resetattmarker ::+               Ptr RawTH3D -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3D.h TH3D_SetMarkerAttributes"                c_th3d_setmarkerattributes :: Ptr RawTH3D -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetMarkerColor"-               c_th3d_setmarkercolor :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetMarkerColor" c_th3d_setmarkercolor ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetMarkerStyle"-               c_th3d_setmarkerstyle :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetMarkerStyle" c_th3d_setmarkerstyle ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SetMarkerSize"-               c_th3d_setmarkersize :: Ptr RawTH3D -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_SetMarkerSize" c_th3d_setmarkersize ::+               Ptr RawTH3D -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Draw" c_th3d_draw-               :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Clear"+               c_th3d_clear :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_FindObject"-               c_th3d_findobject :: Ptr RawTH3D -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Draw"+               c_th3d_draw :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_GetName"+foreign import ccall interruptible+               "HROOTHistTH3D.h TH3D_FindObject" c_th3d_findobject ::+               Ptr RawTH3D -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetName"                c_th3d_getname :: Ptr RawTH3D -> IO CString -foreign import ccall safe "HROOTHistTH3D.h TH3D_IsA" c_th3d_isa ::-               Ptr RawTH3D -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_IsA"+               c_th3d_isa :: Ptr RawTH3D -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3D.h TH3D_Paint" c_th3d_paint-               :: Ptr RawTH3D -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Paint"+               c_th3d_paint :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_printObj"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_printObj"                c_th3d_printobj :: Ptr RawTH3D -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_SaveAs"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SaveAs"                c_th3d_saveas :: Ptr RawTH3D -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3D.h TH3D_Write" c_th3d_write-               :: Ptr RawTH3D -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Write"+               c_th3d_write :: Ptr RawTH3D -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3D.h TH3D_delete"+foreign import ccall interruptible "HROOTHistTH3D.h TH3D_Write_"+               c_th3d_write_ :: Ptr RawTH3D -> IO CInt++foreign import ccall interruptible "HROOTHistTH3D.h TH3D_delete"                c_th3d_delete :: Ptr RawTH3D -> IO ()++foreign import ccall interruptible "HROOTHistTH3D.h TH3D_GetAt"+               c_th3d_getat :: Ptr RawTH3D -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetArray"+               c_th3d_setarray :: Ptr RawTH3D -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH3D.h TH3D_SetAt"+               c_th3d_setat :: Ptr RawTH3D -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH3D/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3D.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3D.RawType import HROOT.Hist.TH3D.FFI import HROOT.Hist.TH3D.Interface import HROOT.Hist.TH3D.Cast+import HROOT.Hist.TH3D.RawType+import HROOT.Hist.TH3D.Cast+import HROOT.Hist.TH3D.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -54,16 +63,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH3D TH3D+instance () => ITH3D (TH3D) where -instance ITH3 TH3D where+instance () => ITH3 (TH3D) where         fill3 = xform3 c_th3d_fill3         fill3w = xform4 c_th3d_fill3w         fitSlicesZ = xform7 c_th3d_fitslicesz@@ -74,13 +83,12 @@         rebinZ3 = xform2 c_th3d_rebinz3         rebin3D = xform4 c_th3d_rebin3d -instance ITArrayD TH3D+instance () => ITArrayD (TH3D) where -instance ITH1 TH3D where+instance () => ITH1 (TH3D) where         add = xform2 c_th3d_add         addBinContent = xform2 c_th3d_addbincontent         chi2Test = xform3 c_th3d_chi2test-        computeIntegral = xform0 c_th3d_computeintegral         directoryAutoAdd = xform1 c_th3d_directoryautoadd         divide = xform5 c_th3d_divide         drawCopyTH1 = xform1 c_th3d_drawcopyth1@@ -152,9 +160,6 @@         getRMS = xform1 c_th3d_getrms         getRMSError = xform1 c_th3d_getrmserror         getSkewness = xform1 c_th3d_getskewness-        integral1 = xform3 c_th3d_integral1-        interpolate1 = xform1 c_th3d_interpolate1-        interpolate2 = xform2 c_th3d_interpolate2         interpolate3 = xform3 c_th3d_interpolate3         kolmogorovTest = xform2 c_th3d_kolmogorovtest         labelsDeflate = xform1 c_th3d_labelsdeflate@@ -209,14 +214,14 @@         smooth = xform2 c_th3d_smooth         sumw2 = xform0 c_th3d_sumw2 -instance ITAtt3D TH3D+instance () => ITAtt3D (TH3D) where -instance ITNamed TH3D where+instance () => ITNamed (TH3D) where         setName = xform1 c_th3d_setname         setNameTitle = xform2 c_th3d_setnametitle         setTitle = xform1 c_th3d_settitle -instance ITAttLine TH3D where+instance () => ITAttLine (TH3D) where         getLineColor = xform0 c_th3d_getlinecolor         getLineStyle = xform0 c_th3d_getlinestyle         getLineWidth = xform0 c_th3d_getlinewidth@@ -226,11 +231,11 @@         setLineStyle = xform1 c_th3d_setlinestyle         setLineWidth = xform1 c_th3d_setlinewidth -instance ITAttFill TH3D where+instance () => ITAttFill (TH3D) where         setFillColor = xform1 c_th3d_setfillcolor         setFillStyle = xform1 c_th3d_setfillstyle -instance ITAttMarker TH3D where+instance () => ITAttMarker (TH3D) where         getMarkerColor = xform0 c_th3d_getmarkercolor         getMarkerStyle = xform0 c_th3d_getmarkerstyle         getMarkerSize = xform0 c_th3d_getmarkersize@@ -240,7 +245,8 @@         setMarkerStyle = xform1 c_th3d_setmarkerstyle         setMarkerSize = xform1 c_th3d_setmarkersize -instance ITObject TH3D where+instance () => ITObject (TH3D) where+        clear = xform1 c_th3d_clear         draw = xform1 c_th3d_draw         findObject = xform1 c_th3d_findobject         getName = xform0 c_th3d_getname@@ -249,8 +255,12 @@         printObj = xform1 c_th3d_printobj         saveAs = xform2 c_th3d_saveas         write = xform3 c_th3d_write+        write_ = xform0 c_th3d_write_ -instance IDeletable TH3D where+instance () => IDeletable (TH3D) where         delete = xform0 c_th3d_delete -instance ITArray TH3D+instance () => ITArray (TH3D) where+        getAt = xform1 c_th3d_getat+        setArray = xform1 c_th3d_setarray+        setAt = xform2 c_th3d_setat
src/HROOT/Hist/TH3D/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3D.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH3.Interface import HROOT.Core.TArrayD.Interface -class (ITH3 a, ITArrayD a) => ITH3D a+class (ITH3 a, ITArrayD a) => ITH3D a where  upcastTH3D :: forall a . (FPtr a, ITH3D a) => a -> TH3D upcastTH3D h
src/HROOT/Hist/TH3D/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3D  newtype TH3D = TH3D (Ptr RawTH3D)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH3D where+instance () => FPtr (TH3D) where         type Raw TH3D = RawTH3D         get_fptr (TH3D ptr) = ptr         cast_fptr_to_obj = TH3D
src/HROOT/Hist/TH3F/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3F.RawType import HROOT.Hist.TH3F.Interface -instance (ITH3F a, FPtr a) => Castable a (Ptr RawTH3F) where+instance (ITH3F a, FPtr a) => Castable (a) (Ptr RawTH3F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3F (Ptr RawTH3F) where+instance () => Castable (TH3F) (Ptr RawTH3F) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3F/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3F.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH3F.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TH3.RawType@@ -13,558 +16,646 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH3F.h TH3F_fill3" c_th3f_fill3-               :: Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_fill3"+               c_th3f_fill3 ::+               Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_fill3w"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_fill3w"                c_th3f_fill3w ::                Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_FitSlicesZ"-               c_th3f_fitslicesz ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FitSlicesZ" c_th3f_fitslicesz ::                Ptr RawTH3F ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3F.h TH3F_getCorrelationFactor3"                c_th3f_getcorrelationfactor3 ::                Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_getCovariance3"-               c_th3f_getcovariance3 :: Ptr RawTH3F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getCovariance3" c_th3f_getcovariance3 ::+               Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_rebinX3"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_rebinX3"                c_th3f_rebinx3 :: Ptr RawTH3F -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3F.h TH3F_rebinY3"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_rebinY3"                c_th3f_rebiny3 :: Ptr RawTH3F -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3F.h TH3F_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_rebinZ3"                c_th3f_rebinz3 :: Ptr RawTH3F -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3F.h TH3F_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Rebin3D"                c_th3f_rebin3d ::                Ptr RawTH3F -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3F.h TH3F_Add" c_th3f_add ::-               Ptr RawTH3F -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Add"+               c_th3f_add :: Ptr RawTH3F -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_AddBinContent"-               c_th3f_addbincontent :: Ptr RawTH3F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_AddBinContent" c_th3f_addbincontent ::+               Ptr RawTH3F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Chi2Test"                c_th3f_chi2test ::-               Ptr RawTH3F -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3F.h TH3F_ComputeIntegral"-               c_th3f_computeintegral :: Ptr RawTH3F -> IO CDouble+               Ptr RawTH3F -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_DirectoryAutoAdd"-               c_th3f_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_DirectoryAutoAdd" c_th3f_directoryautoadd ::                Ptr RawTH3F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Divide"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Divide"                c_th3f_divide ::                Ptr RawTH3F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_drawCopyTH1"-               c_th3f_drawcopyth1 :: Ptr RawTH3F -> CString -> IO (Ptr RawTH3F)+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_drawCopyTH1" c_th3f_drawcopyth1 ::+               Ptr RawTH3F -> CString -> IO (Ptr RawTH3F) -foreign import ccall safe "HROOTHistTH3F.h TH3F_DrawNormalized"-               c_th3f_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_DrawNormalized" c_th3f_drawnormalized ::                Ptr RawTH3F -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3F.h TH3F_drawPanelTH1"-               c_th3f_drawpanelth1 :: Ptr RawTH3F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_drawPanelTH1" c_th3f_drawpanelth1 ::+               Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_BufferEmpty"-               c_th3f_bufferempty :: Ptr RawTH3F -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_BufferEmpty" c_th3f_bufferempty ::+               Ptr RawTH3F -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_evalF" c_th3f_evalf-               :: Ptr RawTH3F -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_evalF"+               c_th3f_evalf :: Ptr RawTH3F -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_FFT" c_th3f_fft ::+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_FFT"+               c_th3f_fft ::                Ptr RawTH3F -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3F.h TH3F_fill1" c_th3f_fill1-               :: Ptr RawTH3F -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_fill1"+               c_th3f_fill1 :: Ptr RawTH3F -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_fill1w"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_fill1w"                c_th3f_fill1w :: Ptr RawTH3F -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_fillN1"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_fillN1"                c_th3f_filln1 ::-               Ptr RawTH3F ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH3F -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_FillRandom"-               c_th3f_fillrandom :: Ptr RawTH3F -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FillRandom" c_th3f_fillrandom ::+               Ptr RawTH3F -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_FindBin"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_FindBin"                c_th3f_findbin ::                Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_FindFixBin"-               c_th3f_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FindFixBin" c_th3f_findfixbin ::                Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_FindFirstBinAbove"-               c_th3f_findfirstbinabove ::-               Ptr RawTH3F -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FindFirstBinAbove" c_th3f_findfirstbinabove+               :: Ptr RawTH3F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_FindLastBinAbove"-               c_th3f_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FindLastBinAbove" c_th3f_findlastbinabove ::                Ptr RawTH3F -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_Fit" c_th3f_fit ::+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Fit"+               c_th3f_fit ::                Ptr RawTH3F ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_FitPanelTH1"-               c_th3f_fitpanelth1 :: Ptr RawTH3F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FitPanelTH1" c_th3f_fitpanelth1 ::+               Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_getNdivisionA"-               c_th3f_getndivisiona :: Ptr RawTH3F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getNdivisionA" c_th3f_getndivisiona ::+               Ptr RawTH3F -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_getAxisColorA"-               c_th3f_getaxiscolora :: Ptr RawTH3F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getAxisColorA" c_th3f_getaxiscolora ::+               Ptr RawTH3F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_getLabelColorA"-               c_th3f_getlabelcolora :: Ptr RawTH3F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getLabelColorA" c_th3f_getlabelcolora ::+               Ptr RawTH3F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_getLabelFontA"-               c_th3f_getlabelfonta :: Ptr RawTH3F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getLabelFontA" c_th3f_getlabelfonta ::+               Ptr RawTH3F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_getLabelOffsetA"-               c_th3f_getlabeloffseta :: Ptr RawTH3F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getLabelOffsetA" c_th3f_getlabeloffseta ::+               Ptr RawTH3F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_getLabelSizeA"-               c_th3f_getlabelsizea :: Ptr RawTH3F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getLabelSizeA" c_th3f_getlabelsizea ::+               Ptr RawTH3F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_getTitleFontA"-               c_th3f_gettitlefonta :: Ptr RawTH3F -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getTitleFontA" c_th3f_gettitlefonta ::+               Ptr RawTH3F -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_getTitleOffsetA"-               c_th3f_gettitleoffseta :: Ptr RawTH3F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getTitleOffsetA" c_th3f_gettitleoffseta ::+               Ptr RawTH3F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_getTitleSizeA"-               c_th3f_gettitlesizea :: Ptr RawTH3F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getTitleSizeA" c_th3f_gettitlesizea ::+               Ptr RawTH3F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_getTickLengthA"-               c_th3f_getticklengtha :: Ptr RawTH3F -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getTickLengthA" c_th3f_getticklengtha ::+               Ptr RawTH3F -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBarOffset"-               c_th3f_getbaroffset :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBarOffset" c_th3f_getbaroffset ::+               Ptr RawTH3F -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBarWidth"-               c_th3f_getbarwidth :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBarWidth" c_th3f_getbarwidth ::+               Ptr RawTH3F -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetContour"-               c_th3f_getcontour :: Ptr RawTH3F -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetContour" c_th3f_getcontour ::+               Ptr RawTH3F -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetContourLevel"-               c_th3f_getcontourlevel :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetContourLevel" c_th3f_getcontourlevel ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetContourLevelPad"-               c_th3f_getcontourlevelpad :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetContourLevelPad" c_th3f_getcontourlevelpad+               :: Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBin"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetBin"                c_th3f_getbin :: Ptr RawTH3F -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinCenter"-               c_th3f_getbincenter :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinCenter" c_th3f_getbincenter ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinContent1"-               c_th3f_getbincontent1 :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinContent1" c_th3f_getbincontent1 ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinContent2"-               c_th3f_getbincontent2 :: Ptr RawTH3F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinContent2" c_th3f_getbincontent2 ::+               Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinContent3"-               c_th3f_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinContent3" c_th3f_getbincontent3 ::                Ptr RawTH3F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinError1"-               c_th3f_getbinerror1 :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinError1" c_th3f_getbinerror1 ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinError2"-               c_th3f_getbinerror2 :: Ptr RawTH3F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinError2" c_th3f_getbinerror2 ::+               Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinError3"-               c_th3f_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinError3" c_th3f_getbinerror3 ::                Ptr RawTH3F -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinLowEdge"-               c_th3f_getbinlowedge :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinLowEdge" c_th3f_getbinlowedge ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetBinWidth"-               c_th3f_getbinwidth :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetBinWidth" c_th3f_getbinwidth ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetCellContent"-               c_th3f_getcellcontent :: Ptr RawTH3F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetCellContent" c_th3f_getcellcontent ::+               Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetCellError"-               c_th3f_getcellerror :: Ptr RawTH3F -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetCellError" c_th3f_getcellerror ::+               Ptr RawTH3F -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetEntries"-               c_th3f_getentries :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetEntries" c_th3f_getentries ::+               Ptr RawTH3F -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3F.h TH3F_GetEffectiveEntries"                c_th3f_geteffectiveentries :: Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetFunction"-               c_th3f_getfunction :: Ptr RawTH3F -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetFunction" c_th3f_getfunction ::+               Ptr RawTH3F -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetDimension"-               c_th3f_getdimension :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetDimension" c_th3f_getdimension ::+               Ptr RawTH3F -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetKurtosis"-               c_th3f_getkurtosis :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetKurtosis" c_th3f_getkurtosis ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetLowEdge"-               c_th3f_getlowedge :: Ptr RawTH3F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetLowEdge" c_th3f_getlowedge ::+               Ptr RawTH3F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_getMaximumTH1"-               c_th3f_getmaximumth1 :: Ptr RawTH3F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getMaximumTH1" c_th3f_getmaximumth1 ::+               Ptr RawTH3F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMaximumBin"-               c_th3f_getmaximumbin :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMaximumBin" c_th3f_getmaximumbin ::+               Ptr RawTH3F -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMaximumStored"-               c_th3f_getmaximumstored :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMaximumStored" c_th3f_getmaximumstored ::+               Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_getMinimumTH1"-               c_th3f_getminimumth1 :: Ptr RawTH3F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getMinimumTH1" c_th3f_getminimumth1 ::+               Ptr RawTH3F -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMinimumBin"-               c_th3f_getminimumbin :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMinimumBin" c_th3f_getminimumbin ::+               Ptr RawTH3F -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMinimumStored"-               c_th3f_getminimumstored :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMinimumStored" c_th3f_getminimumstored ::+               Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMean"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetMean"                c_th3f_getmean :: Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMeanError"-               c_th3f_getmeanerror :: Ptr RawTH3F -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMeanError" c_th3f_getmeanerror ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetNbinsX"                c_th3f_getnbinsx :: Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetNbinsY"                c_th3f_getnbinsy :: Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetNbinsZ"                c_th3f_getnbinsz :: Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_getQuantilesTH1"-               c_th3f_getquantilesth1 ::-               Ptr RawTH3F -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_getQuantilesTH1" c_th3f_getquantilesth1 ::+               Ptr RawTH3F -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetRandom"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetRandom"                c_th3f_getrandom :: Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetStats"-               c_th3f_getstats :: Ptr RawTH3F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetStats"+               c_th3f_getstats :: Ptr RawTH3F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetSumOfWeights"-               c_th3f_getsumofweights :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetSumOfWeights" c_th3f_getsumofweights ::+               Ptr RawTH3F -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetSumw2"                c_th3f_getsumw2 :: Ptr RawTH3F -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetSumw2N"                c_th3f_getsumw2n :: Ptr RawTH3F -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetRMS"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetRMS"                c_th3f_getrms :: Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetRMSError"-               c_th3f_getrmserror :: Ptr RawTH3F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3F.h TH3F_GetSkewness"-               c_th3f_getskewness :: Ptr RawTH3F -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3F.h TH3F_integral1"-               c_th3f_integral1 ::-               Ptr RawTH3F -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3F.h TH3F_interpolate1"-               c_th3f_interpolate1 :: Ptr RawTH3F -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetRMSError" c_th3f_getrmserror ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_interpolate2"-               c_th3f_interpolate2 ::-               Ptr RawTH3F -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetSkewness" c_th3f_getskewness ::+               Ptr RawTH3F -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_interpolate3"-               c_th3f_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_interpolate3" c_th3f_interpolate3 ::                Ptr RawTH3F -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_KolmogorovTest"-               c_th3f_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_KolmogorovTest" c_th3f_kolmogorovtest ::                Ptr RawTH3F -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3F.h TH3F_LabelsDeflate"-               c_th3f_labelsdeflate :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_LabelsDeflate" c_th3f_labelsdeflate ::+               Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_LabelsInflate"-               c_th3f_labelsinflate :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_LabelsInflate" c_th3f_labelsinflate ::+               Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_LabelsOption"-               c_th3f_labelsoption :: Ptr RawTH3F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_LabelsOption" c_th3f_labelsoption ::+               Ptr RawTH3F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_multiflyF"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_multiflyF"                c_th3f_multiflyf :: Ptr RawTH3F -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Multiply"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Multiply"                c_th3f_multiply ::                Ptr RawTH3F ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_PutStats"-               c_th3f_putstats :: Ptr RawTH3F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_PutStats"+               c_th3f_putstats :: Ptr RawTH3F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Rebin" c_th3f_rebin-               ::-               Ptr RawTH3F -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Rebin"+               c_th3f_rebin ::+               Ptr RawTH3F -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3F.h TH3F_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_RebinAxis"                c_th3f_rebinaxis :: Ptr RawTH3F -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Rebuild"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Rebuild"                c_th3f_rebuild :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_RecursiveRemove"-               c_th3f_recursiveremove :: Ptr RawTH3F -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_RecursiveRemove" c_th3f_recursiveremove ::+               Ptr RawTH3F -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Reset" c_th3f_reset-               :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Reset"+               c_th3f_reset :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_ResetStats"-               c_th3f_resetstats :: Ptr RawTH3F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_ResetStats" c_th3f_resetstats ::+               Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Scale" c_th3f_scale-               :: Ptr RawTH3F -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Scale"+               c_th3f_scale :: Ptr RawTH3F -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setAxisColorA"-               c_th3f_setaxiscolora :: Ptr RawTH3F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setAxisColorA" c_th3f_setaxiscolora ::+               Ptr RawTH3F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetAxisRange"-               c_th3f_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetAxisRange" c_th3f_setaxisrange ::                Ptr RawTH3F -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetBarOffset"-               c_th3f_setbaroffset :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetBarOffset" c_th3f_setbaroffset ::+               Ptr RawTH3F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetBarWidth"-               c_th3f_setbarwidth :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetBarWidth" c_th3f_setbarwidth ::+               Ptr RawTH3F -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinContent1"-               c_th3f_setbincontent1 :: Ptr RawTH3F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinContent1" c_th3f_setbincontent1 ::+               Ptr RawTH3F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinContent2"-               c_th3f_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinContent2" c_th3f_setbincontent2 ::                Ptr RawTH3F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinContent3"-               c_th3f_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinContent3" c_th3f_setbincontent3 ::                Ptr RawTH3F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinError1"-               c_th3f_setbinerror1 :: Ptr RawTH3F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinError1" c_th3f_setbinerror1 ::+               Ptr RawTH3F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinError2"-               c_th3f_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinError2" c_th3f_setbinerror2 ::                Ptr RawTH3F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBinError3"-               c_th3f_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setBinError3" c_th3f_setbinerror3 ::                Ptr RawTH3F -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBins1"-               c_th3f_setbins1 :: Ptr RawTH3F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_setBins1"+               c_th3f_setbins1 :: Ptr RawTH3F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBins2"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_setBins2"                c_th3f_setbins2 ::-               Ptr RawTH3F ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3F -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setBins3"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_setBins3"                c_th3f_setbins3 ::                Ptr RawTH3F ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetBinsLength"-               c_th3f_setbinslength :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetBinsLength" c_th3f_setbinslength ::+               Ptr RawTH3F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetBuffer"                c_th3f_setbuffer :: Ptr RawTH3F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetCellContent"-               c_th3f_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetCellContent" c_th3f_setcellcontent ::                Ptr RawTH3F -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetContent"-               c_th3f_setcontent :: Ptr RawTH3F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetContent" c_th3f_setcontent ::+               Ptr RawTH3F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetContour"-               c_th3f_setcontour :: Ptr RawTH3F -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetContour" c_th3f_setcontour ::+               Ptr RawTH3F -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetContourLevel"-               c_th3f_setcontourlevel :: Ptr RawTH3F -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetContourLevel" c_th3f_setcontourlevel ::+               Ptr RawTH3F -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetDirectory"-               c_th3f_setdirectory :: Ptr RawTH3F -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetDirectory" c_th3f_setdirectory ::+               Ptr RawTH3F -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetEntries"-               c_th3f_setentries :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetEntries" c_th3f_setentries ::+               Ptr RawTH3F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetError"-               c_th3f_seterror :: Ptr RawTH3F -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetError"+               c_th3f_seterror :: Ptr RawTH3F -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setLabelColorA"-               c_th3f_setlabelcolora :: Ptr RawTH3F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setLabelColorA" c_th3f_setlabelcolora ::+               Ptr RawTH3F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setLabelSizeA"-               c_th3f_setlabelsizea :: Ptr RawTH3F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setLabelSizeA" c_th3f_setlabelsizea ::+               Ptr RawTH3F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setLabelFontA"-               c_th3f_setlabelfonta :: Ptr RawTH3F -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setLabelFontA" c_th3f_setlabelfonta ::+               Ptr RawTH3F -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_setLabelOffsetA"-               c_th3f_setlabeloffseta ::-               Ptr RawTH3F -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_setLabelOffsetA" c_th3f_setlabeloffseta ::+               Ptr RawTH3F -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetMaximum"-               c_th3f_setmaximum :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetMaximum" c_th3f_setmaximum ::+               Ptr RawTH3F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetMinimum"-               c_th3f_setminimum :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetMinimum" c_th3f_setminimum ::+               Ptr RawTH3F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetNormFactor"-               c_th3f_setnormfactor :: Ptr RawTH3F -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetNormFactor" c_th3f_setnormfactor ::+               Ptr RawTH3F -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetStats"-               c_th3f_setstats :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetStats"+               c_th3f_setstats :: Ptr RawTH3F -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetOption"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetOption"                c_th3f_setoption :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetXTitle"                c_th3f_setxtitle :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetYTitle"                c_th3f_setytitle :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetZTitle"                c_th3f_setztitle :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_ShowBackground"-               c_th3f_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_ShowBackground" c_th3f_showbackground ::                Ptr RawTH3F -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3F.h TH3F_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_ShowPeaks"                c_th3f_showpeaks ::                Ptr RawTH3F -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_Smooth"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Smooth"                c_th3f_smooth :: Ptr RawTH3F -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Sumw2" c_th3f_sumw2-               :: Ptr RawTH3F -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Sumw2"+               c_th3f_sumw2 :: Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetName"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetName"                c_th3f_setname :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetNameTitle"-               c_th3f_setnametitle :: Ptr RawTH3F -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetNameTitle" c_th3f_setnametitle ::+               Ptr RawTH3F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetTitle"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetTitle"                c_th3f_settitle :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetLineColor"-               c_th3f_getlinecolor :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetLineColor" c_th3f_getlinecolor ::+               Ptr RawTH3F -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetLineStyle"-               c_th3f_getlinestyle :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetLineStyle" c_th3f_getlinestyle ::+               Ptr RawTH3F -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetLineWidth"-               c_th3f_getlinewidth :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetLineWidth" c_th3f_getlinewidth ::+               Ptr RawTH3F -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_ResetAttLine"-               c_th3f_resetattline :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_ResetAttLine" c_th3f_resetattline ::+               Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetLineAttributes"-               c_th3f_setlineattributes :: Ptr RawTH3F -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetLineAttributes" c_th3f_setlineattributes+               :: Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetLineColor"-               c_th3f_setlinecolor :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetLineColor" c_th3f_setlinecolor ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetLineStyle"-               c_th3f_setlinestyle :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetLineStyle" c_th3f_setlinestyle ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetLineWidth"-               c_th3f_setlinewidth :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetLineWidth" c_th3f_setlinewidth ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetFillColor"-               c_th3f_setfillcolor :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetFillColor" c_th3f_setfillcolor ::+               Ptr RawTH3F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetFillStyle"-               c_th3f_setfillstyle :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetFillStyle" c_th3f_setfillstyle ::+               Ptr RawTH3F -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMarkerColor"-               c_th3f_getmarkercolor :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMarkerColor" c_th3f_getmarkercolor ::+               Ptr RawTH3F -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMarkerStyle"-               c_th3f_getmarkerstyle :: Ptr RawTH3F -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMarkerStyle" c_th3f_getmarkerstyle ::+               Ptr RawTH3F -> IO CShort -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetMarkerSize"-               c_th3f_getmarkersize :: Ptr RawTH3F -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_GetMarkerSize" c_th3f_getmarkersize ::+               Ptr RawTH3F -> IO CFloat -foreign import ccall safe "HROOTHistTH3F.h TH3F_ResetAttMarker"-               c_th3f_resetattmarker :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_ResetAttMarker" c_th3f_resetattmarker ::+               Ptr RawTH3F -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3F.h TH3F_SetMarkerAttributes"                c_th3f_setmarkerattributes :: Ptr RawTH3F -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetMarkerColor"-               c_th3f_setmarkercolor :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetMarkerColor" c_th3f_setmarkercolor ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetMarkerStyle"-               c_th3f_setmarkerstyle :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetMarkerStyle" c_th3f_setmarkerstyle ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SetMarkerSize"-               c_th3f_setmarkersize :: Ptr RawTH3F -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_SetMarkerSize" c_th3f_setmarkersize ::+               Ptr RawTH3F -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Draw" c_th3f_draw-               :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Clear"+               c_th3f_clear :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_FindObject"-               c_th3f_findobject :: Ptr RawTH3F -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Draw"+               c_th3f_draw :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_GetName"+foreign import ccall interruptible+               "HROOTHistTH3F.h TH3F_FindObject" c_th3f_findobject ::+               Ptr RawTH3F -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetName"                c_th3f_getname :: Ptr RawTH3F -> IO CString -foreign import ccall safe "HROOTHistTH3F.h TH3F_IsA" c_th3f_isa ::-               Ptr RawTH3F -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_IsA"+               c_th3f_isa :: Ptr RawTH3F -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3F.h TH3F_Paint" c_th3f_paint-               :: Ptr RawTH3F -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Paint"+               c_th3f_paint :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_printObj"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_printObj"                c_th3f_printobj :: Ptr RawTH3F -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_SaveAs"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SaveAs"                c_th3f_saveas :: Ptr RawTH3F -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3F.h TH3F_Write" c_th3f_write-               :: Ptr RawTH3F -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Write"+               c_th3f_write :: Ptr RawTH3F -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3F.h TH3F_delete"+foreign import ccall interruptible "HROOTHistTH3F.h TH3F_Write_"+               c_th3f_write_ :: Ptr RawTH3F -> IO CInt++foreign import ccall interruptible "HROOTHistTH3F.h TH3F_delete"                c_th3f_delete :: Ptr RawTH3F -> IO ()++foreign import ccall interruptible "HROOTHistTH3F.h TH3F_GetAt"+               c_th3f_getat :: Ptr RawTH3F -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetArray"+               c_th3f_setarray :: Ptr RawTH3F -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH3F.h TH3F_SetAt"+               c_th3f_setat :: Ptr RawTH3F -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH3F/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3F.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3F.RawType import HROOT.Hist.TH3F.FFI import HROOT.Hist.TH3F.Interface import HROOT.Hist.TH3F.Cast+import HROOT.Hist.TH3F.RawType+import HROOT.Hist.TH3F.Cast+import HROOT.Hist.TH3F.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH3F TH3F+instance () => ITH3F (TH3F) where -instance ITH3 TH3F where+instance () => ITH3 (TH3F) where         fill3 = xform3 c_th3f_fill3         fill3w = xform4 c_th3f_fill3w         fitSlicesZ = xform7 c_th3f_fitslicesz@@ -77,13 +86,12 @@         rebinZ3 = xform2 c_th3f_rebinz3         rebin3D = xform4 c_th3f_rebin3d -instance ITArrayF TH3F+instance () => ITArrayF (TH3F) where -instance ITH1 TH3F where+instance () => ITH1 (TH3F) where         add = xform2 c_th3f_add         addBinContent = xform2 c_th3f_addbincontent         chi2Test = xform3 c_th3f_chi2test-        computeIntegral = xform0 c_th3f_computeintegral         directoryAutoAdd = xform1 c_th3f_directoryautoadd         divide = xform5 c_th3f_divide         drawCopyTH1 = xform1 c_th3f_drawcopyth1@@ -155,9 +163,6 @@         getRMS = xform1 c_th3f_getrms         getRMSError = xform1 c_th3f_getrmserror         getSkewness = xform1 c_th3f_getskewness-        integral1 = xform3 c_th3f_integral1-        interpolate1 = xform1 c_th3f_interpolate1-        interpolate2 = xform2 c_th3f_interpolate2         interpolate3 = xform3 c_th3f_interpolate3         kolmogorovTest = xform2 c_th3f_kolmogorovtest         labelsDeflate = xform1 c_th3f_labelsdeflate@@ -212,14 +217,14 @@         smooth = xform2 c_th3f_smooth         sumw2 = xform0 c_th3f_sumw2 -instance ITAtt3D TH3F+instance () => ITAtt3D (TH3F) where -instance ITNamed TH3F where+instance () => ITNamed (TH3F) where         setName = xform1 c_th3f_setname         setNameTitle = xform2 c_th3f_setnametitle         setTitle = xform1 c_th3f_settitle -instance ITAttLine TH3F where+instance () => ITAttLine (TH3F) where         getLineColor = xform0 c_th3f_getlinecolor         getLineStyle = xform0 c_th3f_getlinestyle         getLineWidth = xform0 c_th3f_getlinewidth@@ -229,11 +234,11 @@         setLineStyle = xform1 c_th3f_setlinestyle         setLineWidth = xform1 c_th3f_setlinewidth -instance ITAttFill TH3F where+instance () => ITAttFill (TH3F) where         setFillColor = xform1 c_th3f_setfillcolor         setFillStyle = xform1 c_th3f_setfillstyle -instance ITAttMarker TH3F where+instance () => ITAttMarker (TH3F) where         getMarkerColor = xform0 c_th3f_getmarkercolor         getMarkerStyle = xform0 c_th3f_getmarkerstyle         getMarkerSize = xform0 c_th3f_getmarkersize@@ -243,7 +248,8 @@         setMarkerStyle = xform1 c_th3f_setmarkerstyle         setMarkerSize = xform1 c_th3f_setmarkersize -instance ITObject TH3F where+instance () => ITObject (TH3F) where+        clear = xform1 c_th3f_clear         draw = xform1 c_th3f_draw         findObject = xform1 c_th3f_findobject         getName = xform0 c_th3f_getname@@ -252,8 +258,12 @@         printObj = xform1 c_th3f_printobj         saveAs = xform2 c_th3f_saveas         write = xform3 c_th3f_write+        write_ = xform0 c_th3f_write_ -instance IDeletable TH3F where+instance () => IDeletable (TH3F) where         delete = xform0 c_th3f_delete -instance ITArray TH3F+instance () => ITArray (TH3F) where+        getAt = xform1 c_th3f_getat+        setArray = xform1 c_th3f_setarray+        setAt = xform2 c_th3f_setat
src/HROOT/Hist/TH3F/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3F.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH3.Interface import HROOT.Core.TArrayF.Interface -class (ITH3 a, ITArrayF a) => ITH3F a+class (ITH3 a, ITArrayF a) => ITH3F a where  upcastTH3F :: forall a . (FPtr a, ITH3F a) => a -> TH3F upcastTH3F h
src/HROOT/Hist/TH3F/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3F  newtype TH3F = TH3F (Ptr RawTH3F)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH3F where+instance () => FPtr (TH3F) where         type Raw TH3F = RawTH3F         get_fptr (TH3F ptr) = ptr         cast_fptr_to_obj = TH3F
src/HROOT/Hist/TH3I/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3I.RawType import HROOT.Hist.TH3I.Interface -instance (ITH3I a, FPtr a) => Castable a (Ptr RawTH3I) where+instance (ITH3I a, FPtr a) => Castable (a) (Ptr RawTH3I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3I (Ptr RawTH3I) where+instance () => Castable (TH3I) (Ptr RawTH3I) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3I/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3I.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH3I.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TH3.RawType@@ -13,558 +16,646 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH3I.h TH3I_fill3" c_th3i_fill3-               :: Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_fill3"+               c_th3i_fill3 ::+               Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_fill3w"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_fill3w"                c_th3i_fill3w ::                Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_FitSlicesZ"-               c_th3i_fitslicesz ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FitSlicesZ" c_th3i_fitslicesz ::                Ptr RawTH3I ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3I.h TH3I_getCorrelationFactor3"                c_th3i_getcorrelationfactor3 ::                Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_getCovariance3"-               c_th3i_getcovariance3 :: Ptr RawTH3I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getCovariance3" c_th3i_getcovariance3 ::+               Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_rebinX3"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_rebinX3"                c_th3i_rebinx3 :: Ptr RawTH3I -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3I.h TH3I_rebinY3"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_rebinY3"                c_th3i_rebiny3 :: Ptr RawTH3I -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3I.h TH3I_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_rebinZ3"                c_th3i_rebinz3 :: Ptr RawTH3I -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3I.h TH3I_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Rebin3D"                c_th3i_rebin3d ::                Ptr RawTH3I -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3I.h TH3I_Add" c_th3i_add ::-               Ptr RawTH3I -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Add"+               c_th3i_add :: Ptr RawTH3I -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_AddBinContent"-               c_th3i_addbincontent :: Ptr RawTH3I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_AddBinContent" c_th3i_addbincontent ::+               Ptr RawTH3I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Chi2Test"                c_th3i_chi2test ::-               Ptr RawTH3I -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3I.h TH3I_ComputeIntegral"-               c_th3i_computeintegral :: Ptr RawTH3I -> IO CDouble+               Ptr RawTH3I -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_DirectoryAutoAdd"-               c_th3i_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_DirectoryAutoAdd" c_th3i_directoryautoadd ::                Ptr RawTH3I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Divide"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Divide"                c_th3i_divide ::                Ptr RawTH3I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_drawCopyTH1"-               c_th3i_drawcopyth1 :: Ptr RawTH3I -> CString -> IO (Ptr RawTH3I)+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_drawCopyTH1" c_th3i_drawcopyth1 ::+               Ptr RawTH3I -> CString -> IO (Ptr RawTH3I) -foreign import ccall safe "HROOTHistTH3I.h TH3I_DrawNormalized"-               c_th3i_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_DrawNormalized" c_th3i_drawnormalized ::                Ptr RawTH3I -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3I.h TH3I_drawPanelTH1"-               c_th3i_drawpanelth1 :: Ptr RawTH3I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_drawPanelTH1" c_th3i_drawpanelth1 ::+               Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_BufferEmpty"-               c_th3i_bufferempty :: Ptr RawTH3I -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_BufferEmpty" c_th3i_bufferempty ::+               Ptr RawTH3I -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_evalF" c_th3i_evalf-               :: Ptr RawTH3I -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_evalF"+               c_th3i_evalf :: Ptr RawTH3I -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_FFT" c_th3i_fft ::+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_FFT"+               c_th3i_fft ::                Ptr RawTH3I -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3I.h TH3I_fill1" c_th3i_fill1-               :: Ptr RawTH3I -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_fill1"+               c_th3i_fill1 :: Ptr RawTH3I -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_fill1w"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_fill1w"                c_th3i_fill1w :: Ptr RawTH3I -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_fillN1"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_fillN1"                c_th3i_filln1 ::-               Ptr RawTH3I ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH3I -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_FillRandom"-               c_th3i_fillrandom :: Ptr RawTH3I -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FillRandom" c_th3i_fillrandom ::+               Ptr RawTH3I -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_FindBin"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_FindBin"                c_th3i_findbin ::                Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_FindFixBin"-               c_th3i_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FindFixBin" c_th3i_findfixbin ::                Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_FindFirstBinAbove"-               c_th3i_findfirstbinabove ::-               Ptr RawTH3I -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FindFirstBinAbove" c_th3i_findfirstbinabove+               :: Ptr RawTH3I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_FindLastBinAbove"-               c_th3i_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FindLastBinAbove" c_th3i_findlastbinabove ::                Ptr RawTH3I -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_Fit" c_th3i_fit ::+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Fit"+               c_th3i_fit ::                Ptr RawTH3I ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_FitPanelTH1"-               c_th3i_fitpanelth1 :: Ptr RawTH3I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FitPanelTH1" c_th3i_fitpanelth1 ::+               Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_getNdivisionA"-               c_th3i_getndivisiona :: Ptr RawTH3I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getNdivisionA" c_th3i_getndivisiona ::+               Ptr RawTH3I -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_getAxisColorA"-               c_th3i_getaxiscolora :: Ptr RawTH3I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getAxisColorA" c_th3i_getaxiscolora ::+               Ptr RawTH3I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_getLabelColorA"-               c_th3i_getlabelcolora :: Ptr RawTH3I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getLabelColorA" c_th3i_getlabelcolora ::+               Ptr RawTH3I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_getLabelFontA"-               c_th3i_getlabelfonta :: Ptr RawTH3I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getLabelFontA" c_th3i_getlabelfonta ::+               Ptr RawTH3I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_getLabelOffsetA"-               c_th3i_getlabeloffseta :: Ptr RawTH3I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getLabelOffsetA" c_th3i_getlabeloffseta ::+               Ptr RawTH3I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_getLabelSizeA"-               c_th3i_getlabelsizea :: Ptr RawTH3I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getLabelSizeA" c_th3i_getlabelsizea ::+               Ptr RawTH3I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_getTitleFontA"-               c_th3i_gettitlefonta :: Ptr RawTH3I -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getTitleFontA" c_th3i_gettitlefonta ::+               Ptr RawTH3I -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_getTitleOffsetA"-               c_th3i_gettitleoffseta :: Ptr RawTH3I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getTitleOffsetA" c_th3i_gettitleoffseta ::+               Ptr RawTH3I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_getTitleSizeA"-               c_th3i_gettitlesizea :: Ptr RawTH3I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getTitleSizeA" c_th3i_gettitlesizea ::+               Ptr RawTH3I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_getTickLengthA"-               c_th3i_getticklengtha :: Ptr RawTH3I -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getTickLengthA" c_th3i_getticklengtha ::+               Ptr RawTH3I -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBarOffset"-               c_th3i_getbaroffset :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBarOffset" c_th3i_getbaroffset ::+               Ptr RawTH3I -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBarWidth"-               c_th3i_getbarwidth :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBarWidth" c_th3i_getbarwidth ::+               Ptr RawTH3I -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetContour"-               c_th3i_getcontour :: Ptr RawTH3I -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetContour" c_th3i_getcontour ::+               Ptr RawTH3I -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetContourLevel"-               c_th3i_getcontourlevel :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetContourLevel" c_th3i_getcontourlevel ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetContourLevelPad"-               c_th3i_getcontourlevelpad :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetContourLevelPad" c_th3i_getcontourlevelpad+               :: Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBin"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetBin"                c_th3i_getbin :: Ptr RawTH3I -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinCenter"-               c_th3i_getbincenter :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinCenter" c_th3i_getbincenter ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinContent1"-               c_th3i_getbincontent1 :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinContent1" c_th3i_getbincontent1 ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinContent2"-               c_th3i_getbincontent2 :: Ptr RawTH3I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinContent2" c_th3i_getbincontent2 ::+               Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinContent3"-               c_th3i_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinContent3" c_th3i_getbincontent3 ::                Ptr RawTH3I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinError1"-               c_th3i_getbinerror1 :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinError1" c_th3i_getbinerror1 ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinError2"-               c_th3i_getbinerror2 :: Ptr RawTH3I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinError2" c_th3i_getbinerror2 ::+               Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinError3"-               c_th3i_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinError3" c_th3i_getbinerror3 ::                Ptr RawTH3I -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinLowEdge"-               c_th3i_getbinlowedge :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinLowEdge" c_th3i_getbinlowedge ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetBinWidth"-               c_th3i_getbinwidth :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetBinWidth" c_th3i_getbinwidth ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetCellContent"-               c_th3i_getcellcontent :: Ptr RawTH3I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetCellContent" c_th3i_getcellcontent ::+               Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetCellError"-               c_th3i_getcellerror :: Ptr RawTH3I -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetCellError" c_th3i_getcellerror ::+               Ptr RawTH3I -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetEntries"-               c_th3i_getentries :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetEntries" c_th3i_getentries ::+               Ptr RawTH3I -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3I.h TH3I_GetEffectiveEntries"                c_th3i_geteffectiveentries :: Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetFunction"-               c_th3i_getfunction :: Ptr RawTH3I -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetFunction" c_th3i_getfunction ::+               Ptr RawTH3I -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetDimension"-               c_th3i_getdimension :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetDimension" c_th3i_getdimension ::+               Ptr RawTH3I -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetKurtosis"-               c_th3i_getkurtosis :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetKurtosis" c_th3i_getkurtosis ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetLowEdge"-               c_th3i_getlowedge :: Ptr RawTH3I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetLowEdge" c_th3i_getlowedge ::+               Ptr RawTH3I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_getMaximumTH1"-               c_th3i_getmaximumth1 :: Ptr RawTH3I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getMaximumTH1" c_th3i_getmaximumth1 ::+               Ptr RawTH3I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMaximumBin"-               c_th3i_getmaximumbin :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMaximumBin" c_th3i_getmaximumbin ::+               Ptr RawTH3I -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMaximumStored"-               c_th3i_getmaximumstored :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMaximumStored" c_th3i_getmaximumstored ::+               Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_getMinimumTH1"-               c_th3i_getminimumth1 :: Ptr RawTH3I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getMinimumTH1" c_th3i_getminimumth1 ::+               Ptr RawTH3I -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMinimumBin"-               c_th3i_getminimumbin :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMinimumBin" c_th3i_getminimumbin ::+               Ptr RawTH3I -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMinimumStored"-               c_th3i_getminimumstored :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMinimumStored" c_th3i_getminimumstored ::+               Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMean"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetMean"                c_th3i_getmean :: Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMeanError"-               c_th3i_getmeanerror :: Ptr RawTH3I -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMeanError" c_th3i_getmeanerror ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetNbinsX"                c_th3i_getnbinsx :: Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetNbinsY"                c_th3i_getnbinsy :: Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetNbinsZ"                c_th3i_getnbinsz :: Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_getQuantilesTH1"-               c_th3i_getquantilesth1 ::-               Ptr RawTH3I -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_getQuantilesTH1" c_th3i_getquantilesth1 ::+               Ptr RawTH3I -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetRandom"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetRandom"                c_th3i_getrandom :: Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetStats"-               c_th3i_getstats :: Ptr RawTH3I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetStats"+               c_th3i_getstats :: Ptr RawTH3I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetSumOfWeights"-               c_th3i_getsumofweights :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetSumOfWeights" c_th3i_getsumofweights ::+               Ptr RawTH3I -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetSumw2"                c_th3i_getsumw2 :: Ptr RawTH3I -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetSumw2N"                c_th3i_getsumw2n :: Ptr RawTH3I -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetRMS"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetRMS"                c_th3i_getrms :: Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetRMSError"-               c_th3i_getrmserror :: Ptr RawTH3I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3I.h TH3I_GetSkewness"-               c_th3i_getskewness :: Ptr RawTH3I -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3I.h TH3I_integral1"-               c_th3i_integral1 ::-               Ptr RawTH3I -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3I.h TH3I_interpolate1"-               c_th3i_interpolate1 :: Ptr RawTH3I -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetRMSError" c_th3i_getrmserror ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_interpolate2"-               c_th3i_interpolate2 ::-               Ptr RawTH3I -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetSkewness" c_th3i_getskewness ::+               Ptr RawTH3I -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_interpolate3"-               c_th3i_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_interpolate3" c_th3i_interpolate3 ::                Ptr RawTH3I -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_KolmogorovTest"-               c_th3i_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_KolmogorovTest" c_th3i_kolmogorovtest ::                Ptr RawTH3I -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3I.h TH3I_LabelsDeflate"-               c_th3i_labelsdeflate :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_LabelsDeflate" c_th3i_labelsdeflate ::+               Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_LabelsInflate"-               c_th3i_labelsinflate :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_LabelsInflate" c_th3i_labelsinflate ::+               Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_LabelsOption"-               c_th3i_labelsoption :: Ptr RawTH3I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_LabelsOption" c_th3i_labelsoption ::+               Ptr RawTH3I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_multiflyF"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_multiflyF"                c_th3i_multiflyf :: Ptr RawTH3I -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Multiply"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Multiply"                c_th3i_multiply ::                Ptr RawTH3I ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_PutStats"-               c_th3i_putstats :: Ptr RawTH3I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_PutStats"+               c_th3i_putstats :: Ptr RawTH3I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Rebin" c_th3i_rebin-               ::-               Ptr RawTH3I -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Rebin"+               c_th3i_rebin ::+               Ptr RawTH3I -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3I.h TH3I_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_RebinAxis"                c_th3i_rebinaxis :: Ptr RawTH3I -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Rebuild"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Rebuild"                c_th3i_rebuild :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_RecursiveRemove"-               c_th3i_recursiveremove :: Ptr RawTH3I -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_RecursiveRemove" c_th3i_recursiveremove ::+               Ptr RawTH3I -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Reset" c_th3i_reset-               :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Reset"+               c_th3i_reset :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_ResetStats"-               c_th3i_resetstats :: Ptr RawTH3I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_ResetStats" c_th3i_resetstats ::+               Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Scale" c_th3i_scale-               :: Ptr RawTH3I -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Scale"+               c_th3i_scale :: Ptr RawTH3I -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setAxisColorA"-               c_th3i_setaxiscolora :: Ptr RawTH3I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setAxisColorA" c_th3i_setaxiscolora ::+               Ptr RawTH3I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetAxisRange"-               c_th3i_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetAxisRange" c_th3i_setaxisrange ::                Ptr RawTH3I -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetBarOffset"-               c_th3i_setbaroffset :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetBarOffset" c_th3i_setbaroffset ::+               Ptr RawTH3I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetBarWidth"-               c_th3i_setbarwidth :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetBarWidth" c_th3i_setbarwidth ::+               Ptr RawTH3I -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinContent1"-               c_th3i_setbincontent1 :: Ptr RawTH3I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinContent1" c_th3i_setbincontent1 ::+               Ptr RawTH3I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinContent2"-               c_th3i_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinContent2" c_th3i_setbincontent2 ::                Ptr RawTH3I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinContent3"-               c_th3i_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinContent3" c_th3i_setbincontent3 ::                Ptr RawTH3I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinError1"-               c_th3i_setbinerror1 :: Ptr RawTH3I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinError1" c_th3i_setbinerror1 ::+               Ptr RawTH3I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinError2"-               c_th3i_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinError2" c_th3i_setbinerror2 ::                Ptr RawTH3I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBinError3"-               c_th3i_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setBinError3" c_th3i_setbinerror3 ::                Ptr RawTH3I -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBins1"-               c_th3i_setbins1 :: Ptr RawTH3I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_setBins1"+               c_th3i_setbins1 :: Ptr RawTH3I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBins2"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_setBins2"                c_th3i_setbins2 ::-               Ptr RawTH3I ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3I -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setBins3"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_setBins3"                c_th3i_setbins3 ::                Ptr RawTH3I ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetBinsLength"-               c_th3i_setbinslength :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetBinsLength" c_th3i_setbinslength ::+               Ptr RawTH3I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetBuffer"                c_th3i_setbuffer :: Ptr RawTH3I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetCellContent"-               c_th3i_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetCellContent" c_th3i_setcellcontent ::                Ptr RawTH3I -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetContent"-               c_th3i_setcontent :: Ptr RawTH3I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetContent" c_th3i_setcontent ::+               Ptr RawTH3I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetContour"-               c_th3i_setcontour :: Ptr RawTH3I -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetContour" c_th3i_setcontour ::+               Ptr RawTH3I -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetContourLevel"-               c_th3i_setcontourlevel :: Ptr RawTH3I -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetContourLevel" c_th3i_setcontourlevel ::+               Ptr RawTH3I -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetDirectory"-               c_th3i_setdirectory :: Ptr RawTH3I -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetDirectory" c_th3i_setdirectory ::+               Ptr RawTH3I -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetEntries"-               c_th3i_setentries :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetEntries" c_th3i_setentries ::+               Ptr RawTH3I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetError"-               c_th3i_seterror :: Ptr RawTH3I -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetError"+               c_th3i_seterror :: Ptr RawTH3I -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setLabelColorA"-               c_th3i_setlabelcolora :: Ptr RawTH3I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setLabelColorA" c_th3i_setlabelcolora ::+               Ptr RawTH3I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setLabelSizeA"-               c_th3i_setlabelsizea :: Ptr RawTH3I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setLabelSizeA" c_th3i_setlabelsizea ::+               Ptr RawTH3I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setLabelFontA"-               c_th3i_setlabelfonta :: Ptr RawTH3I -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setLabelFontA" c_th3i_setlabelfonta ::+               Ptr RawTH3I -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_setLabelOffsetA"-               c_th3i_setlabeloffseta ::-               Ptr RawTH3I -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_setLabelOffsetA" c_th3i_setlabeloffseta ::+               Ptr RawTH3I -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetMaximum"-               c_th3i_setmaximum :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetMaximum" c_th3i_setmaximum ::+               Ptr RawTH3I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetMinimum"-               c_th3i_setminimum :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetMinimum" c_th3i_setminimum ::+               Ptr RawTH3I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetNormFactor"-               c_th3i_setnormfactor :: Ptr RawTH3I -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetNormFactor" c_th3i_setnormfactor ::+               Ptr RawTH3I -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetStats"-               c_th3i_setstats :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetStats"+               c_th3i_setstats :: Ptr RawTH3I -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetOption"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetOption"                c_th3i_setoption :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetXTitle"                c_th3i_setxtitle :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetYTitle"                c_th3i_setytitle :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetZTitle"                c_th3i_setztitle :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_ShowBackground"-               c_th3i_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_ShowBackground" c_th3i_showbackground ::                Ptr RawTH3I -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3I.h TH3I_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_ShowPeaks"                c_th3i_showpeaks ::                Ptr RawTH3I -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_Smooth"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Smooth"                c_th3i_smooth :: Ptr RawTH3I -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Sumw2" c_th3i_sumw2-               :: Ptr RawTH3I -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Sumw2"+               c_th3i_sumw2 :: Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetName"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetName"                c_th3i_setname :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetNameTitle"-               c_th3i_setnametitle :: Ptr RawTH3I -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetNameTitle" c_th3i_setnametitle ::+               Ptr RawTH3I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetTitle"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetTitle"                c_th3i_settitle :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetLineColor"-               c_th3i_getlinecolor :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetLineColor" c_th3i_getlinecolor ::+               Ptr RawTH3I -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetLineStyle"-               c_th3i_getlinestyle :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetLineStyle" c_th3i_getlinestyle ::+               Ptr RawTH3I -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetLineWidth"-               c_th3i_getlinewidth :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetLineWidth" c_th3i_getlinewidth ::+               Ptr RawTH3I -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_ResetAttLine"-               c_th3i_resetattline :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_ResetAttLine" c_th3i_resetattline ::+               Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetLineAttributes"-               c_th3i_setlineattributes :: Ptr RawTH3I -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetLineAttributes" c_th3i_setlineattributes+               :: Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetLineColor"-               c_th3i_setlinecolor :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetLineColor" c_th3i_setlinecolor ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetLineStyle"-               c_th3i_setlinestyle :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetLineStyle" c_th3i_setlinestyle ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetLineWidth"-               c_th3i_setlinewidth :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetLineWidth" c_th3i_setlinewidth ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetFillColor"-               c_th3i_setfillcolor :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetFillColor" c_th3i_setfillcolor ::+               Ptr RawTH3I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetFillStyle"-               c_th3i_setfillstyle :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetFillStyle" c_th3i_setfillstyle ::+               Ptr RawTH3I -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMarkerColor"-               c_th3i_getmarkercolor :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMarkerColor" c_th3i_getmarkercolor ::+               Ptr RawTH3I -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMarkerStyle"-               c_th3i_getmarkerstyle :: Ptr RawTH3I -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMarkerStyle" c_th3i_getmarkerstyle ::+               Ptr RawTH3I -> IO CShort -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetMarkerSize"-               c_th3i_getmarkersize :: Ptr RawTH3I -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_GetMarkerSize" c_th3i_getmarkersize ::+               Ptr RawTH3I -> IO CFloat -foreign import ccall safe "HROOTHistTH3I.h TH3I_ResetAttMarker"-               c_th3i_resetattmarker :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_ResetAttMarker" c_th3i_resetattmarker ::+               Ptr RawTH3I -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3I.h TH3I_SetMarkerAttributes"                c_th3i_setmarkerattributes :: Ptr RawTH3I -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetMarkerColor"-               c_th3i_setmarkercolor :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetMarkerColor" c_th3i_setmarkercolor ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetMarkerStyle"-               c_th3i_setmarkerstyle :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetMarkerStyle" c_th3i_setmarkerstyle ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SetMarkerSize"-               c_th3i_setmarkersize :: Ptr RawTH3I -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_SetMarkerSize" c_th3i_setmarkersize ::+               Ptr RawTH3I -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Draw" c_th3i_draw-               :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Clear"+               c_th3i_clear :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_FindObject"-               c_th3i_findobject :: Ptr RawTH3I -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Draw"+               c_th3i_draw :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_GetName"+foreign import ccall interruptible+               "HROOTHistTH3I.h TH3I_FindObject" c_th3i_findobject ::+               Ptr RawTH3I -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetName"                c_th3i_getname :: Ptr RawTH3I -> IO CString -foreign import ccall safe "HROOTHistTH3I.h TH3I_IsA" c_th3i_isa ::-               Ptr RawTH3I -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_IsA"+               c_th3i_isa :: Ptr RawTH3I -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3I.h TH3I_Paint" c_th3i_paint-               :: Ptr RawTH3I -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Paint"+               c_th3i_paint :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_printObj"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_printObj"                c_th3i_printobj :: Ptr RawTH3I -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_SaveAs"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SaveAs"                c_th3i_saveas :: Ptr RawTH3I -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3I.h TH3I_Write" c_th3i_write-               :: Ptr RawTH3I -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Write"+               c_th3i_write :: Ptr RawTH3I -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3I.h TH3I_delete"+foreign import ccall interruptible "HROOTHistTH3I.h TH3I_Write_"+               c_th3i_write_ :: Ptr RawTH3I -> IO CInt++foreign import ccall interruptible "HROOTHistTH3I.h TH3I_delete"                c_th3i_delete :: Ptr RawTH3I -> IO ()++foreign import ccall interruptible "HROOTHistTH3I.h TH3I_GetAt"+               c_th3i_getat :: Ptr RawTH3I -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetArray"+               c_th3i_setarray :: Ptr RawTH3I -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH3I.h TH3I_SetAt"+               c_th3i_setat :: Ptr RawTH3I -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH3I/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3I.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3I.RawType import HROOT.Hist.TH3I.FFI import HROOT.Hist.TH3I.Interface import HROOT.Hist.TH3I.Cast+import HROOT.Hist.TH3I.RawType+import HROOT.Hist.TH3I.Cast+import HROOT.Hist.TH3I.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH3I TH3I+instance () => ITH3I (TH3I) where -instance ITH3 TH3I where+instance () => ITH3 (TH3I) where         fill3 = xform3 c_th3i_fill3         fill3w = xform4 c_th3i_fill3w         fitSlicesZ = xform7 c_th3i_fitslicesz@@ -77,13 +86,12 @@         rebinZ3 = xform2 c_th3i_rebinz3         rebin3D = xform4 c_th3i_rebin3d -instance ITArrayI TH3I+instance () => ITArrayI (TH3I) where -instance ITH1 TH3I where+instance () => ITH1 (TH3I) where         add = xform2 c_th3i_add         addBinContent = xform2 c_th3i_addbincontent         chi2Test = xform3 c_th3i_chi2test-        computeIntegral = xform0 c_th3i_computeintegral         directoryAutoAdd = xform1 c_th3i_directoryautoadd         divide = xform5 c_th3i_divide         drawCopyTH1 = xform1 c_th3i_drawcopyth1@@ -155,9 +163,6 @@         getRMS = xform1 c_th3i_getrms         getRMSError = xform1 c_th3i_getrmserror         getSkewness = xform1 c_th3i_getskewness-        integral1 = xform3 c_th3i_integral1-        interpolate1 = xform1 c_th3i_interpolate1-        interpolate2 = xform2 c_th3i_interpolate2         interpolate3 = xform3 c_th3i_interpolate3         kolmogorovTest = xform2 c_th3i_kolmogorovtest         labelsDeflate = xform1 c_th3i_labelsdeflate@@ -212,14 +217,14 @@         smooth = xform2 c_th3i_smooth         sumw2 = xform0 c_th3i_sumw2 -instance ITAtt3D TH3I+instance () => ITAtt3D (TH3I) where -instance ITNamed TH3I where+instance () => ITNamed (TH3I) where         setName = xform1 c_th3i_setname         setNameTitle = xform2 c_th3i_setnametitle         setTitle = xform1 c_th3i_settitle -instance ITAttLine TH3I where+instance () => ITAttLine (TH3I) where         getLineColor = xform0 c_th3i_getlinecolor         getLineStyle = xform0 c_th3i_getlinestyle         getLineWidth = xform0 c_th3i_getlinewidth@@ -229,11 +234,11 @@         setLineStyle = xform1 c_th3i_setlinestyle         setLineWidth = xform1 c_th3i_setlinewidth -instance ITAttFill TH3I where+instance () => ITAttFill (TH3I) where         setFillColor = xform1 c_th3i_setfillcolor         setFillStyle = xform1 c_th3i_setfillstyle -instance ITAttMarker TH3I where+instance () => ITAttMarker (TH3I) where         getMarkerColor = xform0 c_th3i_getmarkercolor         getMarkerStyle = xform0 c_th3i_getmarkerstyle         getMarkerSize = xform0 c_th3i_getmarkersize@@ -243,7 +248,8 @@         setMarkerStyle = xform1 c_th3i_setmarkerstyle         setMarkerSize = xform1 c_th3i_setmarkersize -instance ITObject TH3I where+instance () => ITObject (TH3I) where+        clear = xform1 c_th3i_clear         draw = xform1 c_th3i_draw         findObject = xform1 c_th3i_findobject         getName = xform0 c_th3i_getname@@ -252,8 +258,12 @@         printObj = xform1 c_th3i_printobj         saveAs = xform2 c_th3i_saveas         write = xform3 c_th3i_write+        write_ = xform0 c_th3i_write_ -instance IDeletable TH3I where+instance () => IDeletable (TH3I) where         delete = xform0 c_th3i_delete -instance ITArray TH3I+instance () => ITArray (TH3I) where+        getAt = xform1 c_th3i_getat+        setArray = xform1 c_th3i_setarray+        setAt = xform2 c_th3i_setat
src/HROOT/Hist/TH3I/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3I.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH3.Interface import HROOT.Core.TArrayI.Interface -class (ITH3 a, ITArrayI a) => ITH3I a+class (ITH3 a, ITArrayI a) => ITH3I a where  upcastTH3I :: forall a . (FPtr a, ITH3I a) => a -> TH3I upcastTH3I h
src/HROOT/Hist/TH3I/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3I  newtype TH3I = TH3I (Ptr RawTH3I)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH3I where+instance () => FPtr (TH3I) where         type Raw TH3I = RawTH3I         get_fptr (TH3I ptr) = ptr         cast_fptr_to_obj = TH3I
src/HROOT/Hist/TH3S/Cast.hs view
@@ -8,10 +8,10 @@ import HROOT.Hist.TH3S.RawType import HROOT.Hist.TH3S.Interface -instance (ITH3S a, FPtr a) => Castable a (Ptr RawTH3S) where+instance (ITH3S a, FPtr a) => Castable (a) (Ptr RawTH3S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable TH3S (Ptr RawTH3S) where+instance () => Castable (TH3S) (Ptr RawTH3S) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/TH3S/FFI.hsc view
@@ -1,8 +1,11 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.TH3S.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH3S.RawType import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1.RawType import HROOT.Hist.TH3.RawType@@ -13,558 +16,646 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTH3S.h TH3S_fill3" c_th3s_fill3-               :: Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_fill3"+               c_th3s_fill3 ::+               Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_fill3w"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_fill3w"                c_th3s_fill3w ::                Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_FitSlicesZ"-               c_th3s_fitslicesz ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FitSlicesZ" c_th3s_fitslicesz ::                Ptr RawTH3S ->                  Ptr RawTF1 ->                    CInt -> CInt -> CInt -> CInt -> CInt -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3S.h TH3S_getCorrelationFactor3"                c_th3s_getcorrelationfactor3 ::                Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_getCovariance3"-               c_th3s_getcovariance3 :: Ptr RawTH3S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getCovariance3" c_th3s_getcovariance3 ::+               Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_rebinX3"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_rebinX3"                c_th3s_rebinx3 :: Ptr RawTH3S -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3S.h TH3S_rebinY3"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_rebinY3"                c_th3s_rebiny3 :: Ptr RawTH3S -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3S.h TH3S_rebinZ3"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_rebinZ3"                c_th3s_rebinz3 :: Ptr RawTH3S -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3S.h TH3S_Rebin3D"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Rebin3D"                c_th3s_rebin3d ::                Ptr RawTH3S -> CInt -> CInt -> CInt -> CString -> IO (Ptr RawTH3) -foreign import ccall safe "HROOTHistTH3S.h TH3S_Add" c_th3s_add ::-               Ptr RawTH3S -> Ptr RawTH1 -> CDouble -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Add"+               c_th3s_add :: Ptr RawTH3S -> Ptr RawTH1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_AddBinContent"-               c_th3s_addbincontent :: Ptr RawTH3S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_AddBinContent" c_th3s_addbincontent ::+               Ptr RawTH3S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Chi2Test"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Chi2Test"                c_th3s_chi2test ::-               Ptr RawTH3S -> Ptr RawTH1 -> CString -> (Ptr CDouble) -> IO CDouble--foreign import ccall safe "HROOTHistTH3S.h TH3S_ComputeIntegral"-               c_th3s_computeintegral :: Ptr RawTH3S -> IO CDouble+               Ptr RawTH3S -> Ptr RawTH1 -> CString -> Ptr CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_DirectoryAutoAdd"-               c_th3s_directoryautoadd ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_DirectoryAutoAdd" c_th3s_directoryautoadd ::                Ptr RawTH3S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Divide"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Divide"                c_th3s_divide ::                Ptr RawTH3S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_drawCopyTH1"-               c_th3s_drawcopyth1 :: Ptr RawTH3S -> CString -> IO (Ptr RawTH3S)+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_drawCopyTH1" c_th3s_drawcopyth1 ::+               Ptr RawTH3S -> CString -> IO (Ptr RawTH3S) -foreign import ccall safe "HROOTHistTH3S.h TH3S_DrawNormalized"-               c_th3s_drawnormalized ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_DrawNormalized" c_th3s_drawnormalized ::                Ptr RawTH3S -> CString -> CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3S.h TH3S_drawPanelTH1"-               c_th3s_drawpanelth1 :: Ptr RawTH3S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_drawPanelTH1" c_th3s_drawpanelth1 ::+               Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_BufferEmpty"-               c_th3s_bufferempty :: Ptr RawTH3S -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_BufferEmpty" c_th3s_bufferempty ::+               Ptr RawTH3S -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_evalF" c_th3s_evalf-               :: Ptr RawTH3S -> Ptr RawTF1 -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_evalF"+               c_th3s_evalf :: Ptr RawTH3S -> Ptr RawTF1 -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_FFT" c_th3s_fft ::+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_FFT"+               c_th3s_fft ::                Ptr RawTH3S -> Ptr RawTH1 -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3S.h TH3S_fill1" c_th3s_fill1-               :: Ptr RawTH3S -> CDouble -> IO CInt+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_fill1"+               c_th3s_fill1 :: Ptr RawTH3S -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_fill1w"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_fill1w"                c_th3s_fill1w :: Ptr RawTH3S -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_fillN1"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_fillN1"                c_th3s_filln1 ::-               Ptr RawTH3S ->-                 CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()+               Ptr RawTH3S -> CInt -> Ptr CDouble -> Ptr CDouble -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_FillRandom"-               c_th3s_fillrandom :: Ptr RawTH3S -> Ptr RawTH1 -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FillRandom" c_th3s_fillrandom ::+               Ptr RawTH3S -> Ptr RawTH1 -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_FindBin"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_FindBin"                c_th3s_findbin ::                Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_FindFixBin"-               c_th3s_findfixbin ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FindFixBin" c_th3s_findfixbin ::                Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_FindFirstBinAbove"-               c_th3s_findfirstbinabove ::-               Ptr RawTH3S -> CDouble -> CInt -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FindFirstBinAbove" c_th3s_findfirstbinabove+               :: Ptr RawTH3S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_FindLastBinAbove"-               c_th3s_findlastbinabove ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FindLastBinAbove" c_th3s_findlastbinabove ::                Ptr RawTH3S -> CDouble -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_Fit" c_th3s_fit ::+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Fit"+               c_th3s_fit ::                Ptr RawTH3S ->                  Ptr RawTF1 -> CString -> CString -> CDouble -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_FitPanelTH1"-               c_th3s_fitpanelth1 :: Ptr RawTH3S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FitPanelTH1" c_th3s_fitpanelth1 ::+               Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_getNdivisionA"-               c_th3s_getndivisiona :: Ptr RawTH3S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getNdivisionA" c_th3s_getndivisiona ::+               Ptr RawTH3S -> CString -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_getAxisColorA"-               c_th3s_getaxiscolora :: Ptr RawTH3S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getAxisColorA" c_th3s_getaxiscolora ::+               Ptr RawTH3S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_getLabelColorA"-               c_th3s_getlabelcolora :: Ptr RawTH3S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getLabelColorA" c_th3s_getlabelcolora ::+               Ptr RawTH3S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_getLabelFontA"-               c_th3s_getlabelfonta :: Ptr RawTH3S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getLabelFontA" c_th3s_getlabelfonta ::+               Ptr RawTH3S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_getLabelOffsetA"-               c_th3s_getlabeloffseta :: Ptr RawTH3S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getLabelOffsetA" c_th3s_getlabeloffseta ::+               Ptr RawTH3S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_getLabelSizeA"-               c_th3s_getlabelsizea :: Ptr RawTH3S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getLabelSizeA" c_th3s_getlabelsizea ::+               Ptr RawTH3S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_getTitleFontA"-               c_th3s_gettitlefonta :: Ptr RawTH3S -> CString -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getTitleFontA" c_th3s_gettitlefonta ::+               Ptr RawTH3S -> CString -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_getTitleOffsetA"-               c_th3s_gettitleoffseta :: Ptr RawTH3S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getTitleOffsetA" c_th3s_gettitleoffseta ::+               Ptr RawTH3S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_getTitleSizeA"-               c_th3s_gettitlesizea :: Ptr RawTH3S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getTitleSizeA" c_th3s_gettitlesizea ::+               Ptr RawTH3S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_getTickLengthA"-               c_th3s_getticklengtha :: Ptr RawTH3S -> CString -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getTickLengthA" c_th3s_getticklengtha ::+               Ptr RawTH3S -> CString -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBarOffset"-               c_th3s_getbaroffset :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBarOffset" c_th3s_getbaroffset ::+               Ptr RawTH3S -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBarWidth"-               c_th3s_getbarwidth :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBarWidth" c_th3s_getbarwidth ::+               Ptr RawTH3S -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetContour"-               c_th3s_getcontour :: Ptr RawTH3S -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetContour" c_th3s_getcontour ::+               Ptr RawTH3S -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetContourLevel"-               c_th3s_getcontourlevel :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetContourLevel" c_th3s_getcontourlevel ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetContourLevelPad"-               c_th3s_getcontourlevelpad :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetContourLevelPad" c_th3s_getcontourlevelpad+               :: Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBin"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetBin"                c_th3s_getbin :: Ptr RawTH3S -> CInt -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinCenter"-               c_th3s_getbincenter :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinCenter" c_th3s_getbincenter ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinContent1"-               c_th3s_getbincontent1 :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinContent1" c_th3s_getbincontent1 ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinContent2"-               c_th3s_getbincontent2 :: Ptr RawTH3S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinContent2" c_th3s_getbincontent2 ::+               Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinContent3"-               c_th3s_getbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinContent3" c_th3s_getbincontent3 ::                Ptr RawTH3S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinError1"-               c_th3s_getbinerror1 :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinError1" c_th3s_getbinerror1 ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinError2"-               c_th3s_getbinerror2 :: Ptr RawTH3S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinError2" c_th3s_getbinerror2 ::+               Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinError3"-               c_th3s_getbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinError3" c_th3s_getbinerror3 ::                Ptr RawTH3S -> CInt -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinLowEdge"-               c_th3s_getbinlowedge :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinLowEdge" c_th3s_getbinlowedge ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetBinWidth"-               c_th3s_getbinwidth :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetBinWidth" c_th3s_getbinwidth ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetCellContent"-               c_th3s_getcellcontent :: Ptr RawTH3S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetCellContent" c_th3s_getcellcontent ::+               Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetCellError"-               c_th3s_getcellerror :: Ptr RawTH3S -> CInt -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetCellError" c_th3s_getcellerror ::+               Ptr RawTH3S -> CInt -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetEntries"-               c_th3s_getentries :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetEntries" c_th3s_getentries ::+               Ptr RawTH3S -> IO CDouble -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3S.h TH3S_GetEffectiveEntries"                c_th3s_geteffectiveentries :: Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetFunction"-               c_th3s_getfunction :: Ptr RawTH3S -> CString -> IO (Ptr RawTF1)+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetFunction" c_th3s_getfunction ::+               Ptr RawTH3S -> CString -> IO (Ptr RawTF1) -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetDimension"-               c_th3s_getdimension :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetDimension" c_th3s_getdimension ::+               Ptr RawTH3S -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetKurtosis"-               c_th3s_getkurtosis :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetKurtosis" c_th3s_getkurtosis ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetLowEdge"-               c_th3s_getlowedge :: Ptr RawTH3S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetLowEdge" c_th3s_getlowedge ::+               Ptr RawTH3S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_getMaximumTH1"-               c_th3s_getmaximumth1 :: Ptr RawTH3S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getMaximumTH1" c_th3s_getmaximumth1 ::+               Ptr RawTH3S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMaximumBin"-               c_th3s_getmaximumbin :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMaximumBin" c_th3s_getmaximumbin ::+               Ptr RawTH3S -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMaximumStored"-               c_th3s_getmaximumstored :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMaximumStored" c_th3s_getmaximumstored ::+               Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_getMinimumTH1"-               c_th3s_getminimumth1 :: Ptr RawTH3S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getMinimumTH1" c_th3s_getminimumth1 ::+               Ptr RawTH3S -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMinimumBin"-               c_th3s_getminimumbin :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMinimumBin" c_th3s_getminimumbin ::+               Ptr RawTH3S -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMinimumStored"-               c_th3s_getminimumstored :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMinimumStored" c_th3s_getminimumstored ::+               Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMean"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetMean"                c_th3s_getmean :: Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMeanError"-               c_th3s_getmeanerror :: Ptr RawTH3S -> CInt -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMeanError" c_th3s_getmeanerror ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetNbinsX"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetNbinsX"                c_th3s_getnbinsx :: Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetNbinsY"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetNbinsY"                c_th3s_getnbinsy :: Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetNbinsZ"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetNbinsZ"                c_th3s_getnbinsz :: Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_getQuantilesTH1"-               c_th3s_getquantilesth1 ::-               Ptr RawTH3S -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_getQuantilesTH1" c_th3s_getquantilesth1 ::+               Ptr RawTH3S -> CInt -> Ptr CDouble -> Ptr CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetRandom"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetRandom"                c_th3s_getrandom :: Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetStats"-               c_th3s_getstats :: Ptr RawTH3S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetStats"+               c_th3s_getstats :: Ptr RawTH3S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetSumOfWeights"-               c_th3s_getsumofweights :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetSumOfWeights" c_th3s_getsumofweights ::+               Ptr RawTH3S -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetSumw2"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetSumw2"                c_th3s_getsumw2 :: Ptr RawTH3S -> IO (Ptr RawTArrayD) -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetSumw2N"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetSumw2N"                c_th3s_getsumw2n :: Ptr RawTH3S -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetRMS"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetRMS"                c_th3s_getrms :: Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetRMSError"-               c_th3s_getrmserror :: Ptr RawTH3S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3S.h TH3S_GetSkewness"-               c_th3s_getskewness :: Ptr RawTH3S -> CInt -> IO CDouble--foreign import ccall safe "HROOTHistTH3S.h TH3S_integral1"-               c_th3s_integral1 ::-               Ptr RawTH3S -> CInt -> CInt -> CString -> IO CDouble--foreign import ccall safe "HROOTHistTH3S.h TH3S_interpolate1"-               c_th3s_interpolate1 :: Ptr RawTH3S -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetRMSError" c_th3s_getrmserror ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_interpolate2"-               c_th3s_interpolate2 ::-               Ptr RawTH3S -> CDouble -> CDouble -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetSkewness" c_th3s_getskewness ::+               Ptr RawTH3S -> CInt -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_interpolate3"-               c_th3s_interpolate3 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_interpolate3" c_th3s_interpolate3 ::                Ptr RawTH3S -> CDouble -> CDouble -> CDouble -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_KolmogorovTest"-               c_th3s_kolmogorovtest ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_KolmogorovTest" c_th3s_kolmogorovtest ::                Ptr RawTH3S -> Ptr RawTH1 -> CString -> IO CDouble -foreign import ccall safe "HROOTHistTH3S.h TH3S_LabelsDeflate"-               c_th3s_labelsdeflate :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_LabelsDeflate" c_th3s_labelsdeflate ::+               Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_LabelsInflate"-               c_th3s_labelsinflate :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_LabelsInflate" c_th3s_labelsinflate ::+               Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_LabelsOption"-               c_th3s_labelsoption :: Ptr RawTH3S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_LabelsOption" c_th3s_labelsoption ::+               Ptr RawTH3S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_multiflyF"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_multiflyF"                c_th3s_multiflyf :: Ptr RawTH3S -> Ptr RawTF1 -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Multiply"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Multiply"                c_th3s_multiply ::                Ptr RawTH3S ->                  Ptr RawTH1 -> Ptr RawTH1 -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_PutStats"-               c_th3s_putstats :: Ptr RawTH3S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_PutStats"+               c_th3s_putstats :: Ptr RawTH3S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Rebin" c_th3s_rebin-               ::-               Ptr RawTH3S -> CInt -> CString -> (Ptr CDouble) -> IO (Ptr RawTH1)+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Rebin"+               c_th3s_rebin ::+               Ptr RawTH3S -> CInt -> CString -> Ptr CDouble -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3S.h TH3S_RebinAxis"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_RebinAxis"                c_th3s_rebinaxis :: Ptr RawTH3S -> CDouble -> Ptr RawTAxis -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Rebuild"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Rebuild"                c_th3s_rebuild :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_RecursiveRemove"-               c_th3s_recursiveremove :: Ptr RawTH3S -> Ptr RawTObject -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_RecursiveRemove" c_th3s_recursiveremove ::+               Ptr RawTH3S -> Ptr RawTObject -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Reset" c_th3s_reset-               :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Reset"+               c_th3s_reset :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_ResetStats"-               c_th3s_resetstats :: Ptr RawTH3S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_ResetStats" c_th3s_resetstats ::+               Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Scale" c_th3s_scale-               :: Ptr RawTH3S -> CDouble -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Scale"+               c_th3s_scale :: Ptr RawTH3S -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setAxisColorA"-               c_th3s_setaxiscolora :: Ptr RawTH3S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setAxisColorA" c_th3s_setaxiscolora ::+               Ptr RawTH3S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetAxisRange"-               c_th3s_setaxisrange ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetAxisRange" c_th3s_setaxisrange ::                Ptr RawTH3S -> CDouble -> CDouble -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetBarOffset"-               c_th3s_setbaroffset :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetBarOffset" c_th3s_setbaroffset ::+               Ptr RawTH3S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetBarWidth"-               c_th3s_setbarwidth :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetBarWidth" c_th3s_setbarwidth ::+               Ptr RawTH3S -> CFloat -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinContent1"-               c_th3s_setbincontent1 :: Ptr RawTH3S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinContent1" c_th3s_setbincontent1 ::+               Ptr RawTH3S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinContent2"-               c_th3s_setbincontent2 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinContent2" c_th3s_setbincontent2 ::                Ptr RawTH3S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinContent3"-               c_th3s_setbincontent3 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinContent3" c_th3s_setbincontent3 ::                Ptr RawTH3S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinError1"-               c_th3s_setbinerror1 :: Ptr RawTH3S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinError1" c_th3s_setbinerror1 ::+               Ptr RawTH3S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinError2"-               c_th3s_setbinerror2 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinError2" c_th3s_setbinerror2 ::                Ptr RawTH3S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBinError3"-               c_th3s_setbinerror3 ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setBinError3" c_th3s_setbinerror3 ::                Ptr RawTH3S -> CInt -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBins1"-               c_th3s_setbins1 :: Ptr RawTH3S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_setBins1"+               c_th3s_setbins1 :: Ptr RawTH3S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBins2"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_setBins2"                c_th3s_setbins2 ::-               Ptr RawTH3S ->-                 CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+               Ptr RawTH3S -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setBins3"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_setBins3"                c_th3s_setbins3 ::                Ptr RawTH3S ->                  CInt ->-                   (Ptr CDouble) ->-                     CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO ()+                   Ptr CDouble -> CInt -> Ptr CDouble -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetBinsLength"-               c_th3s_setbinslength :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetBinsLength" c_th3s_setbinslength ::+               Ptr RawTH3S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetBuffer"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetBuffer"                c_th3s_setbuffer :: Ptr RawTH3S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetCellContent"-               c_th3s_setcellcontent ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetCellContent" c_th3s_setcellcontent ::                Ptr RawTH3S -> CInt -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetContent"-               c_th3s_setcontent :: Ptr RawTH3S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetContent" c_th3s_setcontent ::+               Ptr RawTH3S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetContour"-               c_th3s_setcontour :: Ptr RawTH3S -> CInt -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetContour" c_th3s_setcontour ::+               Ptr RawTH3S -> CInt -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetContourLevel"-               c_th3s_setcontourlevel :: Ptr RawTH3S -> CInt -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetContourLevel" c_th3s_setcontourlevel ::+               Ptr RawTH3S -> CInt -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetDirectory"-               c_th3s_setdirectory :: Ptr RawTH3S -> Ptr RawTDirectory -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetDirectory" c_th3s_setdirectory ::+               Ptr RawTH3S -> Ptr RawTDirectory -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetEntries"-               c_th3s_setentries :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetEntries" c_th3s_setentries ::+               Ptr RawTH3S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetError"-               c_th3s_seterror :: Ptr RawTH3S -> (Ptr CDouble) -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetError"+               c_th3s_seterror :: Ptr RawTH3S -> Ptr CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setLabelColorA"-               c_th3s_setlabelcolora :: Ptr RawTH3S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setLabelColorA" c_th3s_setlabelcolora ::+               Ptr RawTH3S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setLabelSizeA"-               c_th3s_setlabelsizea :: Ptr RawTH3S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setLabelSizeA" c_th3s_setlabelsizea ::+               Ptr RawTH3S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setLabelFontA"-               c_th3s_setlabelfonta :: Ptr RawTH3S -> CInt -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setLabelFontA" c_th3s_setlabelfonta ::+               Ptr RawTH3S -> CShort -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_setLabelOffsetA"-               c_th3s_setlabeloffseta ::-               Ptr RawTH3S -> CDouble -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_setLabelOffsetA" c_th3s_setlabeloffseta ::+               Ptr RawTH3S -> CFloat -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetMaximum"-               c_th3s_setmaximum :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetMaximum" c_th3s_setmaximum ::+               Ptr RawTH3S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetMinimum"-               c_th3s_setminimum :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetMinimum" c_th3s_setminimum ::+               Ptr RawTH3S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetNormFactor"-               c_th3s_setnormfactor :: Ptr RawTH3S -> CDouble -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetNormFactor" c_th3s_setnormfactor ::+               Ptr RawTH3S -> CDouble -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetStats"-               c_th3s_setstats :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetStats"+               c_th3s_setstats :: Ptr RawTH3S -> CBool -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetOption"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetOption"                c_th3s_setoption :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetXTitle"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetXTitle"                c_th3s_setxtitle :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetYTitle"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetYTitle"                c_th3s_setytitle :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetZTitle"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetZTitle"                c_th3s_setztitle :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_ShowBackground"-               c_th3s_showbackground ::+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_ShowBackground" c_th3s_showbackground ::                Ptr RawTH3S -> CInt -> CString -> IO (Ptr RawTH1) -foreign import ccall safe "HROOTHistTH3S.h TH3S_ShowPeaks"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_ShowPeaks"                c_th3s_showpeaks ::                Ptr RawTH3S -> CDouble -> CString -> CDouble -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_Smooth"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Smooth"                c_th3s_smooth :: Ptr RawTH3S -> CInt -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Sumw2" c_th3s_sumw2-               :: Ptr RawTH3S -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Sumw2"+               c_th3s_sumw2 :: Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetName"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetName"                c_th3s_setname :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetNameTitle"-               c_th3s_setnametitle :: Ptr RawTH3S -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetNameTitle" c_th3s_setnametitle ::+               Ptr RawTH3S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetTitle"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetTitle"                c_th3s_settitle :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetLineColor"-               c_th3s_getlinecolor :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetLineColor" c_th3s_getlinecolor ::+               Ptr RawTH3S -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetLineStyle"-               c_th3s_getlinestyle :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetLineStyle" c_th3s_getlinestyle ::+               Ptr RawTH3S -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetLineWidth"-               c_th3s_getlinewidth :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetLineWidth" c_th3s_getlinewidth ::+               Ptr RawTH3S -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_ResetAttLine"-               c_th3s_resetattline :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_ResetAttLine" c_th3s_resetattline ::+               Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetLineAttributes"-               c_th3s_setlineattributes :: Ptr RawTH3S -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetLineAttributes" c_th3s_setlineattributes+               :: Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetLineColor"-               c_th3s_setlinecolor :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetLineColor" c_th3s_setlinecolor ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetLineStyle"-               c_th3s_setlinestyle :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetLineStyle" c_th3s_setlinestyle ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetLineWidth"-               c_th3s_setlinewidth :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetLineWidth" c_th3s_setlinewidth ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetFillColor"-               c_th3s_setfillcolor :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetFillColor" c_th3s_setfillcolor ::+               Ptr RawTH3S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetFillStyle"-               c_th3s_setfillstyle :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetFillStyle" c_th3s_setfillstyle ::+               Ptr RawTH3S -> CInt -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMarkerColor"-               c_th3s_getmarkercolor :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMarkerColor" c_th3s_getmarkercolor ::+               Ptr RawTH3S -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMarkerStyle"-               c_th3s_getmarkerstyle :: Ptr RawTH3S -> IO CInt+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMarkerStyle" c_th3s_getmarkerstyle ::+               Ptr RawTH3S -> IO CShort -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetMarkerSize"-               c_th3s_getmarkersize :: Ptr RawTH3S -> IO CDouble+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_GetMarkerSize" c_th3s_getmarkersize ::+               Ptr RawTH3S -> IO CFloat -foreign import ccall safe "HROOTHistTH3S.h TH3S_ResetAttMarker"-               c_th3s_resetattmarker :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_ResetAttMarker" c_th3s_resetattmarker ::+               Ptr RawTH3S -> CString -> IO () -foreign import ccall safe+foreign import ccall interruptible                "HROOTHistTH3S.h TH3S_SetMarkerAttributes"                c_th3s_setmarkerattributes :: Ptr RawTH3S -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetMarkerColor"-               c_th3s_setmarkercolor :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetMarkerColor" c_th3s_setmarkercolor ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetMarkerStyle"-               c_th3s_setmarkerstyle :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetMarkerStyle" c_th3s_setmarkerstyle ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SetMarkerSize"-               c_th3s_setmarkersize :: Ptr RawTH3S -> CInt -> IO ()+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_SetMarkerSize" c_th3s_setmarkersize ::+               Ptr RawTH3S -> CShort -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Draw" c_th3s_draw-               :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Clear"+               c_th3s_clear :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_FindObject"-               c_th3s_findobject :: Ptr RawTH3S -> CString -> IO (Ptr RawTObject)+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Draw"+               c_th3s_draw :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_GetName"+foreign import ccall interruptible+               "HROOTHistTH3S.h TH3S_FindObject" c_th3s_findobject ::+               Ptr RawTH3S -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetName"                c_th3s_getname :: Ptr RawTH3S -> IO CString -foreign import ccall safe "HROOTHistTH3S.h TH3S_IsA" c_th3s_isa ::-               Ptr RawTH3S -> IO (Ptr RawTClass)+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_IsA"+               c_th3s_isa :: Ptr RawTH3S -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTH3S.h TH3S_Paint" c_th3s_paint-               :: Ptr RawTH3S -> CString -> IO ()+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Paint"+               c_th3s_paint :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_printObj"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_printObj"                c_th3s_printobj :: Ptr RawTH3S -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_SaveAs"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SaveAs"                c_th3s_saveas :: Ptr RawTH3S -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTH3S.h TH3S_Write" c_th3s_write-               :: Ptr RawTH3S -> CString -> CInt -> CInt -> IO CInt+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Write"+               c_th3s_write :: Ptr RawTH3S -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTH3S.h TH3S_delete"+foreign import ccall interruptible "HROOTHistTH3S.h TH3S_Write_"+               c_th3s_write_ :: Ptr RawTH3S -> IO CInt++foreign import ccall interruptible "HROOTHistTH3S.h TH3S_delete"                c_th3s_delete :: Ptr RawTH3S -> IO ()++foreign import ccall interruptible "HROOTHistTH3S.h TH3S_GetAt"+               c_th3s_getat :: Ptr RawTH3S -> CInt -> IO CDouble++foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetArray"+               c_th3s_setarray :: Ptr RawTH3S -> CInt -> IO ()++foreign import ccall interruptible "HROOTHistTH3S.h TH3S_SetAt"+               c_th3s_setat :: Ptr RawTH3S -> CDouble -> CInt -> IO ()
src/HROOT/Hist/TH3S/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.TH3S.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.TH3S.RawType import HROOT.Hist.TH3S.FFI import HROOT.Hist.TH3S.Interface import HROOT.Hist.TH3S.Cast+import HROOT.Hist.TH3S.RawType+import HROOT.Hist.TH3S.Cast+import HROOT.Hist.TH3S.Interface import HROOT.Hist.TH1D.RawType import HROOT.Hist.TH1D.Cast import HROOT.Hist.TH1D.Interface@@ -57,16 +66,16 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface -instance ITH3S TH3S+instance () => ITH3S (TH3S) where -instance ITH3 TH3S where+instance () => ITH3 (TH3S) where         fill3 = xform3 c_th3s_fill3         fill3w = xform4 c_th3s_fill3w         fitSlicesZ = xform7 c_th3s_fitslicesz@@ -77,13 +86,12 @@         rebinZ3 = xform2 c_th3s_rebinz3         rebin3D = xform4 c_th3s_rebin3d -instance ITArrayS TH3S+instance () => ITArrayS (TH3S) where -instance ITH1 TH3S where+instance () => ITH1 (TH3S) where         add = xform2 c_th3s_add         addBinContent = xform2 c_th3s_addbincontent         chi2Test = xform3 c_th3s_chi2test-        computeIntegral = xform0 c_th3s_computeintegral         directoryAutoAdd = xform1 c_th3s_directoryautoadd         divide = xform5 c_th3s_divide         drawCopyTH1 = xform1 c_th3s_drawcopyth1@@ -155,9 +163,6 @@         getRMS = xform1 c_th3s_getrms         getRMSError = xform1 c_th3s_getrmserror         getSkewness = xform1 c_th3s_getskewness-        integral1 = xform3 c_th3s_integral1-        interpolate1 = xform1 c_th3s_interpolate1-        interpolate2 = xform2 c_th3s_interpolate2         interpolate3 = xform3 c_th3s_interpolate3         kolmogorovTest = xform2 c_th3s_kolmogorovtest         labelsDeflate = xform1 c_th3s_labelsdeflate@@ -212,14 +217,14 @@         smooth = xform2 c_th3s_smooth         sumw2 = xform0 c_th3s_sumw2 -instance ITAtt3D TH3S+instance () => ITAtt3D (TH3S) where -instance ITNamed TH3S where+instance () => ITNamed (TH3S) where         setName = xform1 c_th3s_setname         setNameTitle = xform2 c_th3s_setnametitle         setTitle = xform1 c_th3s_settitle -instance ITAttLine TH3S where+instance () => ITAttLine (TH3S) where         getLineColor = xform0 c_th3s_getlinecolor         getLineStyle = xform0 c_th3s_getlinestyle         getLineWidth = xform0 c_th3s_getlinewidth@@ -229,11 +234,11 @@         setLineStyle = xform1 c_th3s_setlinestyle         setLineWidth = xform1 c_th3s_setlinewidth -instance ITAttFill TH3S where+instance () => ITAttFill (TH3S) where         setFillColor = xform1 c_th3s_setfillcolor         setFillStyle = xform1 c_th3s_setfillstyle -instance ITAttMarker TH3S where+instance () => ITAttMarker (TH3S) where         getMarkerColor = xform0 c_th3s_getmarkercolor         getMarkerStyle = xform0 c_th3s_getmarkerstyle         getMarkerSize = xform0 c_th3s_getmarkersize@@ -243,7 +248,8 @@         setMarkerStyle = xform1 c_th3s_setmarkerstyle         setMarkerSize = xform1 c_th3s_setmarkersize -instance ITObject TH3S where+instance () => ITObject (TH3S) where+        clear = xform1 c_th3s_clear         draw = xform1 c_th3s_draw         findObject = xform1 c_th3s_findobject         getName = xform0 c_th3s_getname@@ -252,8 +258,12 @@         printObj = xform1 c_th3s_printobj         saveAs = xform2 c_th3s_saveas         write = xform3 c_th3s_write+        write_ = xform0 c_th3s_write_ -instance IDeletable TH3S where+instance () => IDeletable (TH3S) where         delete = xform0 c_th3s_delete -instance ITArray TH3S+instance () => ITArray (TH3S) where+        getAt = xform1 c_th3s_getat+        setArray = xform1 c_th3s_setarray+        setAt = xform2 c_th3s_setat
src/HROOT/Hist/TH3S/Interface.hs view
@@ -4,6 +4,7 @@   TypeSynonymInstances #-} module HROOT.Hist.TH3S.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast@@ -11,7 +12,7 @@ import HROOT.Hist.TH3.Interface import HROOT.Core.TArrayS.Interface -class (ITH3 a, ITArrayS a) => ITH3S a+class (ITH3 a, ITArrayS a) => ITH3S a where  upcastTH3S :: forall a . (FPtr a, ITH3S a) => a -> TH3S upcastTH3S h
src/HROOT/Hist/TH3S/RawType.hs view
@@ -8,9 +8,9 @@ data RawTH3S  newtype TH3S = TH3S (Ptr RawTH3S)-             deriving (Eq, Ord, Show)+                 deriving (Eq, Ord, Show) -instance FPtr TH3S where+instance () => FPtr (TH3S) where         type Raw TH3S = RawTH3S         get_fptr (TH3S ptr) = ptr         cast_fptr_to_obj = TH3S
src/HROOT/Hist/THStack/Cast.hs view
@@ -8,10 +8,11 @@ import HROOT.Hist.THStack.RawType import HROOT.Hist.THStack.Interface -instance (ITHStack a, FPtr a) => Castable a (Ptr RawTHStack) where+instance (ITHStack a, FPtr a) => Castable (a) (Ptr RawTHStack)+         where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x)) -instance Castable THStack (Ptr RawTHStack) where+instance () => Castable (THStack) (Ptr RawTHStack) where         cast x f = f (castPtr (get_fptr x))         uncast x f = f (cast_fptr_to_obj (castPtr x))
src/HROOT/Hist/THStack/FFI.hsc view
@@ -1,49 +1,69 @@-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-} module HROOT.Hist.THStack.FFI where+import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import HROOT.Hist.THStack.RawType+import HROOT.Hist.THStack.RawType import HROOT.Core.TObject.RawType import HROOT.Core.TClass.RawType -foreign import ccall safe "HROOTHistTHStack.h THStack_SetName"-               c_thstack_setname :: Ptr RawTHStack -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_SetName" c_thstack_setname ::+               Ptr RawTHStack -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_SetNameTitle"-               c_thstack_setnametitle ::+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_SetNameTitle" c_thstack_setnametitle ::                Ptr RawTHStack -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_SetTitle"-               c_thstack_settitle :: Ptr RawTHStack -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_SetTitle" c_thstack_settitle ::+               Ptr RawTHStack -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_Draw"-               c_thstack_draw :: Ptr RawTHStack -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_Clear" c_thstack_clear ::+               Ptr RawTHStack -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_FindObject"-               c_thstack_findobject ::+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_Draw" c_thstack_draw ::+               Ptr RawTHStack -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_FindObject" c_thstack_findobject ::                Ptr RawTHStack -> CString -> IO (Ptr RawTObject) -foreign import ccall safe "HROOTHistTHStack.h THStack_GetName"-               c_thstack_getname :: Ptr RawTHStack -> IO CString+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_GetName" c_thstack_getname ::+               Ptr RawTHStack -> IO CString -foreign import ccall safe "HROOTHistTHStack.h THStack_IsA"+foreign import ccall interruptible "HROOTHistTHStack.h THStack_IsA"                c_thstack_isa :: Ptr RawTHStack -> IO (Ptr RawTClass) -foreign import ccall safe "HROOTHistTHStack.h THStack_Paint"-               c_thstack_paint :: Ptr RawTHStack -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_Paint" c_thstack_paint ::+               Ptr RawTHStack -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_printObj"-               c_thstack_printobj :: Ptr RawTHStack -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_printObj" c_thstack_printobj ::+               Ptr RawTHStack -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_SaveAs"-               c_thstack_saveas :: Ptr RawTHStack -> CString -> CString -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_SaveAs" c_thstack_saveas ::+               Ptr RawTHStack -> CString -> CString -> IO () -foreign import ccall safe "HROOTHistTHStack.h THStack_Write"-               c_thstack_write ::+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_Write" c_thstack_write ::                Ptr RawTHStack -> CString -> CInt -> CInt -> IO CInt -foreign import ccall safe "HROOTHistTHStack.h THStack_delete"-               c_thstack_delete :: Ptr RawTHStack -> IO ()+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_Write_" c_thstack_write_ ::+               Ptr RawTHStack -> IO CInt -foreign import ccall safe "HROOTHistTHStack.h THStack_newTHStack"-               c_thstack_newthstack :: CString -> CString -> IO (Ptr RawTHStack)+foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_delete" c_thstack_delete ::+               Ptr RawTHStack -> IO ()++foreign import ccall interruptible+               "HROOTHistTHStack.h THStack_newTHStack" c_thstack_newthstack ::+               CString -> CString -> IO (Ptr RawTHStack)
src/HROOT/Hist/THStack/Implementation.hs view
@@ -1,17 +1,26 @@ {-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,   ForeignFunctionInterface, IncoherentInstances,-  MultiParamTypeClasses, OverlappingInstances, TypeFamilies,-  TypeSynonymInstances #-}+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-} module HROOT.Hist.THStack.Implementation where-import FFICXX.Runtime.Cast+import Data.Monoid import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH import HROOT.Hist.THStack.RawType import HROOT.Hist.THStack.FFI import HROOT.Hist.THStack.Interface import HROOT.Hist.THStack.Cast+import HROOT.Hist.THStack.RawType+import HROOT.Hist.THStack.Cast+import HROOT.Hist.THStack.Interface import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface@@ -21,18 +30,19 @@ import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface-import HROOT.Core.Deletable.RawType-import HROOT.Core.Deletable.Cast-import HROOT.Core.Deletable.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface -instance ITHStack THStack+instance () => ITHStack (THStack) where -instance ITNamed THStack where+instance () => ITNamed (THStack) where         setName = xform1 c_thstack_setname         setNameTitle = xform2 c_thstack_setnametitle         setTitle = xform1 c_thstack_settitle -instance ITObject THStack where+instance () => ITObject (THStack) where+        clear = xform1 c_thstack_clear         draw = xform1 c_thstack_draw         findObject = xform1 c_thstack_findobject         getName = xform0 c_thstack_getname@@ -41,8 +51,9 @@         printObj = xform1 c_thstack_printobj         saveAs = xform2 c_thstack_saveas         write = xform3 c_thstack_write+        write_ = xform0 c_thstack_write_ -instance IDeletable THStack where+instance () => IDeletable (THStack) where         delete = xform0 c_thstack_delete  newTHStack ::
src/HROOT/Hist/THStack/Interface.hs view
@@ -4,13 +4,14 @@   TypeSynonymInstances #-} module HROOT.Hist.THStack.Interface where import Data.Word+import Data.Int import Foreign.C import Foreign.Ptr import FFICXX.Runtime.Cast import HROOT.Hist.THStack.RawType import HROOT.Core.TNamed.Interface -class ITNamed a => ITHStack a+class (ITNamed a) => ITHStack a where  upcastTHStack :: forall a . (FPtr a, ITHStack a) => a -> THStack upcastTHStack h
src/HROOT/Hist/THStack/RawType.hs view
@@ -8,9 +8,9 @@ data RawTHStack  newtype THStack = THStack (Ptr RawTHStack)-                deriving (Eq, Ord, Show)+                    deriving (Eq, Ord, Show) -instance FPtr THStack where+instance () => FPtr (THStack) where         type Raw THStack = RawTHStack         get_fptr (THStack ptr) = ptr         cast_fptr_to_obj = THStack
+ src/HROOT/Hist/TMultiGraph.hs view
@@ -0,0 +1,7 @@+module HROOT.Hist.TMultiGraph+       (TMultiGraph(..), ITMultiGraph(..), upcastTMultiGraph,+        downcastTMultiGraph, newTMultiGraph)+       where+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Hist.TMultiGraph.Interface+import HROOT.Hist.TMultiGraph.Implementation
+ src/HROOT/Hist/TMultiGraph/Cast.hs view
@@ -0,0 +1,19 @@+{-# LANGUAGE FlexibleInstances, FlexibleContexts, TypeFamilies,+  MultiParamTypeClasses, OverlappingInstances, IncoherentInstances+  #-}+module HROOT.Hist.TMultiGraph.Cast where+import Foreign.Ptr+import FFICXX.Runtime.Cast+import System.IO.Unsafe+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Hist.TMultiGraph.Interface++instance (ITMultiGraph a, FPtr a) =>+         Castable (a) (Ptr RawTMultiGraph)+         where+        cast x f = f (castPtr (get_fptr x))+        uncast x f = f (cast_fptr_to_obj (castPtr x))++instance () => Castable (TMultiGraph) (Ptr RawTMultiGraph) where+        cast x f = f (castPtr (get_fptr x))+        uncast x f = f (cast_fptr_to_obj (castPtr x))
+ src/HROOT/Hist/TMultiGraph/FFI.hsc view
@@ -0,0 +1,78 @@+{-# LANGUAGE ForeignFunctionInterface, InterruptibleFFI #-}+module HROOT.Hist.TMultiGraph.FFI where+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Core.TObject.RawType+import HROOT.Core.TClass.RawType+import HROOT.Hist.TGraph.RawType++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_SetName" c_tmultigraph_setname+               :: Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_SetNameTitle"+               c_tmultigraph_setnametitle ::+               Ptr RawTMultiGraph -> CString -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_SetTitle"+               c_tmultigraph_settitle :: Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_Clear" c_tmultigraph_clear ::+               Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_Draw" c_tmultigraph_draw ::+               Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_FindObject"+               c_tmultigraph_findobject ::+               Ptr RawTMultiGraph -> CString -> IO (Ptr RawTObject)++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_GetName" c_tmultigraph_getname+               :: Ptr RawTMultiGraph -> IO CString++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_IsA" c_tmultigraph_isa ::+               Ptr RawTMultiGraph -> IO (Ptr RawTClass)++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_Paint" c_tmultigraph_paint ::+               Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_printObj"+               c_tmultigraph_printobj :: Ptr RawTMultiGraph -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_SaveAs" c_tmultigraph_saveas ::+               Ptr RawTMultiGraph -> CString -> CString -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_Write" c_tmultigraph_write ::+               Ptr RawTMultiGraph -> CString -> CInt -> CInt -> IO CInt++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_Write_" c_tmultigraph_write_ ::+               Ptr RawTMultiGraph -> IO CInt++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_delete" c_tmultigraph_delete ::+               Ptr RawTMultiGraph -> IO ()++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_newTMultiGraph"+               c_tmultigraph_newtmultigraph ::+               CString -> CString -> IO (Ptr RawTMultiGraph)++foreign import ccall interruptible+               "HROOTHistTMultiGraph.h TMultiGraph_AddG" c_tmultigraph_addg ::+               Ptr RawTMultiGraph -> Ptr RawTGraph -> CString -> IO ()
+ src/HROOT/Hist/TMultiGraph/Implementation.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE EmptyDataDecls, FlexibleContexts, FlexibleInstances,+  ForeignFunctionInterface, IncoherentInstances,+  MultiParamTypeClasses, OverlappingInstances, TemplateHaskell,+  TypeFamilies, TypeSynonymInstances #-}+module HROOT.Hist.TMultiGraph.Implementation where+import Data.Monoid+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import Language.Haskell.TH+import Language.Haskell.TH.Syntax+import System.IO.Unsafe+import FFICXX.Runtime.Cast+import FFICXX.Runtime.CodeGen.Cxx+import FFICXX.Runtime.TH+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Hist.TMultiGraph.FFI+import HROOT.Hist.TMultiGraph.Interface+import HROOT.Hist.TMultiGraph.Cast+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Hist.TMultiGraph.Cast+import HROOT.Hist.TMultiGraph.Interface+import HROOT.Core.TClass.RawType+import HROOT.Core.TClass.Cast+import HROOT.Core.TClass.Interface+import HROOT.Hist.TGraph.RawType+import HROOT.Hist.TGraph.Cast+import HROOT.Hist.TGraph.Interface+import HROOT.Core.TNamed.RawType+import HROOT.Core.TNamed.Cast+import HROOT.Core.TNamed.Interface+import HROOT.Core.TObject.RawType+import HROOT.Core.TObject.Cast+import HROOT.Core.TObject.Interface+import STD.Deletable.RawType+import STD.Deletable.Cast+import STD.Deletable.Interface++instance () => ITMultiGraph (TMultiGraph) where+        addG = xform2 c_tmultigraph_addg++instance () => ITNamed (TMultiGraph) where+        setName = xform1 c_tmultigraph_setname+        setNameTitle = xform2 c_tmultigraph_setnametitle+        setTitle = xform1 c_tmultigraph_settitle++instance () => ITObject (TMultiGraph) where+        clear = xform1 c_tmultigraph_clear+        draw = xform1 c_tmultigraph_draw+        findObject = xform1 c_tmultigraph_findobject+        getName = xform0 c_tmultigraph_getname+        isA = xform0 c_tmultigraph_isa+        paint = xform1 c_tmultigraph_paint+        printObj = xform1 c_tmultigraph_printobj+        saveAs = xform2 c_tmultigraph_saveas+        write = xform3 c_tmultigraph_write+        write_ = xform0 c_tmultigraph_write_++instance () => IDeletable (TMultiGraph) where+        delete = xform0 c_tmultigraph_delete++newTMultiGraph ::+                 (Castable c1 CString, Castable c0 CString) =>+                 c0 -> c1 -> IO TMultiGraph+newTMultiGraph = xform1 c_tmultigraph_newtmultigraph
+ src/HROOT/Hist/TMultiGraph/Interface.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE EmptyDataDecls, ExistentialQuantification,+  FlexibleContexts, FlexibleInstances, ForeignFunctionInterface,+  MultiParamTypeClasses, ScopedTypeVariables, TypeFamilies,+  TypeSynonymInstances #-}+module HROOT.Hist.TMultiGraph.Interface where+import Data.Word+import Data.Int+import Foreign.C+import Foreign.Ptr+import FFICXX.Runtime.Cast+import HROOT.Hist.TMultiGraph.RawType+import HROOT.Core.TNamed.Interface+import HROOT.Hist.TGraph.Interface++class (ITNamed a) => ITMultiGraph a where+        addG ::+               (Castable c1 CString, ITGraph c0, FPtr c0) =>+               a -> c0 -> c1 -> IO ()++upcastTMultiGraph ::+                  forall a . (FPtr a, ITMultiGraph a) => a -> TMultiGraph+upcastTMultiGraph h+  = let fh = get_fptr h+        fh2 :: Ptr RawTMultiGraph = castPtr fh+      in cast_fptr_to_obj fh2++downcastTMultiGraph ::+                    forall a . (FPtr a, ITMultiGraph a) => TMultiGraph -> a+downcastTMultiGraph h+  = let fh = get_fptr h+        fh2 = castPtr fh+      in cast_fptr_to_obj fh2
+ src/HROOT/Hist/TMultiGraph/RawType.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies,+  MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances,+  EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}+module HROOT.Hist.TMultiGraph.RawType where+import Foreign.Ptr+import FFICXX.Runtime.Cast++data RawTMultiGraph++newtype TMultiGraph = TMultiGraph (Ptr RawTMultiGraph)+                        deriving (Eq, Ord, Show)++instance () => FPtr (TMultiGraph) where+        type Raw TMultiGraph = RawTMultiGraph+        get_fptr (TMultiGraph ptr) = ptr+        cast_fptr_to_obj = TMultiGraph
+ src/HROOT/Hist/Template.hs view
@@ -0,0 +1,7 @@+{-# LANGUAGE EmptyDataDecls, FlexibleInstances,+  ForeignFunctionInterface, InterruptibleFFI, MultiParamTypeClasses,+  TypeFamilies #-}+module HROOT.Hist.Template () where+import Foreign.C.Types+import Foreign.Ptr+import FFICXX.Runtime.Cast